关于Java字符串的问题,请问字符串常量池中不会产生相同的字符串吧?

2025-04-11 02:57:45
推荐回答(2个)
回答1:

不会产生的,测试代码如下:

final String a1 = "aaaaaaaaaaaaaaaaaaaaaaaaa";

  final String a2 = "aaaaaaaaaaaaaaaaaaaaaaaaa";

  final String a3 = new String("aaaaaaaaaaaaaaaaaaaaaaaaa");

  System.err.println(a1==a2);
//a1和阿a2的对比输出为true,即相同的地址的
//a1或a2去跟a3对比,输出为false的,表示地址不同,a3是内存中新分配的

回答2:

不会的,当你初始化一个字符串的时候,会先到常量池找,如果存在就指向该字符串,如果不存在再创建