README
# Java入门教程
- 01.Java基础语法
- 02.Java数据类型
- 03.Java运算符
- 04.Java字符串和数组
- 05.Java判断和循环
- 06.Java函数方法
- 07.Java类和对象
- 08.Java继承和多态
- 09.Java接口和抽象类
- 10.Java异常处理
- 11.Java集合框架
- 12.Java IO流和File
- 13.Java线程和锁
- 14.Java泛型
- 15.Java注解和反射
# 01.基础语法
- 1.1.1 Java语言介绍:是一种面向对象的、跨平台的编程语言,广泛应用于企业级开发、Android开发、Web后端等领域。
- 1.1.2 Java的特点:包括面向对象、跨平台(Write Once, Run Anywhere)、自动内存管理(GC)、强类型语言。
- 1.1.3 Java平台体系:1.Java SE(标准版);2.Java EE(企业版);3.Java ME(微型版)。
- 1.1.4 Java应用领域:1.企业级后端开发;2.Android应用开发;3.大数据处理;4.Web应用开发。
- 1.2.1 JDK是什么:JDK是Java开发工具包,包含JRE和开发工具(编译器javac、调试器等)。
- 1.2.2 JRE和JVM:JRE是Java运行环境,JVM是Java虚拟机,负责将字节码翻译为机器码执行。
- 1.2.5 IDE开发环境:IDE 集成了编译器、编辑器、调试器等工具。常用的有IntelliJ IDEA、Eclipse。
- 1.4.0 最简单编译:
javac Main.java编译,java Main运行。 - 1.4.1 编译单个文件:
javac Main.java生成Main.class字节码文件。 - 1.5.1 单行注释:使用
//进行单行注释。 - 1.5.2 多行注释:使用
/* */进行多行注释。 - 1.5.3 文档注释:使用
/** */进行文档注释,配合javadoc工具生成API文档。 - 1.6.1 包的概念:使用
package关键字声明包,类似于C++的命名空间,用于组织类并避免命名冲突。 - 1.6.2 导入包:使用
import关键字导入其他包中的类。 - 1.8.1 访问控制修饰符:
public所有均可访问,private类本身访问,protected类和子类访问,默认(包访问)同包可访问。 - 1.8.2 非访问修饰符:
static静态成员,final不可修改/不可继承/不可重写,abstract抽象类或方法。 - 1.9 关键字:Java关键字包括
class、interface、extends、implements、new、this、super等。
# 02.数据类型
- 2.1.1 基本数据类型:Java有8种基本数据类型:byte、short、int、long、float、double、char、boolean。
- 2.2.1 整数类型:byte(1字节)、short(2字节)、int(4字节)、long(8字节),默认是int类型。
- 2.3.1 字符类型:char占2字节,使用Unicode编码,可以存储中文字符。
- 2.4 浮点类型:float(4字节)和double(8字节),默认是double类型,float需要加f后缀。
- 2.5.1 布尔类型:boolean只有true和false两个值,不能与整数类型相互转换。
- 2.6.1 变量:给一段指定的内存空间起名,方便操作这段内存。
- 2.6.2 常量:使用
final关键字定义常量,一旦赋值不可修改。 - 2.7 类型转换:自动类型转换(小转大)和强制类型转换(大转小可能丢失精度)。
- 2.8 包装类:每个基本类型都有对应的包装类,如Integer、Double等,支持自动装箱和拆箱。
# 03.运算符
- 3.1.1 运算符由来:主要是数学与逻辑的抽象,引入编程中用于操作变量、常量和表达式。
- 3.2 算术运算符:加减乘除取模,以及自增自减运算符。
- 3.3 赋值运算符:=, +=, -=, *=, /=, %=等复合赋值运算符。
- 3.4 比较运算符:==, !=, >, <, >=, <=,返回boolean类型。
- 3.5 逻辑运算符:&&(短路与)、||(短路或)、!(非)。
- 3.6 位运算符:&, |, ^, ~, <<, >>, >>>(无符号右移)。
- 3.7 运算符优先级:括号优先级最高,赋值运算符优先级最低。
- 3.8 instanceof运算符:用于判断对象是否是某个类的实例。
# 04.字符串和数组
- 4.2.1 String类:Java中字符串是对象,使用String类表示,字符串是不可变的。
- 4.2.2 字符串创建:直接赋值和new创建的区别,涉及字符串常量池。
- 4.3 StringBuilder和StringBuffer:可变字符串,StringBuilder线程不安全但快,StringBuffer线程安全但慢。
- 4.4.1 数组基本概念:存储相同类型元素的连续内存数据结构,大小固定不可变。
- 4.4.2 数组的声明:
int[] arr = new int[5];或int[] arr = {1,2,3,4,5};。 - 4.4.5 多维数组:
int[][] arr = new int[3][4];。 - 4.4.7 增强for循环遍历:
for(int item : arr)简化数组遍历。
# 05.流程语句
- 5.2.1 if语句:单行if、if-else、多条件if-else if-else。
- 5.2.7 switch语句:支持byte、short、int、char、String(JDK7+)、枚举类型。
- 5.3.1 while循环:先判断条件再执行。
- 5.3.2 do-while循环:先执行再判断条件,至少执行一次。
- 5.3.3 for循环:标准for循环和增强for循环(for-each)。
- 5.4.1 break语句:跳出当前循环或switch。
- 5.4.2 continue语句:跳过本次循环。
# 06.函数方法
- 6.1.1 方法概念:Java中函数叫方法,是一段可重用的代码块,必须定义在类中。
- 6.1.2 方法声明和定义:访问修饰符、返回类型、方法名、参数列表。
- 6.2.1 值传递:Java只有值传递,基本类型传值,引用类型传引用的副本。
- 6.4.1 方法重载:同一个类中方法名相同但参数列表不同。
- 6.5 可变参数:使用
...定义可变参数,如void method(int... nums)。 - 6.6 递归:方法调用自身,需要有终止条件。
# 07.类和对象
- 10.1.1 类的含义:类是对象的模板,封装了数据(属性)和行为(方法)。
- 10.2.1 类的定义:使用class关键字定义类。
- 10.2.2 创建对象:使用new关键字创建对象。
- 10.3.1 成员变量:实例变量和类变量(static修饰)。
- 10.3.2 成员方法:实例方法和静态方法。
- 10.4.1 构造方法:对象创建时自动调用,用于初始化。
- 10.4.2 构造方法重载:一个类可以有多个参数不同的构造方法。
- 10.5 封装:使用private修饰属性,提供public的getter/setter方法。
- 10.6 this关键字:指向当前对象的引用。
# 08.继承和多态
- 11.1.1 继承基本概念:使用extends关键字实现继承,子类继承父类的属性和方法。
- 11.1.2 Java单继承:Java只支持单继承,一个类只能有一个直接父类。
- 11.2.1 方法重写:子类重写父类方法,使用@Override注解。
- 11.3.1 super关键字:用于调用父类的构造方法和成员。
- 12.1.1 多态基本概念:父类引用指向子类对象,运行时根据实际类型调用方法。
- 12.1.2 向上转型和向下转型:向上自动,向下需要强制转换并用instanceof检查。
# 09.接口和抽象类
- 抽象类:使用abstract关键字修饰的类,不能被实例化,可以包含抽象方法和具体方法。
- 接口:使用interface关键字定义,JDK8后可以有default方法和static方法。
- 抽象类和接口的区别:抽象类可以有构造方法和成员变量,接口只能有常量;类单继承,接口多实现。
# 10.异常处理
- 17.1.1 异常概念:运行时发生错误(如空指针、数组越界等),Java通过异常机制处理。
- 17.1.3 异常基本语法:try-catch-finally语句。
- 异常体系:Throwable分为Error和Exception,Exception分为检查异常和运行时异常。
- throw和throws:throw用于抛出异常,throws用于声明方法可能抛出的异常。
- 自定义异常:继承Exception或RuntimeException创建自定义异常类。
# 11.集合框架
- Collection接口:List(有序可重复)、Set(无序不重复)。
- List:ArrayList(数组实现)、LinkedList(链表实现)。
- Set:HashSet(哈希表)、TreeSet(红黑树,有序)。
- Map接口:HashMap(哈希表)、TreeMap(红黑树)。
- 遍历方式:for-each、Iterator迭代器、Stream流。
# 12.IO流和File
- File类:用于表示文件和目录路径。
- 字节流:InputStream/OutputStream,用于读写二进制数据。
- 字符流:Reader/Writer,用于读写文本数据。
- 缓冲流:BufferedReader/BufferedWriter,提高读写效率。
- 序列化:Serializable接口,对象序列化和反序列化。
# 13.线程和锁
- 创建线程:继承Thread类或实现Runnable接口。
- 线程状态:新建、就绪、运行、阻塞、终止。
- synchronized:同步关键字,保证线程安全。
- Lock接口:ReentrantLock可重入锁。
- 线程池:ExecutorService,避免频繁创建销毁线程。
# 14.泛型
- 泛型类:
class Box<T>,类型参数化。 - 泛型方法:
<T> void method(T t)。 - 通配符:
?、? extends T、? super T。 - 类型擦除:Java泛型在编译后会擦除类型信息。
# 15.注解和反射
- 内置注解:@Override、@Deprecated、@SuppressWarnings。
- 自定义注解:使用@interface定义注解。
- 反射机制:在运行时获取类的信息并操作对象。
- Class类:获取Class对象的三种方式。
上次更新: 2026/06/10, 11:13:41