Java字符串折腾
JDK 17
字符串常量池String Pool
存放位置:堆内
运行代码
public static void main(String[] args) {
String s1 = new String("1");
String s2 = "1";
System.out.println(s1 == s2);//
System.out.println("----S2-----");
String s3 = s1 + "1";//在堆中创建了一个新的对象,内存地址不同于String Pool中
String s4 = "1" + "1";
System.out.println(s3 == s4);
System.out.println("-----S4----");
String s5 = s3.intern();//这里取出的是String Pool中的内存地址
System.out.println(s5 == s3);
System.out.println(s5 == s4);
System.out.println("-----S5----");
String s6 = "1" + "1";
System.out.println(s3 == s6);
System.out.println(s4 == s6);
System.out.println(s5 == s6);
System.out.println("-----S6----");
String s7 = "11";
System.out.println(s3 == s7);
System.out.println(s4 == s7);
System.out.println(s5 == s7);
System.out.println(s6 == s7);
System.out.println("-----S7----");
String s8 = s7;
System.out.println(s3 == s8);
System.out.println(s4 == s8);
System.out.println(s5 == s8);
System.out.println(s6 == s8);
System.out.println(s7 == s8);
System.out.println("----S8-----");
String s9 = "1" + "1";
System.out.println(s3 == s9);
System.out.println(s4 == s9);
System.out.println(s5 == s9);
System.out.println("----S9-----");
String ss1 = new String("1") + new String("1");//在堆中创建了一个新的对象,内存地址不同于String Pool中
String ss2 = ss1.intern();
System.out.println(ss1 == ss2);// false
}
Java
控制台输出
false
----S2-----
false
-----S4----
false
true
-----S5----
false
true
true
-----S6----
false
true
true
true
-----S7----
false
true
true
true
true
----S8-----
false
true
true
----S9-----
false
Java
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果
分类
- 六月 2025
7篇
- 五月 2025
4篇
- 四月 2025
6篇
- 三月 2025
6篇
- 二月 2025
7篇
- 一月 2025
4篇
- 十二月 2024
7篇
- 十一月 2024
8篇
- 十月 2024
12篇
- 九月 2024
2篇
- 八月 2024
1篇
- 五月 2024
9篇
- 四月 2024
8篇
- 三月 2024
4篇
- 二月 2024
9篇
- 一月 2024
15篇
- 十二月 2023
30篇
- 十一月 2023
3篇
文章数 :
146
访问量 :
11660
建站天数 :
580天