第一章 Java程序设计概述
- 09年sun被oracle收购->11年java7(简单改进)->14年java8(函数式编程)->2017年java9->2018年java11->2021年java17
第二章 Java编程环境
- Java9后新增JShell,提供类似脚本试执行java代码的能力。
第三章 Java的基本程序设计结构
- 类名必须大写,main方法必须试public。
- 八种基本数据类型:byte、char、short、int、long、float、double、bool
- Java10对于局部变量,支持通过var定义变量并自动化推导变量类型。
var greeting = "Hello"
- final定义常量,表示变量只能被赋值一次。static final表示类常量。
- const是java的保留字,但是目前没有使用。
- 枚举类型的定义:
enum Size {SMALL,MEDIUM,LARGH}
Size s= Size.SMALL;
- 数学运算函数:Math.sqrt(x)、Math.pow(x,a)等
- 数值类型的合法转化:实线无数据丢失,虚线有数据丢失。
9. 强制类型转换(cast)会引起数据精度丢失。
double x = 9.99;
int y = (int)x; // x is 9
- &&和||支持短路特性。
- Java14引入switch表达式,可用于在两个以上值做选择(丰富了condition三目运算符)。case类型可以是字符串/逗号分隔的字符串/枚举/常量表达式。
String season = Switch(seasonCode){
case 0 -> "Spring";
case 1 -> "Summer";
case 2 -> "Summer";
case 3 -> "Fall";
case 1 -> "Winter";
default -> "???";
};
- Java中字符串是不可修改的(immutable)。字符串存储在常量池中,字符串变量指向常量池中字符串的位置。
- 字符串的相等判断:
==:判断字符串是否在同一位置
equals():判断字符串内容是否相等
- 空串是长度为0的字符串对象,null为空对象,两者有区别。
- 构建字符串可以使用StringBuilder(效率高,但是不支持多线程)和StringBuffer(效率低,但是支持多线程)。
- Java15新增代码块text block。
String greeting = “”“
Hello
World
““”;
- swith支持表达式和语句,且支持“直通”和“非直通式”。直通式case以冒号结束,非直通式case以->结束。与break类似,yield也会终止执行,但是相比于break,yield还会生成一个值。
- berak提供跳转到标签的语法。
- 大数使用BigInteger和BigDecimal。
- 数组:todo