Java 中String和new 创建对象的区别
2014-09-12 17:39
399 查看
我个人的理解 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 分别处于栈、堆中 也不可能相等
相关文章推荐
- 第2章 Java编程基础——FAQ2.22 创建String对象时, 使用String s=new String (“abc”)和String s=“abc”语句有什么区别?
- java创建对象时,new 出一个对象 和 = null的区别
- java使用new和newInstance()创建对象的区别
- Java中创建对象的5种方式 &&new关键字和newInstance()方法的区别
- Java中创建String、Integer、Charater直接赋值与new一个对象的区别
- java创建对象时,new 出一个对象 和 = null的区别?
- Java和C++通过new创建的对象有何区别?
- Java基础:创建String对象时,String s=new String("abc")和String s="abc"的区别
- C++用new和不用new创建类对象区别
- C++用new和不用new创建类对象区别
- 用new方法生成一个img对象和document.createElement方法创建一个img对象的区别
- Java和C#中String直接赋值与使用new创建(==与equals进行比较)的区别
- Ruby on Rails,使用new和create创建ActiveRecord对象及他们之间的区别
- C++用new和不用new创建类对象区别 内存
- C++用new和不用new创建类对象区别 .
- C++用new和不用new创建类对象区别
- Java和C#中String直接赋值与使用new创建(==与equals进行比较)的区别
- 详解 JAVA 创建对象 NEW
- Ruby on Rails,使用new和create创建ActiveRecord对象及他们之间的区别
- 详解 JAVA 创建对象 NEW