黑马程序员技术交流社区

标题: new String() 创建两个对象? [打印本页]

作者: SmallRooker    时间: 2014-8-25 22:22
标题: new String() 创建两个对象?
String s1 = new String("abc");
今天看视频这里听老师讲 是创建了两个对象  一个存在  在堆中,
那他创建的另一个对象在池中吗?
还是存到了别的地方,当 这个s1被引用时,是系统自动判断饮用吗?还是直接引用堆中的对象?




作者: hsy    时间: 2014-8-25 23:25
上面的代码中共两个对象,“abc”本身就是一个对象,在常量池中,然后又new出来一个,在堆中
作者: hsy    时间: 2014-8-25 23:30
上述代码共两个对象,“abc”本身就是个对象,在常量池中,然后又new出来一个,在堆中。你说的有点错误,s1就是对象,意思是把new出来的赋值给s1。
作者: SmallRooker    时间: 2014-8-25 23:39
hsy 发表于 2014-8-25 23:30
上述代码共两个对象,“abc”本身就是个对象,在常量池中,然后又new出来一个,在堆中。你说的有点错误,s1 ...

秒懂 ,:lol
作者: hsy    时间: 2014-8-25 23:43
相互交流一下,我把会的教给你,你把会的传授给我,挺好。
作者: SmallRooker    时间: 2014-8-25 23:49
hsy 发表于 2014-8-25 23:43
相互交流一下,我把会的教给你,你把会的传授给我,挺好。

我又发了个个帖子 你去看看 ,反正你也是睡不着。不是!
作者: SmallRooker    时间: 2014-8-25 23:51
hsy 发表于 2014-8-25 23:43
相互交流一下,我把会的教给你,你把会的传授给我,挺好。

对了你是不是要进军12期javaEE+云计算 ? 我现在正在努力呢?  要是你也考取这一期,咱俩加个好友吧,qq什么的 275937990 这是我的qq!
作者: hsy    时间: 2014-8-26 10:22
SmallRooker 发表于 2014-8-25 23:51
对了你是不是要进军12期javaEE+云计算 ? 我现在正在努力呢?  要是你也考取这一期,咱俩加个好友吧,qq ...

对,9月16号开班的那一期
作者: THE_FUTURE    时间: 2014-8-26 11:09
啊啊啊啊 基础班啊我的!!!
作者: 潘多拉    时间: 2014-8-26 11:44
能教会别人证明你也会了,哎,我这块又忘了,我的12期啊啊
作者: 旭辉lin    时间: 2014-8-26 18:03
"abc"本身在常量池中,用就拷贝,  new String("abc")是拷贝拼接的字符串包装一下在堆中创建对象,当 这个s1被引用时,引用堆中的对象
作者: 孙雯    时间: 2014-8-26 23:48
个人认为啊,像这种引用型的变量,在初始创建并且赋值的时候,都会在栈内存和堆内存里面各自开辟空间存储,栈内存里面放的是你的变量名和引用的地址,堆内存里面放的就是你附的值。
作者: myzhang    时间: 2014-8-27 08:37
我学了学么久,没发现JAVA有池啊!求指教。。。




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