String字符串的两种声明⽅式
String str1 = "abcd";
String str2 = new String ("abcd");
String str3 = str2.intern();
⽐较两个对象⽤"=="⽐较的其实是对象的内存地址
String str1 = "abcd";
String str2 = "abcd";
使⽤直接赋值的⽅式创建字符串时字符串对象是保存⼀块叫做String常量池的空间中。在实例化字符串之前会先到这个空间查看要创建的字符串是否已存在
如果已经存在会直接返回字符串的引⽤给它
String str1 = new String("abcd");
String str2 = new String("abcd");
System.out.println(s1==s2)结果是false
s1在常量池中创建对象"abcd",堆中创建对象"abcd"
字符串函数gets怎么重新定义s2查看常量池中已有abcd,不再创建,在堆中创建对象"abcd"
s1和s2指向堆内存中两个独⽴的字符串对象

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。