黑马程序员技术交流社区
标题:
一个字符串常量是String类的匿名对象,解释一下这句话?
[打印本页]
作者:
心?=忐§忑]
时间:
2014-4-6 15:49
标题:
一个字符串常量是String类的匿名对象,解释一下这句话?
public class Demo5 {
public static void main(String args[]){
String str = "hello" ;
System.out.println("hello".equals(str)) ;
}
}
/*返回的结果是true,说明“hello”是一个String类的匿名对象,
* 那么,是怎么实例化的呢,为什么这么说呢?*/
作者:
ilvsoft
时间:
2014-4-6 15:52
你不是已经实例化他了吗,String str=“hello”;
作者:
xuehuayous
时间:
2014-4-6 16:05
本帖最后由 xuehuayous 于 2014-4-6 16:06 编辑
public class Test{
public static void main(String[] args) {
String str = "hello" ;
System.out.println("hello".equals(str)) ;
System.out.println("hello" == str);
//String池:Java为了优化字符串操作 提供了一个缓冲池;
//str指向字符串“hello”,第二句中字符串“hello”,因为字符串在常量池中已经存在,第二句中字符串“hello”就不再开辟空间。
//所以不管是equals比较内容, ==比较内存地址都为true
}
}
复制代码
String池:Java为了优化字符串操作 提供了一个缓冲池;
str指向字符串“hello”,第二句中字符串“hello”,因为字符串在常量池中已经存在,
第二句中字符串“hello”
就不再开辟空间。
所以不管是equals比较内容, ==比较内存地址都为true
希望对你有帮助!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2