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

java 中 String 类的几个问题

时间:2015-06-23 19:39:44      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

首先,我们要搞清楚,在java中,引用和基本数据类型是存储在栈中的。而对象是存储在堆中的。

只有一个例外,就是String对象。

例如:

String str1="test";
String str2="test";
String str3=new String("test1");
String str4=new String("test1");
System.out.println(str1==str2);	
System.out.println(str3==str4);

 对于str1和str2来说,他们所引用的对象"test"既不在栈中,也不在堆中。而是存储在String池中。

String中只有一个"test",也就是说,无论你声明多少个str="test",String池中只存储了一份,所有str都指向同一个地址。

而str3,str4的情况就不一样了。

str3和str4用new关键字生成新对象,而new关键字所生成的对象都存储在堆中,因此str3和str4是指向两个不同的对象。

所以,以上程序的输出为

true

false

 

参考:http://sarin.iteye.com/blog/603684/

java 中 String 类的几个问题

标签:

原文地址:http://www.cnblogs.com/elnino/p/4595814.html

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