黑马程序员技术交流社区

标题: 13基础班技术笔记帖 [打印本页]

作者: 林文杰    时间: 2018-4-16 23:42
标题: 13基础班技术笔记帖
字符串的内容是放在方法区中的常量池中的。
所以,直接定义初始化和通过构造方法初始化字符串,使得两者对象所指的内容是不一样的。
比如如下代码:
---通用代码忽略--
String s1=new String(“hello”);
String s2=”hello”;
String s3=”hello”;
System.out.println(“s1==s2:”+(s1==s2);
System.out.println(“s1==s3:”+(s1==s3);
System.out.println(“s2==s3:”+(s2==s3);
打印结果:
s1==s2:false
s1==s3:false
s2==s3:true
其中:s1指向的是堆中对象的地址,而s2和s3指向的是方法区常量池中“hello”的地址
具体内存地址数据大概指向图如下:





作者: cj1234    时间: 2018-4-18 15:52
写的挺好的,加油




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2