Java 文档
简洁、以示例为主的 Java 参考文档。先读概念,再看代码,然后在 Coddy 学习旅程中动手练习。
开始课程入门
- Java 是什么Java 到底是什么,JVM 如何让一个编译好的程序在任何地方运行,以及 Java 可以用来构建哪些软件。
- 安装 Java如何安装 Java 开发工具包(JDK),选择版本和发行商,并确认 java 和 javac 能在命令行中运行。
- 运行 Java每个 Java 程序背后都是先编译、再运行的两步流程:用 javac 把 .java 源代码变成字节码,再用 java 运行 .class 文件。
- Java 语法Java 程序的基本结构:`main` 方法、语句和分号、代码块和花括号,以及代码运行之前编译器就会强制检查的规则。
- 注释如何在 Java 中写注释:单行 // 注释、多行 /* */ 块注释和 Javadoc /** */ 文档注释,以及各自的使用场景和要避免的写法。
变量与类型
- 变量Java 中变量的工作方式:带类型声明、赋值、命名规则、var 关键字、用 final 定义常量,以及决定变量在哪里有效的作用域规则。
- 数据类型Java 数据类型详解:八种基本类型、引用类型、默认值、字面量和后缀、溢出,以及各种数值类型该在什么时候用。
- 字符串Java 字符串的工作方式:如何创建字符串,用 + 拼接,为什么字符串不可变,如何用 equals 比较,以及 length、substring、replace 等日常 String 方法。
- 字符串格式化如何在 Java 中用 String.format 和 printf 格式化字符串:数字、填充、小数位的格式说明符,以及文本块和 formatted 方法。
- 运算符Java 运算符是如何工作的:算术、比较、逻辑、赋值、自增运算符和三元运算符,以及整数除法、优先级和让初学者栽跟头的陷阱。
- 类型转换Java 如何在类型之间转换:自动的拓宽转换、显式的窄化强制转换、窄化时会丢失哪些数据,以及数字和字符串之间的转换。
- Math 类如何使用 Java 的 Math 类:Math.pow、Math.sqrt、Math.abs、Math.max 和 Math.min,用 round、floor、ceil 取整,用 Math.random 生成指定范围的随机数,以及常量 PI 和 E,并说明每个方法的返回类型。
流程控制
- if-else如何在 Java 中用 if、else if 和 else 做判断:布尔条件、多分支链、嵌套、三元运算符,以及让人栽跟头的常见错误。
- switchJava switch 语句详解:case 标签、break 与穿透、default 分支、合并多个 case、新式箭头写法,以及 switch 表达式。
- for 循环讲解 Java 的 for 循环:经典的三段式循环、遍历数组和列表、嵌套循环、break 和 continue,以及增强 for-each 循环。
- while 循环Java while 循环详解:先判断条件的 while、至少执行一次的 do-while、读取输入直到遇到哨兵值、break 和 continue,以及如何避免死循环。
- for-each 循环讲解 Java 的 for-each(增强 for)循环:干净地遍历数组和集合,什么时候该用它,以及几乎人人都会踩的修改集合陷阱。
数组与集合
- 数组Java 数组的工作原理:固定长度、声明和初始化、索引、length、遍历、多维数组,以及 Arrays 工具类。
- ArrayList如何使用 Java 的 ArrayList,这种可变长度的列表常被用来代替普通数组。内容涵盖 add、get、remove、size、遍历和排序。
- HashMap如何用 Java 的 HashMap 做键值查找:put、get、getOrDefault、containsKey、遍历条目,以及最常用的几种模式。
- HashSet如何用 Java 的 HashSet 存放唯一值的集合:add、contains、remove,给列表去重,以及用并集、交集和差集组合集合。
- 遍历集合遍历 Java 集合的几种方式:for-each 循环、Iterator、索引循环和 forEach 方法,以及如何在遍历时安全地删除元素。
方法
类与对象
- 类Java 类是什么,如何定义字段和方法,如何用 new 创建对象,this 的作用,以及为什么实例状态保存在对象上。
- 构造方法Java 构造方法的工作原理:默认构造方法、带参数的构造方法、this、构造方法重载,以及用 this() 和 super() 链式调用。
- 继承Java 子类如何用 extends 继承字段和方法、通过 super 调用父类、重写行为,以及常见的陷阱。
- 接口Java 接口是什么,如何定义和实现接口,default 方法和 static 方法,以及接口与抽象类有什么不同。
- 抽象类Java 抽象类是什么,如何声明抽象方法,为什么不能实例化抽象类,以及什么时候该选抽象类而不是接口。
- 多态Java 多态如何让一个变量引用多种类型,为什么重写的方法在运行时才分派,以及如何安全地使用向上转型、向下转型和 instanceof。
- 访问修饰符Java 的四种访问级别(public、private、protected 和包私有)如何控制其他代码能看到和修改什么。
- 静态成员Java 中的 static 关键字有什么作用,静态字段和静态方法如何属于类而不属于对象,以及什么时候该用静态代码块和常量。
- 枚举Java 枚举是什么,如何声明枚举,如何添加字段和方法,如何对它使用 switch,以及为什么枚举比一堆 int 或 String 常量更好。