From 941103fd8126598a0cd3d6baec0f4a5907d79113 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Wed, 28 Oct 2026 03:18:44 +0800 Subject: [PATCH] =?UTF-8?q?Update=20Java=20=E5=9F=BA=E7=A1=80.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重新绘制字符串常量池的配图,补充包装类缓存、switch 的实现方式,调整反射、泛型和注解的讲解,增加实测附录。 --- notes/Java 基础.md | 613 ++++++++++++++++++++------------ notes/pics/java-string-pool.png | Bin 0 -> 162651 bytes 2 files changed, 384 insertions(+), 229 deletions(-) create mode 100644 notes/pics/java-string-pool.png diff --git a/notes/Java 基础.md b/notes/Java 基础.md index 8f006ed4..57d23ea4 100644 --- a/notes/Java 基础.md +++ b/notes/Java 基础.md @@ -20,7 +20,7 @@ * [final](#final) * [static](#static) * [五、Object 通用方法](#五object-通用方法) - * [概览](#概览) + * [概览](#概览-1) * [equals()](#equals) * [hashCode()](#hashcode) * [toString()](#tostring) @@ -38,6 +38,12 @@ * [Java 各版本的新特性](#java-各版本的新特性) * [Java 与 C++ 的区别](#java-与-c-的区别) * [JRE or JDK](#jre-or-jdk) + * [附录:实测](#附录实测) + * [A1 包装类型的缓存池](#a1-包装类型的缓存池) + * [A2 字符串的存储](#a2-字符串的存储) + * [A3 泛型的类型擦除](#a3-泛型的类型擦除) + * [A4 反射与注解](#a4-反射与注解) + * [A5 Lambda 与 Stream](#a5-lambda-与-stream) * [参考资料](#参考资料) @@ -55,10 +61,7 @@ - double/64 - boolean/\~ -boolean 只有两个值:true、false,可以使用 1 bit 来存储,但是具体大小没有明确规定。JVM 会在编译时期将 boolean 类型的数据转换为 int,使用 1 来表示 true,0 表示 false。JVM 支持 boolean 数组,但是是通过读写 byte 数组来实现的。 - -- [Primitive Data Types](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html) -- [The Java® Virtual Machine Specification](https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf) +boolean 只有两个值:true、false,可以使用 1 bit 来存储,但是具体大小没有明确规定。编译器会把 boolean 类型的数据编译为 int,使用 1 来表示 true,0 表示 false。JVM 支持 boolean 数组,但是是通过读写 byte 数组来实现的。 ### 包装类型 @@ -66,11 +69,9 @@ boolean 只有两个值:true、false,可以使用 1 bit 来存储,但是 ```java Integer x = 2; // 装箱 调用了 Integer.valueOf(2) -int y = x; // 拆箱 调用了 X.intValue() +int y = x; // 拆箱 调用了 x.intValue() ``` -- [Autoboxing and Unboxing](https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html) - ### 缓存池 new Integer(123) 与 Integer.valueOf(123) 的区别在于: @@ -87,6 +88,8 @@ Integer k = Integer.valueOf(123); System.out.println(z == k); // true ``` +需要注意的是,new Integer(123) 从 JDK 9 起已经废弃,JDK 16 起标记为将要删除,编译时会给出警告,应该使用 Integer.valueOf(123)。 + valueOf() 方法的实现比较简单,就是先判断值是否在缓存池中,如果在的话就直接返回缓存池的内容。 ```java @@ -97,40 +100,6 @@ public static Integer valueOf(int i) { } ``` -在 Java 8 中,Integer 缓存池的大小默认为 -128\~127。 - -```java -static final int low = -128; -static final int high; -static final Integer cache[]; - -static { - // high value may be configured by property - int h = 127; - String integerCacheHighPropValue = - sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high"); - if (integerCacheHighPropValue != null) { - try { - int i = parseInt(integerCacheHighPropValue); - i = Math.max(i, 127); - // Maximum array size is Integer.MAX_VALUE - h = Math.min(i, Integer.MAX_VALUE - (-low) -1); - } catch( NumberFormatException nfe) { - // If the property cannot be parsed into an int, ignore it. - } - } - high = h; - - cache = new Integer[(high - low) + 1]; - int j = low; - for(int k = 0; k < cache.length; k++) - cache[k] = new Integer(j++); - - // range [-128, 127] must be interned (JLS7 5.1.7) - assert IntegerCache.high >= 127; -} -``` - 编译器会在自动装箱过程调用 valueOf() 方法,因此多个值相同且值在缓存池范围内的 Integer 实例使用自动装箱来创建,那么就会引用相同的对象。 ```java @@ -139,26 +108,21 @@ Integer n = 123; System.out.println(m == n); // true ``` -基本类型对应的缓冲池如下: +各包装类型的缓存池如下(JDK 21 实测,见[附录 A1](#a1-包装类型的缓存池)): -- boolean values true and false -- all byte values -- short values between -128 and 127 -- int values between -128 and 127 -- char in the range \u0000 to \u007F +- Boolean:true 和 false; +- Byte:全部 256 个值; +- Short、Integer、Long:-128\~127; +- Character:0\~127,即 \u0000\~\u007F; +- Float、Double 没有缓存池。 -在使用这些基本类型对应的包装类型时,如果该数值范围在缓冲池范围内,就可以直接使用缓冲池中的对象。 - -在 jdk 1.8 所有的数值类缓冲池中,Integer 的缓冲池 IntegerCache 很特殊,这个缓冲池的下界是 - 128,上界默认是 127,但是这个上界是可调的,在启动 jvm 的时候,通过 -XX:AutoBoxCacheMax=<size> 来指定这个缓冲池的大小,该选项在 JVM 初始化的时候会设定一个名为 java.lang.IntegerCache.high 系统属性,然后 IntegerCache 初始化的时候就会读取该系统属性来决定上界。 - -[StackOverflow : Differences between new Integer(123), Integer.valueOf(123) and just 123 -](https://stackoverflow.com/questions/9030817/differences-between-new-integer123-integer-valueof123-and-just-123) +Integer 缓存池的上界可以调整:启动时加上 -XX:AutoBoxCacheMax=1000,IntegerCache 初始化时会读取这个值,之后 Integer.valueOf(128) 也会返回同一个对象。其它包装类型的缓存范围是固定的。 ## 二、String ### 概览 -String 被声明为 final,因此它不可被继承。(Integer 等包装类也不能被继承) +String 被声明为 final,因此它不可被继承(Integer 等包装类也不能被继承)。 在 Java 8 中,String 内部使用 char 数组存储数据。 @@ -170,7 +134,7 @@ public final class String } ``` -在 Java 9 之后,String 类的实现改用 byte 数组存储字符串,同时使用 `coder` 来标识使用了哪种编码。 +从 Java 9 开始,String 类的实现改用 byte 数组存储字符串,同时使用 coder 来标识使用了哪种编码(紧凑字符串,JEP 254):只包含 Latin-1 字符的字符串每个字符占 1 个字节,coder 为 0;含有中文等其它字符时按 UTF-16 存储,每个字符占 2 个字节,coder 为 1。英文为主的程序中,字符串占用的内存因此减少近一半。 ```java public final class String @@ -187,40 +151,30 @@ value 数组被声明为 final,这意味着 value 数组初始化之后就不 ### 不可变的好处 -**1. 可以缓存 hash 值** +#### 1. 可以缓存哈希值 -因为 String 的 hash 值经常被使用,例如 String 用做 HashMap 的 key。不可变的特性可以使得 hash 值也不可变,因此只需要进行一次计算。 +因为 String 的哈希值经常被使用,例如 String 用做 HashMap 的 key。不可变的特性可以使得哈希值也不可变,因此只需要进行一次计算。 -**2. String Pool 的需要** +#### 2. String Pool 的需要 -如果一个 String 对象已经被创建过了,那么就会从 String Pool 中取得引用。只有 String 是不可变的,才可能使用 String Pool。 +如果一个 String 对象已经被创建过了,那么就会从 String Pool 中取得引用。只有 String 是不可变的,才可能使用 String Pool:下图中 s1 和 s2 引用的是同一个对象,如果可以通过 s1 修改它,s2 的值也会跟着改变。 -

+

-**3. 安全性** +#### 3. 安全性 String 经常作为参数,String 不可变性可以保证参数不可变。例如在作为网络连接参数的情况下如果 String 是可变的,那么在网络连接过程中,String 被改变,改变 String 的那一方以为现在连接的是其它主机,而实际情况却不一定是。 -**4. 线程安全** +#### 4. 线程安全 String 不可变性天生具备线程安全,可以在多个线程中安全地使用。 -[Program Creek : Why String is immutable in Java?](https://www.programcreek.com/2013/04/why-string-is-immutable-in-java/) - ### String, StringBuffer and StringBuilder -**1. 可变性** +- 可变性:String 不可变,StringBuffer 和 StringBuilder 可变; +- 线程安全:String 不可变,因此是线程安全的;StringBuffer 的方法使用 synchronized 进行同步,是线程安全的;StringBuilder 不是线程安全的,但没有加锁的开销,单线程中拼接字符串时使用它。 -- String 不可变 -- StringBuffer 和 StringBuilder 可变 - -**2. 线程安全** - -- String 不可变,因此是线程安全的 -- StringBuilder 不是线程安全的 -- StringBuffer 是线程安全的,内部使用 synchronized 进行同步 - -[StackOverflow : String, StringBuffer, and StringBuilder](https://stackoverflow.com/questions/2971315/string-stringbuffer-and-stringbuilder) +需要注意的是,在循环中用 + 拼接字符串,每次循环都会创建一个新的 String 对象并复制之前的内容,应该在循环外创建一个 StringBuilder,在循环中调用 append()。 ### String Pool @@ -249,9 +203,6 @@ System.out.println(s5 == s6); // true 在 Java 7 之前,String Pool 被放在运行时常量池中,它属于永久代。而在 Java 7,String Pool 被移到堆中。这是因为永久代的空间有限,在大量使用字符串的场景下会导致 OutOfMemoryError 错误。 -- [StackOverflow : What is String interning?](https://stackoverflow.com/questions/10578984/what-is-string-interning) -- [深入解析 String#intern](https://tech.meituan.com/in_depth_understanding_string_intern.html) - ### new String("abc") 使用这种方式一共会创建两个字符串对象(前提是 String Pool 中还没有 "abc" 字符串对象)。 @@ -297,12 +248,14 @@ Constant pool: 在 class 文件的常量池中,#19 存储字符串字面量 "abc",#3 是 String 类型的常量,它指向 #19;运行时解析 #3 得到的就是 String Pool 中的字符串对象。在 main 方法中,0: 行使用 new #2 在堆中创建一个字符串对象,并且使用 ldc #3 将 String Pool 中的字符串对象作为 String 构造函数的参数。 -以下是 String 构造函数的源码,可以看到,在将一个字符串对象作为另一个字符串对象的构造函数参数时,并不会完全复制 value 数组内容,而是都会指向同一个 value 数组。 +以下是 JDK 21 中 String 构造函数的源码,可以看到,在将一个字符串对象作为另一个字符串对象的构造函数参数时,并不会完全复制 value 数组内容,而是都会指向同一个 value 数组,即上图中的 s3。 ```java public String(String original) { this.value = original.value; + this.coder = original.coder; this.hash = original.hash; + this.hashIsZero = original.hashIsZero; } ``` @@ -374,8 +327,6 @@ public class PassByValueExample { } ``` -[StackOverflow: Is Java “pass-by-reference” or “pass-by-value”?](https://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value) - ### float 与 double Java 不能隐式执行向下转型,因为这会使得精度降低。 @@ -414,8 +365,6 @@ s1++; s1 = (short) (s1 + 1); ``` -[StackOverflow : Why don't Java's +=, -=, *=, /= compound assignment operators require casting?](https://stackoverflow.com/questions/8710619/why-dont-javas-compound-assignment-operators-require-casting) - ### switch 从 Java 7 开始,可以在 switch 条件判断语句中使用 String 对象。 @@ -432,11 +381,11 @@ switch (s) { } ``` -switch 不支持 long、float、double,是因为 switch 的设计初衷是对那些只有少数几个值的类型进行等值判断,如果值过于复杂,那么还是用 if 比较合适。 +switch 不支持 long、float、double,这是因为 switch 编译后的 tableswitch 和 lookupswitch 指令只能按 int 值跳转。对 String 使用 switch 时,编译器先按 hashCode() 跳转,再用 equals() 比较(JDK 21 javap 实测,见[附录 A2](#a2-字符串的存储))。 ```java // long x = 111; -// switch (x) { // Incompatible types. Found: 'long', required: 'char, byte, short, int, Character, Byte, Short, Integer, String, or an enum' +// switch (x) { // error: selector type long is not allowed // case 111: // System.out.println(111); // break; @@ -446,14 +395,24 @@ switch 不支持 long、float、double,是因为 switch 的设计初衷是对 // } ``` -[StackOverflow : Why can't your switch statement data type be long, Java?](https://stackoverflow.com/questions/2676210/why-cant-your-switch-statement-data-type-be-long-java) +从 Java 14 开始,switch 还可以作为表达式使用。case 后面用 -> 时不会贯穿到下一个分支,不需要 break: + +```java +int days = switch (month) { + case 2 -> 28; + case 4, 6, 9, 11 -> 30; + default -> 31; +}; +``` + +Java 21 起 switch 还可以按类型匹配,见 [Java 各版本的新特性](#java-各版本的新特性)。 ## 四、关键字 ### final -**1. 数据** +#### 1. 数据 声明数据为常量,可以是编译时常量,也可以是在运行时被初始化后不能被改变的常量。 @@ -467,21 +426,21 @@ final A y = new A(); y.a = 1; ``` -**2. 方法** +#### 2. 方法 声明方法不能被子类重写。 private 方法隐式地被指定为 final,如果在子类中定义的方法和基类中的一个 private 方法签名相同,此时子类的方法不是重写基类方法,而是在子类中定义了一个新的方法。 -**3. 类** +#### 3. 类 声明类不允许被继承。 ### static -**1. 静态变量** +#### 1. 静态变量 -- 静态变量:又称为类变量,也就是说这个变量属于类的,类所有的实例都共享静态变量,可以直接通过类名来访问它。静态变量在内存中只存在一份。 +- 静态变量:又称为类变量,也就是说这个变量属于类的,类所有的实例都共享静态变量,可以直接通过类名来访问它,静态变量在内存中只存在一份; - 实例变量:每创建一个实例就会产生一个实例变量,它与该实例同生共死。 ```java @@ -499,7 +458,7 @@ public class A { } ``` -**2. 静态方法** +#### 2. 静态方法 静态方法在类加载的时候就存在了,它不依赖于任何实例。所以静态方法必须有实现,也就是说它不能是抽象方法。 @@ -527,7 +486,7 @@ public class A { } ``` -**3. 静态语句块** +#### 3. 静态语句块 静态语句块在类初始化时运行一次。 @@ -544,11 +503,11 @@ public class A { } ``` -```html +```text 123 ``` -**4. 静态内部类** +#### 4. 静态内部类 非静态内部类依赖于外部类的实例,也就是说需要先创建外部类实例,才能用这个实例去创建非静态内部类。而静态内部类不需要。 @@ -572,15 +531,15 @@ public class OuterClass { 静态内部类不能访问外部类的非静态的变量和方法。 -**5. 静态导包** +#### 5. 静态导包 在使用静态变量和方法时不用再指明 ClassName,从而简化代码,但可读性大大降低。 ```java -import static com.xxx.ClassName.* +import static com.xxx.ClassName.*; ``` -**6. 初始化顺序** +#### 6. 初始化顺序 静态变量和静态语句块优先于实例变量和普通语句块,静态变量和静态语句块的初始化顺序取决于它们在代码中的顺序。 @@ -626,7 +585,6 @@ public InitialOrderTest() { ### 概览 ```java - public native int hashCode() public boolean equals(Object obj) @@ -637,7 +595,7 @@ public String toString() public final native Class getClass() -protected void finalize() throws Throwable {} +protected void finalize() throws Throwable {} // JDK 9 起废弃,JDK 18 起标记为将要删除 public final native void notify() @@ -652,48 +610,19 @@ public final void wait() throws InterruptedException ### equals() -**1. 等价关系** +#### 1. 等价关系 两个对象具有等价关系,需要满足以下五个条件: -Ⅰ 自反性 +- 自反性:x.equals(x) 为 true; +- 对称性:x.equals(y) 与 y.equals(x) 的结果相同; +- 传递性:x.equals(y) 和 y.equals(z) 都为 true 时,x.equals(z) 也为 true; +- 一致性:对象没有被修改时,多次调用 x.equals(y) 的结果不变; +- 与 null 的比较:对任何不是 null 的对象 x,x.equals(null) 为 false。 -```java -x.equals(x); // true -``` +#### 2. 等价与相等 -Ⅱ 对称性 - -```java -x.equals(y) == y.equals(x); // true -``` - -Ⅲ 传递性 - -```java -if (x.equals(y) && y.equals(z)) - x.equals(z); // true; -``` - -Ⅳ 一致性 - -多次调用 equals() 方法结果不变 - -```java -x.equals(y) == x.equals(y); // true -``` - -Ⅴ 与 null 的比较 - -对任何不是 null 的对象 x 调用 x.equals(null) 结果都为 false - -```java -x.equals(null); // false; -``` - -**2. 等价与相等** - -- 对于基本类型,== 判断两个值是否相等,基本类型没有 equals() 方法。 +- 对于基本类型,== 判断两个值是否相等,基本类型没有 equals() 方法; - 对于引用类型,== 判断两个变量是否引用同一个对象,而 equals() 判断引用的对象是否等价。 ```java @@ -703,7 +632,7 @@ System.out.println(x.equals(y)); // true System.out.println(x == y); // false ``` -**3. 实现** +#### 3. 实现 - 检查是否为同一个对象的引用,如果是直接返回 true; - 检查是否是同一个类型,如果不是,直接返回 false; @@ -739,13 +668,13 @@ public class EqualExample { ### hashCode() -hashCode() 返回哈希值,而 equals() 是用来判断两个对象是否等价。等价的两个对象散列值一定相同,但是散列值相同的两个对象不一定等价,这是因为计算哈希值具有随机性,两个值不同的对象可能计算出相同的哈希值。 +hashCode() 返回哈希值,而 equals() 是用来判断两个对象是否等价。Object 规定等价的两个对象哈希值必须相同,但是哈希值相同的两个对象不一定等价,这是因为哈希值只有 32 位,不同的对象可能计算出相同的哈希值,例如 "Aa" 和 "BB" 的哈希值都是 2112(见[附录 A2](#a2-字符串的存储))。 在覆盖 equals() 方法时应当总是覆盖 hashCode() 方法,保证等价的两个对象哈希值也相等。 -HashSet 和 HashMap 等集合类使用了 hashCode() 方法来计算对象应该存储的位置,因此要将对象添加到这些集合类中,需要让对应的类实现 hashCode() 方法。 +HashSet 和 HashMap 等集合类使用了 hashCode() 方法来计算对象应该存储的位置,因此要将对象添加到这些集合类中,需要让对应的类实现 hashCode() 方法。 -下面的代码中,新建了两个等价的对象,并将它们添加到 HashSet 中。我们希望将这两个对象当成一样的,只在集合中添加一个对象。但是 EqualExample 没有实现 hashCode() 方法,因此这两个对象的哈希值是不同的,最终导致集合添加了两个等价的对象。 +下面的代码中,新建了两个等价的对象,并将它们添加到 HashSet 中。期望的结果是把这两个对象当成一样的,只在集合中添加一个对象。但是 EqualExample 没有实现 hashCode() 方法,因此这两个对象的哈希值是不同的,最终导致集合添加了两个等价的对象。 ```java EqualExample e1 = new EqualExample(1, 1, 1); @@ -759,7 +688,7 @@ System.out.println(set.size()); // 2 理想的哈希函数应当具有均匀性,即不相等的对象应当均匀分布到所有可能的哈希值上。这就要求了哈希函数要把所有域的值都考虑进来。可以将每个域都当成 R 进制的某一位,然后组成一个 R 进制的整数。 -R 一般取 31,因为它是一个奇素数,如果是偶数的话,当出现乘法溢出,信息就会丢失,因为与 2 相乘相当于向左移一位,最左边的位丢失。并且一个数与 31 相乘可以转换成移位和减法:`31*x == (x<<5)-x`,编译器会自动进行这个优化。 +R 一般取 31,因为它是一个奇素数,如果是偶数的话,当出现乘法溢出,信息就会丢失,因为与 2 相乘相当于向左移一位,最左边的位丢失。并且一个数与 31 相乘可以转换成移位和减法:`31*x == (x<<5)-x`,虚拟机可以自动进行这个优化。 ```java @Override @@ -772,9 +701,11 @@ public int hashCode() { } ``` +实际编写时可以直接调用 Objects.hash(x, y, z),它按同样的方式计算,只是初始值为 1。 + ### toString() -默认返回 ToStringExample@4554617c 这种形式,其中 @ 后面的数值为散列码的无符号十六进制表示。 +默认返回 ToStringExample@4554617c 这种形式,其中 @ 后面的数值为哈希码的无符号十六进制表示。 ```java public class ToStringExample { @@ -792,13 +723,13 @@ ToStringExample example = new ToStringExample(123); System.out.println(example.toString()); ``` -```html +```text ToStringExample@4554617c ``` ### clone() -**1. cloneable** +#### 1. Cloneable clone() 是 Object 的 protected 方法,它不是 public,一个类不显式去重写 clone(),其它类就不能直接去调用该类实例的 clone() 方法。 @@ -837,7 +768,7 @@ try { } ``` -```html +```text java.lang.CloneNotSupportedException: CloneExample ``` @@ -857,7 +788,7 @@ public class CloneExample implements Cloneable { } ``` -**2. 浅拷贝** +#### 2. 浅拷贝 拷贝对象和原始对象的引用类型引用同一个对象。 @@ -900,7 +831,7 @@ e1.set(2, 222); System.out.println(e2.get(2)); // 222 ``` -**3. 深拷贝** +#### 3. 深拷贝 拷贝对象和原始对象的引用类型引用不同对象。 @@ -948,9 +879,9 @@ e1.set(2, 222); System.out.println(e2.get(2)); // 2 ``` -**4. clone() 的替代方案** +#### 4. clone() 的替代方案 -使用 clone() 方法来拷贝一个对象即复杂又有风险,它会抛出异常,并且还需要类型转换。Effective Java 书上讲到,最好不要去使用 clone(),可以使用拷贝构造函数或者拷贝工厂来拷贝一个对象。 +使用 clone() 方法来拷贝一个对象既复杂又有风险,它会抛出异常,并且还需要类型转换。Effective Java 书上讲到,最好不要去使用 clone(),可以使用拷贝构造函数或者拷贝工厂来拷贝一个对象。 ```java public class CloneConstructorExample { @@ -996,8 +927,8 @@ Java 中有三个访问权限修饰符:private、protected 以及 public,如 可以对类或类中的成员(字段和方法)加上访问修饰符。 -- 类可见表示其它类可以用这个类创建实例对象。 -- 成员可见表示其它类可以用这个类的实例对象访问到该成员; +- 类可见表示其它类可以用这个类创建实例对象; +- 成员可见表示其它类可以用这个类的实例对象访问到该成员。 protected 用于修饰成员,表示在继承体系中成员对于子类可见,但是这个访问修饰符对于类没有意义。 @@ -1005,7 +936,7 @@ protected 用于修饰成员,表示在继承体系中成员对于子类可见 如果子类的方法重写了父类的方法,那么子类中该方法的访问级别不允许低于父类的访问级别。这是为了确保可以使用父类实例的地方都可以使用子类实例去代替,也就是确保满足里氏替换原则。 -字段决不能是公有的,因为这么做的话就失去了对这个字段修改行为的控制,客户端可以对其随意修改。例如下面的例子中,AccessExample 拥有 id 公有字段,如果在某个时刻,我们想要使用 int 存储 id 字段,那么就需要修改所有的客户端代码。 +字段决不能是公有的,因为这么做的话就失去了对这个字段修改行为的控制,客户端可以对其随意修改。例如下面的例子中,AccessExample 拥有 id 公有字段,如果在某个时刻想要改为使用 int 存储 id 字段,那么就需要修改所有的客户端代码。 ```java public class AccessExample { @@ -1053,7 +984,7 @@ public class AccessWithInnerClassExample { ### 抽象类与接口 -**1. 抽象类** +#### 1. 抽象类 抽象类和抽象方法都使用 abstract 关键字进行声明。如果一个类中包含抽象方法,那么这个类必须声明为抽象类。 @@ -1088,7 +1019,7 @@ AbstractClassExample ac2 = new AbstractExtendClassExample(); ac2.func1(); ``` -**2. 接口** +#### 2. 接口 接口是抽象类的延伸,在 Java 8 之前,它可以看成是一个完全抽象的类,也就是说它不能有任何的方法实现。 @@ -1112,7 +1043,7 @@ public interface InterfaceExample { public int z = 0; // Modifier 'public' is redundant for interface fields // private int k = 0; // Modifier 'private' not allowed here // protected int l = 0; // Modifier 'protected' not allowed here - // private void fun3(); // Modifier 'private' not allowed here + // private void fun3(); // missing method body:Java 9 起可以定义私有方法,但必须有方法体 } ``` @@ -1132,14 +1063,14 @@ ie2.func1(); System.out.println(InterfaceExample.x); ``` -**3. 比较** +#### 3. 比较 -- 从设计层面上看,抽象类提供了一种 IS-A 关系,需要满足里氏替换原则,即子类对象必须能够替换掉所有父类对象。而接口更像是一种 LIKE-A 关系,它只是提供一种方法实现契约,并不要求接口和实现接口的类具有 IS-A 关系。 -- 从使用上来看,一个类可以实现多个接口,但是不能继承多个抽象类。 -- 接口的字段只能是 static 和 final 类型的,而抽象类的字段没有这种限制。 -- 接口的成员只能是 public 的,而抽象类的成员可以有多种访问权限。 +- 从设计层面上看,抽象类提供了一种 IS-A 关系,需要满足里氏替换原则,即子类对象必须能够替换掉所有父类对象。而接口更像是一种 LIKE-A 关系,它只是提供一种方法实现契约,并不要求接口和实现接口的类具有 IS-A 关系; +- 从使用上来看,一个类可以实现多个接口,但是不能继承多个抽象类; +- 接口的字段只能是 static 和 final 类型的,而抽象类的字段没有这种限制; +- 接口的成员默认是 public 的,Java 9 起方法可以是 private 的,但不能是 protected 的;抽象类的成员可以有多种访问权限。 -**4. 使用选择** +#### 4. 使用选择 使用接口: @@ -1148,21 +1079,16 @@ System.out.println(InterfaceExample.x); 使用抽象类: -- 需要在几个相关的类中共享代码。 -- 需要能控制继承来的成员的访问权限,而不是都为 public。 +- 需要在几个相关的类中共享代码; +- 需要能控制继承来的成员的访问权限,而不是都为 public; - 需要继承非静态和非常量字段。 -在很多情况下,接口优先于抽象类。因为接口没有抽象类严格的类层次结构要求,可以灵活地为一个类添加行为。并且从 Java 8 开始,接口也可以有默认的方法实现,使得修改接口的成本也变的很低。 - -- [Abstract Methods and Classes](https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html) -- [深入理解 abstract class 和 interface](https://www.ibm.com/developerworks/cn/java/l-javainterface-abstract/) -- [When to Use Abstract Class and Interface](https://dzone.com/articles/when-to-use-abstract-class-and-intreface) -- [Java 9 Private Methods in Interfaces](https://www.journaldev.com/12850/java-9-private-methods-interfaces) +在很多情况下,接口优先于抽象类。因为接口没有抽象类严格的类层次结构要求,可以灵活地为一个类添加行为。并且从 Java 8 开始,接口也可以有默认的方法实现,使得修改接口的成本也变得很低。 ### super -- 访问父类的构造函数:可以使用 super() 函数访问父类的构造函数,从而委托父类完成一些初始化的工作。应该注意到,子类一定会调用父类的构造函数来完成初始化工作,一般是调用父类的默认构造函数,如果子类需要调用父类其它构造函数,那么就可以使用 super() 函数。 +- 访问父类的构造函数:可以使用 super() 函数访问父类的构造函数,从而委托父类完成一些初始化的工作。应该注意到,子类一定会调用父类的构造函数来完成初始化工作,一般是调用父类的默认构造函数,如果子类需要调用父类其它构造函数,那么就可以使用 super() 函数; - 访问父类的成员:如果子类重写了父类的某个方法,可以通过使用 super 关键字来引用父类的方法实现。 ```java @@ -1205,33 +1131,31 @@ SuperExample e = new SuperExtendExample(1, 2, 3); e.func(); ``` -```html +```text SuperExample.func() SuperExtendExample.func() ``` -[Using the Keyword super](https://docs.oracle.com/javase/tutorial/java/IandI/super.html) - ### 重写与重载 -**1. 重写(Override)** +#### 1. 重写(Override) 存在于继承体系中,指子类实现了一个与父类在方法声明上完全相同的一个方法。 为了满足里氏替换原则,重写有以下三个限制: - 子类方法的访问权限必须大于等于父类方法; -- 子类方法的返回类型必须是父类方法返回类型或为其子类型。 -- 子类方法抛出的异常类型必须是父类抛出异常类型或为其子类型。 +- 子类方法的返回类型必须是父类方法返回类型或为其子类型; +- 子类方法抛出的受检异常必须是父类方法抛出的异常类型或为其子类型。 -使用 @Override 注解,可以让编译器帮忙检查是否满足上面的三个限制条件。 +上面三个限制无论是否加注解,编译器都会检查。@Override 注解让编译器检查这个方法确实重写了父类的方法,例如方法名或参数类型写错时,没有注解就会悄悄地变成一个新方法。 下面的示例中,SubClass 为 SuperClass 的子类,SubClass 重写了 SuperClass 的 func() 方法。其中: -- 子类方法访问权限为 public,大于父类的 protected。 -- 子类的返回类型为 ArrayList\,是父类返回类型 List\ 的子类。 -- 子类抛出的异常类型为 Exception,是父类抛出异常 Throwable 的子类。 -- 子类重写方法使用 @Override 注解,从而让编译器自动检查是否满足限制条件。 +- 子类方法访问权限为 public,大于父类的 protected; +- 子类的返回类型为 ArrayList\,是父类返回类型 List\ 的子类; +- 子类抛出的异常类型为 Exception,是父类抛出异常 Throwable 的子类; +- 子类重写方法使用 @Override 注解,从而让编译器检查它确实重写了父类的方法。 ```java class SuperClass { @@ -1248,12 +1172,12 @@ class SubClass extends SuperClass { } ``` -在调用一个方法时,先从本类中查找看是否有对应的方法,如果没有再到父类中查看,看是否从父类继承来。否则就要对参数进行转型,转成父类之后看是否有对应的方法。总的来说,方法调用的优先级为: +调用一个方法分为两步: -- this.func(this) -- super.func(this) -- this.func(super) -- super.func(super) +- 编译时,按变量声明的类型(静态类型)找到可以调用的方法,包括从父类继承来的方法,在其中选择参数类型最匹配的一个,参数没有完全匹配的方法时,把参数转型为父类再找; +- 运行时,按对象的实际类型,如果子类重写了编译时选定的方法,就调用子类的版本。 + +下面的代码中,ba 的静态类型是 A,ba.show(d) 在编译时选定 show(C obj),运行时的对象是 B,而 B 没有重写 show(C obj),所以调用的是 A.show(C)。 ```java @@ -1318,7 +1242,7 @@ public static void main(String[] args) { } ``` -**2. 重载(Overload)** +#### 2. 重载(Overload) 存在于同一个类中,指一个方法与已经存在的方法名称上相同,但是参数类型、个数、顺序至少有一个不同。 @@ -1346,52 +1270,56 @@ public static void main(String[] args) { ## 七、反射 -每个类都有一个 **Class** 对象,包含了与类有关的信息。当编译一个新类时,会产生一个同名的 .class 文件,该文件保存着类的字节码,类加载时 JVM 根据它创建对应的 Class 对象。 +每个类都有一个 Class 对象,包含了与类有关的信息。当编译一个新类时,会产生一个同名的 .class 文件,该文件保存着类的字节码,类加载时 JVM 根据它创建对应的 Class 对象。 -类加载相当于 Class 对象的加载,类在第一次使用时才动态加载到 JVM 中。也可以使用 `Class.forName("com.mysql.jdbc.Driver")` 这种方式来控制类的加载,该方法会返回一个 Class 对象。 +类加载相当于 Class 对象的加载,类在第一次使用时才动态加载到 JVM 中。也可以使用 Class.forName("com.example.Order") 这种方式来控制类的加载,该方法会返回一个 Class 对象。 反射可以提供运行时的类信息,并且这个类可以在运行时才加载进来,甚至在编译时期该类的 .class 不存在也可以加载进来。 Class 和 java.lang.reflect 一起对反射提供了支持,java.lang.reflect 类库主要包含了以下三个类: -- **Field** :可以使用 get() 和 set() 方法读取和修改 Field 对象关联的字段; -- **Method** :可以使用 invoke() 方法调用与 Method 对象关联的方法; -- **Constructor** :可以用 Constructor 的 newInstance() 创建新的对象。 +- Field:可以使用 get() 和 set() 方法读取和修改 Field 对象关联的字段; +- Method:可以使用 invoke() 方法调用与 Method 对象关联的方法; +- Constructor:可以用 Constructor 的 newInstance() 创建新的对象。 -**反射的优点:** +例如只知道类名 Order 时,创建对象、调用方法并读取私有字段: -- **可扩展性** :应用程序可以利用全限定名创建可扩展对象的实例,来使用来自外部的用户自定义类。 -- **类浏览器和可视化开发环境** :一个类浏览器需要可以枚举类的成员。可视化开发环境(如 IDE)可以从利用反射中可用的类型信息中受益,以帮助程序员编写正确的代码。 -- **调试器和测试工具** : 调试器需要能够检查一个类里的私有成员。测试工具可以利用反射来自动地调用类里定义的可被发现的 API 定义,以确保一组测试中有较高的代码覆盖率。 +```java +Class clazz = Class.forName("Order"); +Object order = clazz.getConstructor(long.class).newInstance(1024L); +Method pay = clazz.getMethod("pay", int.class); +System.out.println(pay.invoke(order, 99)); // order 1024 paid 99 -**反射的缺点:** +Field status = clazz.getDeclaredField("status"); +status.setAccessible(true); // 私有字段要先关闭访问检查 +System.out.println(status.get(order)); // PAID +``` -尽管反射非常强大,但也不能滥用。如果一个功能可以不用反射完成,那么最好就不用。在我们使用反射技术时,下面几条内容应该牢记于心。 +反射的用途: -- **性能开销** :反射涉及了动态类型的解析,所以 JVM 无法对这些代码进行优化。因此,反射操作的效率要比那些非反射操作低得多。我们应该避免在经常被执行的代码或对性能要求很高的程序中使用反射。 +- 框架:Spring 按配置或注解中的类名创建 Bean 并注入字段,MyBatis 把查询结果写入对象的字段,JUnit 找出带 @Test 注解的方法逐个调用,这些类在编写框架时都还不存在; +- 动态代理:JDK 动态代理在运行时生成实现了指定接口的类,调用通过 Method 对象转发,见 [动态代理](Spring.md#动态代理); +- 开发工具:IDE 列出类的成员,调试器查看对象的私有字段。 -- **安全限制** :使用反射技术要求程序必须在一个没有安全限制的环境中运行。如果一个程序必须在有安全限制的环境中运行,如 Applet,那么这就是个问题了。 +反射的缺点: -- **内部暴露** :由于反射允许代码执行一些在正常情况下不被允许的操作(比如访问私有的属性和方法),所以使用反射可能会导致意料之外的副作用,这可能导致代码功能失调并破坏可移植性。反射代码破坏了抽象性,因此当平台发生改变的时候,代码的行为就有可能也随着变化。 - -- [Trail: The Reflection API](https://docs.oracle.com/javase/tutorial/reflect/index.html) -- [深入解析 Java 反射(1)- 基础](http://www.sczyh30.com/posts/Java/java-reflection-1/) +- 性能开销:反射调用要检查访问权限、把参数装进 Object 数组,查找 Method 对象的开销更大。JDK 21 上把 Method 对象缓存起来时,每次调用只比直接调用多 2 纳秒左右;每次都用 getMethod() 查找再调用则约 28 纳秒(见[附录 A4](#a4-反射与注解)),所以框架都会缓存 Method 对象; +- 访问限制:JDK 9 引入模块系统后,JDK 内部类的私有成员默认不能通过反射访问,例如对 String 的 value 字段调用 setAccessible(true) 会抛出 InaccessibleObjectException,需要启动时加上 --add-opens; +- 破坏封装:反射可以访问私有的字段和方法,依赖这些内部细节的代码在类的实现改变后可能失效。 ## 八、异常 -Throwable 可以用来表示任何可以作为异常抛出的类,分为两种: **Error** 和 **Exception**。其中 Error 用来表示 JVM 无法处理的错误,Exception 分为两种: +Throwable 可以用来表示任何可以作为异常抛出的类,分为两种:Error 和 Exception。其中 Error 用来表示 JVM 无法处理的错误,例如 OutOfMemoryError、StackOverflowError,程序一般不捕获。Exception 分为两种: -- **受检异常** :需要用 try...catch... 语句捕获并进行处理,或者用 throws 声明抛出,并且可以从异常中恢复; -- **非受检异常** :是程序运行时错误,例如除 0 会引发 ArithmeticException。编译器不强制处理这类异常,通常应该修改代码来避免,而不是捕获之后恢复。 +- 受检异常:例如 IOException、SQLException,需要用 try...catch... 语句捕获并进行处理,或者用 throws 声明抛出,否则编译不通过,这类异常通常可以恢复; +- 非受检异常:RuntimeException 及其子类,是程序运行时错误,例如除 0 会引发 ArithmeticException,访问 null 的成员会引发 NullPointerException。编译器不强制处理这类异常,通常应该修改代码来避免,而不是捕获之后恢复。

-- [Java Exception Interview Questions and Answers](https://www.journaldev.com/2167/java-exception-interview-questions-and-answers) - -- [Java提高篇——Java 异常处理](https://www.cnblogs.com/Qian123/p/5715402.html) - ## 九、泛型 +泛型把类型作为参数,让编译器在编译时检查类型。例如 List\ 中只能放入字符串,取出时也不需要强制类型转换: + ```java public class Box { // T stands for "Type" @@ -1401,14 +1329,59 @@ public class Box { } ``` -- [Java 泛型详解](https://www.cnblogs.com/Blue-Keroro/p/8875898.html) -- [10 道 Java 泛型面试题](https://cloud.tencent.com/developer/article/1033693) +Java 的泛型通过类型擦除实现:类型参数只在编译时检查,编译后都替换为它的上界(没有声明上界时为 Object),在取出元素的地方由编译器插入强制类型转换。所以 List\ 和 List\ 在运行时是同一个类: + +```java +List a = new ArrayList<>(); +List b = new ArrayList<>(); +System.out.println(a.getClass() == b.getClass()); // true + +a.add("redis"); +String s = a.get(0); // 编译为 List.get,返回 Object,再执行 checkcast String +``` + +类型擦除带来以下限制: + +- 类型参数不能是基本类型,只能写 List\,不能写 List\; +- 不能 new T(),也不能用 instanceof List\ 判断,因为运行时已经没有 T 和 String 这些信息; +- 类型检查只发生在编译时:把 List\ 赋值给原始类型 List 后,可以放入一个 Integer,编译器只给出警告,等到取出赋给 String 时才抛出 ClassCastException;通过反射调用 add() 也能绕过检查(见[附录 A3](#a3-泛型的类型擦除))。 + +通配符用于方法参数,让方法接受一族泛型类型:List\ 可以接收 List\、List\,只能从中读出 Number,不能放入元素;List\ 可以接收 List\、List\,可以放入 Integer。例如 Collections.copy() 的声明为: + +```java +public static void copy(List dest, List src) +``` + +src 只读取,用 extends;dest 只写入,用 super。 ## 十、注解 -Java 注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。 +Java 注解是附加在代码中的一些元信息,本身不会改变代码的逻辑,要由编译器、注解处理器或者框架读取之后才起作用。@Retention 决定注解保留到什么阶段: -[注解 Annotation 实现原理与自定义注解例子](https://www.cnblogs.com/acm-bingzi/p/javaAnnotation.html) +- SOURCE:只在源码中,编译后丢弃,例如 @Override 只给编译器检查用,Lombok 的注解在编译时由注解处理器读取并生成代码; +- CLASS:保留在 class 文件中,但运行时读取不到,这是默认值; +- RUNTIME:运行时可以通过反射读取,Spring 的 @Autowired、@Transactional 都是这一类。 + +例如定义一个限流注解,再通过反射读出它的值: + +```java +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.METHOD) +@interface RateLimit { + int value(); // 每秒最多请求数 +} + +class OrderController { + @RateLimit(100) + public String create() { return "ok"; } +} + +Method m = OrderController.class.getMethod("create"); +RateLimit limit = m.getAnnotation(RateLimit.class); +System.out.println(limit.value()); // 100 +``` + +注解是一种特殊的接口,getAnnotation() 返回的是 JDK 在运行时生成的动态代理对象(类名为 $Proxy1 这样的形式),调用 value() 时从注解的属性表中取值。框架就是这样在调用方法前读出注解,再执行限流、开启事务等逻辑。 ## 十一、特性 @@ -1445,22 +1418,20 @@ var upper = List.of("redis", "mysql", "kafka", "java").stream() Thread.ofVirtual().start(() -> System.out.println(Thread.currentThread().isVirtual())); // true ``` -Lambda 表达式不会生成匿名内部类的 class 文件。用 javap 查看编译结果,Lambda 的方法体被编译成当前类的私有静态方法 lambda$main$0,调用处是一条 invokedynamic 指令,第一次执行时由 LambdaMetafactory 在运行时生成实现函数式接口的类。 +Lambda 表达式不会生成匿名内部类的 class 文件。Lambda 的方法体被编译成当前类的私有静态方法 lambda$main$0,调用处是一条 invokedynamic 指令,第一次执行时由 LambdaMetafactory 在运行时生成实现函数式接口的类(javap 实测,见[附录 A5](#a5-lambda-与-stream))。 Stream 是惰性求值的:filter、map 等中间操作只是记录下来,遇到 collect、findFirst 等终止操作才开始执行,并且每个元素依次走完整条流水线。上例改为 findFirst() 时,只处理了第一个元素 redis 就返回了,后面的 mysql、kafka 都没有被处理。 ### Java 与 C++ 的区别 -- Java 的代码都写在类中,除了基本类型之外,所有的对象都继承自 java.lang.Object;C++ 为了兼容 C,既支持面向对象也支持面向过程。 -- Java 通过虚拟机从而实现跨平台特性,但是 C++ 依赖于特定的平台。 -- Java 没有指针,它的引用可以理解为安全指针,而 C++ 具有和 C 一样的指针。 -- Java 支持自动垃圾回收,而 C++ 需要手动回收。 -- Java 不支持多重继承,只能通过实现多个接口来达到相同目的,而 C++ 支持多重继承。 -- Java 不支持操作符重载,虽然可以对两个 String 对象执行加法运算,但是这是语言内置支持的操作,不属于操作符重载,而 C++ 可以。 +- Java 的代码都写在类中,除了基本类型之外,所有的对象都继承自 java.lang.Object;C++ 为了兼容 C,既支持面向对象也支持面向过程; +- Java 通过虚拟机从而实现跨平台特性,但是 C++ 依赖于特定的平台; +- Java 没有指针,它的引用可以理解为安全指针,而 C++ 具有和 C 一样的指针; +- Java 支持自动垃圾收集,而 C++ 需要手动释放内存; +- Java 不支持多重继承,只能通过实现多个接口来达到相同目的,而 C++ 支持多重继承; +- Java 不支持操作符重载,虽然可以对两个 String 对象执行加法运算,但是这是语言内置支持的操作,不属于操作符重载,而 C++ 可以; - Java 的 goto 是保留字,但是不可用,C++ 可以使用 goto。 -[What are the main differences between Java and C++?](http://cs-fundamentals.com/tech-interview/java/differences-between-java-and-cpp.php) - 与 Go、Python 相比: | | Java | Go | Python(CPython) | @@ -1473,15 +1444,199 @@ Stream 是惰性求值的:filter、map 等中间操作只是记录下来,遇 ### JRE or JDK -- JRE:Java Runtime Environment,Java 运行环境的简称,为 Java 的运行提供了所需的环境。它是一个 JVM 程序,主要包括了 JVM 的标准实现和一些 Java 基本类库。 +- JRE:Java Runtime Environment,Java 运行环境的简称,为 Java 的运行提供了所需的环境。它是一个 JVM 程序,主要包括了 JVM 的标准实现和一些 Java 基本类库; - JDK:Java Development Kit,Java 开发工具包,提供了 Java 的开发及运行环境。JDK 是 Java 开发的核心,集成了 JRE 以及一些其它的工具,比如编译 Java 源码的编译器 javac 等。 +JDK 11 起 Oracle 不再单独发布 JRE,需要精简的运行环境时,可以用 jlink 生成只包含程序所需模块的运行时。 + +## 附录:实测 + +以下实验的环境为 Apple M1 Pro、macOS,JDK 为 Adoptium OpenJDK 21.0.13。 + +### A1 包装类型的缓存池 + +```java +Integer a = 127, b = 127, c = 128, d = 128; +System.out.println("Integer 127: " + (a == b) + ",128: " + (c == d)); +Long e = 127L, f = 127L, g = 128L, h = 128L; +System.out.println("Long 127: " + (e == f) + ",128: " + (g == h)); +Character i = 127, j = 127, k = 128, l = 128; +System.out.println("Character 127: " + (i == j) + ",128: " + (k == l)); +Short s1 = 127, s2 = 127, s3 = 128, s4 = 128; +System.out.println("Short 127: " + (s1 == s2) + ",128: " + (s3 == s4)); +Byte b1 = -128, b2 = -128; +Boolean t1 = true, t2 = true; +System.out.println("Byte -128: " + (b1 == b2) + ",Boolean true: " + (t1 == t2)); +Float f1 = 1.0f, f2 = 1.0f; +System.out.println("Float 1.0: " + (f1 == f2)); +Double m = 1.0, n = 1.0; +System.out.println("Double 1.0: " + (m == n)); +Integer x = new Integer(123), y = new Integer(123); +System.out.println("new Integer(123) == new Integer(123): " + (x == y)); +``` + +```text +$ javac Cache.java +Cache.java:18: 警告: [removal] Integer 中的 Integer(int) 已过时, 且标记为待删除 +$ java Cache +Integer 127: true,128: false +Long 127: true,128: false +Character 127: true,128: false +Short 127: true,128: false +Byte -128: true,Boolean true: true +Float 1.0: false +Double 1.0: false +new Integer(123) == new Integer(123): false +$ java -XX:AutoBoxCacheMax=1000 Cache +Integer 127: true,128: true +``` + +### A2 字符串的存储 + +value 和 coder 是 String 的私有字段,用反射读取,运行时需要加上 --add-opens java.base/java.lang=ALL-UNNAMED: + +```java +String s1 = "abc"; +String s2 = "abc"; +String s3 = new String("abc"); +Field value = String.class.getDeclaredField("value"); +value.setAccessible(true); +byte[] v1 = (byte[]) value.get(s1), v3 = (byte[]) value.get(s3); +System.out.println("s1.value == s3.value: " + (v1 == v3)); +``` + +```text +s1 == s2: true +s1 == s3: false +s3.intern() == s1: true +s1.value == s3.value: true,内容 [97, 98, 99],coder 0 +"中" 的 coder: 1,value 长度 2 +"Aa".hashCode() = 2112,"BB".hashCode() = 2112 +``` + +对 String 使用 switch(正文中 case "a"、case "b" 的例子)编译后的字节码: + +```text +$ javap -c SwExpr(节选) + 5: invokevirtual #7 // Method java/lang/String.hashCode:()I + 8: lookupswitch { // 2 + 39: invokevirtual #15 // Method java/lang/String.equals:(Ljava/lang/Object;)Z + 53: invokevirtual #15 // Method java/lang/String.equals:(Ljava/lang/Object;)Z +``` + +### A3 泛型的类型擦除 + +```java +List a = new ArrayList<>(); +List b = new ArrayList<>(); +System.out.println("a.getClass() == b.getClass(): " + (a.getClass() == b.getClass())); +a.add("redis"); +String s = a.get(0); +List raw = a; // 原始类型,编译时只有警告 +raw.add(1024); +System.out.println("a = " + a); +String t = a.get(1); // 抛出 ClassCastException +List.class.getMethod("add", Object.class).invoke(b, "kafka"); +System.out.println("b = " + b); +``` + +```text +Note: Erase.java uses unchecked or unsafe operations. +a.getClass() == b.getClass(): true +a = [redis, 1024] +ClassCastException: class java.lang.Integer cannot be cast to class java.lang.String +b = [kafka] +$ javap -c Erase(节选) + 58: invokeinterface #39, 2 // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object; + 63: checkcast #43 // class java/lang/String +``` + +### A4 反射与注解 + +正文中反射和注解的两段代码运行结果: + +```text +order 1024 paid 99 +PAID +InaccessibleObjectException: Unable to make field private final byte[] java.lang.String.value accessible: module java.base does not "opens java.lang" to unnamed module @76ed5528 +100 +$Proxy1 implements RateLimit +``` + +反射调用的耗时:inc() 对一个 volatile 字段加 1(volatile 防止 JIT 把整个循环优化掉),每轮直接调用和 Method.invoke 各 5000 万次,每次 getMethod 再调用 100 万次: + +```java +for (int i = 0; i < N; i++) o.inc(1); +for (int i = 0; i < N; i++) m.invoke(o, 1); +for (int i = 0; i < N / 50; i++) ReflBench.class.getMethod("inc", int.class).invoke(o, 1); +``` + +```text +round 0: 直接调用 5.91 ns,Method.invoke 8.32 ns,每次 getMethod 再 invoke 43.0 ns +round 1: 直接调用 5.60 ns,Method.invoke 8.13 ns,每次 getMethod 再 invoke 27.5 ns +round 2: 直接调用 5.90 ns,Method.invoke 8.19 ns,每次 getMethod 再 invoke 30.7 ns +round 3: 直接调用 5.90 ns,Method.invoke 8.18 ns,每次 getMethod 再 invoke 27.5 ns +round 4: 直接调用 5.91 ns,Method.invoke 8.15 ns,每次 getMethod 再 invoke 27.6 ns +``` + +### A5 Lambda 与 Stream + +```java +Optional first = List.of("redis", "mysql", "kafka", "java").stream() + .peek(w -> System.out.println("处理 " + w)) + .filter(w -> w.length() == 5) + .map(String::toUpperCase) + .findFirst(); +System.out.println(first.get()); +``` + +```text +处理 redis +REDIS +$ ls Lam*.class +Lam.class +$ javap -c -p Lam(节选) + 16: invokedynamic #25, 0 // InvokeDynamic #0:accept:()Ljava/util/function/Consumer; + 26: invokedynamic #35, 0 // InvokeDynamic #1:test:()Ljava/util/function/Predicate; + private static boolean lambda$main$1(java.lang.String); + private static void lambda$main$0(java.lang.String); +``` + ## 参考资料 -- Eckel B. Java 编程思想[M]. 机械工业出版社, 2002. -- Bloch J. Effective java[M]. Addison-Wesley Professional, 2017. +- Eckel B. Java 编程思想 [M]. 机械工业出版社, 2002. +- Bloch J. Effective Java [M]. Addison-Wesley Professional, 2017. - [JEP 441: Pattern Matching for switch](https://openjdk.org/jeps/441) - [JEP 444: Virtual Threads](https://openjdk.org/jeps/444) - [PEP 703: Making the Global Interpreter Lock Optional in CPython](https://peps.python.org/pep-0703/) - [What’s New in Python 3.14](https://docs.python.org/3/whatsnew/3.14.html) - [A Guide to the Go Garbage Collector](https://go.dev/doc/gc-guide) +- [JLS 5.1.7: Boxing Conversion](https://docs.oracle.com/javase/specs/jls/se21/html/jls-5.html#jls-5.1.7) +- [JLS 4.6: Type Erasure](https://docs.oracle.com/javase/specs/jls/se21/html/jls-4.html#jls-4.6) +- [JEP 254: Compact Strings](https://openjdk.org/jeps/254) +- [JEP 361: Switch Expressions](https://openjdk.org/jeps/361) +- [JEP 403: Strongly Encapsulate JDK Internals](https://openjdk.org/jeps/403) +- [JEP 416: Reimplement Core Reflection with Method Handles](https://openjdk.org/jeps/416) +- [JEP 421: Deprecate Finalization for Removal](https://openjdk.org/jeps/421) +- [Primitive Data Types](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html) +- [The Java® Virtual Machine Specification](https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf) +- [Autoboxing and Unboxing](https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html) +- [StackOverflow : Differences between new Integer(123), Integer.valueOf(123) and just 123](https://stackoverflow.com/questions/9030817/differences-between-new-integer123-integer-valueof123-and-just-123) +- [StackOverflow : String, StringBuffer, and StringBuilder](https://stackoverflow.com/questions/2971315/string-stringbuffer-and-stringbuilder) +- [StackOverflow : What is String interning?](https://stackoverflow.com/questions/10578984/what-is-string-interning) +- [深入解析 String#intern](https://tech.meituan.com/in_depth_understanding_string_intern.html) +- [StackOverflow: Is Java “pass-by-reference” or “pass-by-value”?](https://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value) +- [StackOverflow : Why don't Java's +=, -=, *=, /= compound assignment operators require casting?](https://stackoverflow.com/questions/8710619/why-dont-javas-compound-assignment-operators-require-casting) +- [StackOverflow : Why can't your switch statement data type be long, Java?](https://stackoverflow.com/questions/2676210/why-cant-your-switch-statement-data-type-be-long-java) +- [Abstract Methods and Classes](https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html) +- [深入理解 abstract class 和 interface](https://www.ibm.com/developerworks/cn/java/l-javainterface-abstract/) +- [When to Use Abstract Class and Interface](https://dzone.com/articles/when-to-use-abstract-class-and-intreface) +- [Java 9 Private Methods in Interfaces](https://www.journaldev.com/12850/java-9-private-methods-interfaces) +- [Using the Keyword super](https://docs.oracle.com/javase/tutorial/java/IandI/super.html) +- [Trail: The Reflection API](https://docs.oracle.com/javase/tutorial/reflect/index.html) +- [深入解析 Java 反射(1)- 基础](http://www.sczyh30.com/posts/Java/java-reflection-1/) +- [Java Exception Interview Questions and Answers](https://www.journaldev.com/2167/java-exception-interview-questions-and-answers) +- [Java提高篇——Java 异常处理](https://www.cnblogs.com/Qian123/p/5715402.html) +- [Java 泛型详解](https://www.cnblogs.com/Blue-Keroro/p/8875898.html) +- [10 道 Java 泛型面试题](https://cloud.tencent.com/developer/article/1033693) +- [注解 Annotation 实现原理与自定义注解例子](https://www.cnblogs.com/acm-bingzi/p/javaAnnotation.html) diff --git a/notes/pics/java-string-pool.png b/notes/pics/java-string-pool.png new file mode 100644 index 0000000000000000000000000000000000000000..e3e87ebbc7f57e6d84480c1de466a8ed580a5ef6 GIT binary patch literal 162651 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