黑马程序员技术交流社区

标题: String类问题 [打印本页]

作者: 思考。。。    时间: 2015-6-30 11:15
标题: String类问题
  1. String s1 = "abc";//s1是一个类类型变量, "abc"是一个对象。
  2.                 String s2 = new String("abc");

  3.                 //s1和s2有什么区别?
  4.                 //s1在内存中有一个对象。
  5.                 //s2在内存中有两个对象。
复制代码


我想请问一下,s1的对象是在方法区的常量池?而s2的两个对象是一个在堆内存,一个在方法的常量池吗?我点搞不清楚
作者: Chasel    时间: 2015-6-30 12:00
理解的没错
作者: zlpiano    时间: 2015-6-30 14:50
对,所以是两个不同对象
作者: 终极黑马    时间: 2015-6-30 19:22
s2是指向堆内存new String,而new String指向方法区abc
作者: 357955778    时间: 2015-6-30 21:02
s1指向常量池中的地址,s2指向堆内存中的地址。
作者: 徐家誉    时间: 2015-7-1 00:24

s2是指向堆内存new String,而new String指向方法区abc
作者: 冷雨敲窗被未温    时间: 2015-7-1 00:38
进来看看!
作者: 雏鹰起飞    时间: 2015-7-1 08:02
你说对了
作者: qxc1281    时间: 2015-7-1 10:12
s1指向常量区域,s2指向堆内存
作者: 思考。。。    时间: 2015-7-1 12:19
明白了,多谢回复:)




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