A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

eg:
String s1 = new String("adc");
String s2 = "adc";
两者有何区别?求解,最好是配上内存推理图?

6 个回复

倒序浏览
第一个语句创建了两个对象  第二个语句创建了一个对象
回复 使用道具 举报
它们的地址值是不同的,如果同==来判断的话,是false,如果用equals来判断就是true,
回复 使用道具 举报
第一个在堆内存创建了一个对象,在常量池也建了一个对象。s1的值是堆内存的值
回复 使用道具 举报
第二个在常量池创建了一个对象。s2的值是在方法区的地址值
回复 使用道具 举报
栈里面有s1变量,堆中把adc地址赋值给s1,这两种写法应该都是一样的,
回复 使用道具 举报
明天和你讲!~~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马