码迷,mamicode.com
首页 > 编程语言 > 详细

Java 中String和new 创建对象的区别

时间:2014-09-12 18:52:43      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:style   java   数据   sp   on   c   new   size   r   

我个人的理解
String x="bv";这个是在栈中创建的,栈中的数据具有不可更改性,就是说你再创建一个String y="bv";
它会先在栈中寻找字面值为bv的地址,如果存在这样的地址就指向它(否则就在栈中新开辟一个字面值为bv的内存地址) 因此这儿x==y 因为他们指向同一块内存地址 无论== equals结果都是true


String v=new String("bv"); 通过new的方式在堆创建一个对象,new是在堆中开辟一个新的处女地,因此即便你再String vvv=new String("bv");v和vvv也不可能相等。

当然你题目中的x v 分别处于栈、堆中 也不可能相等

Java 中String和new 创建对象的区别

标签:style   java   数据   sp   on   c   new   size   r   

原文地址:http://www.cnblogs.com/yuyezhulan/p/3968834.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!