黑马程序员技术交流社区

标题: 看看这这两个String表达式有何区别?求解? [打印本页]

作者: adminlxb    时间: 2015-5-17 20:01
标题: 看看这这两个String表达式有何区别?求解?
eg:
String s1 = new String("adc");
String s2 = "adc";
两者有何区别?求解,最好是配上内存推理图?

作者: shao122791159    时间: 2015-5-17 20:50
第一个语句创建了两个对象  第二个语句创建了一个对象
作者: L番茄X    时间: 2015-5-17 21:07
它们的地址值是不同的,如果同==来判断的话,是false,如果用equals来判断就是true,
作者: Hison_lian    时间: 2015-5-17 21:16
第一个在堆内存创建了一个对象,在常量池也建了一个对象。s1的值是堆内存的值
作者: Hison_lian    时间: 2015-5-17 21:17
第二个在常量池创建了一个对象。s2的值是在方法区的地址值
作者: 幸福与我零距离    时间: 2015-5-17 21:25
栈里面有s1变量,堆中把adc地址赋值给s1,这两种写法应该都是一样的,
作者: zy18692243338    时间: 2015-5-17 21:31
明天和你讲!~~~~




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