A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


public class Demo5 {
     public static void main(String args[]){
             String str = "hello" ;
             System.out.println("hello".equals(str)) ;
     }
}
/*返回的结果是true,说明“hello”是一个String类的匿名对象,
* 那么,是怎么实例化的呢,为什么这么说呢?*/

2 个回复

倒序浏览
你不是已经实例化他了吗,String str=“hello”;
回复 使用道具 举报
本帖最后由 xuehuayous 于 2014-4-6 16:06 编辑
  1. public class Test{
  2.         public static void main(String[] args) {
  3.                 String str = "hello" ;
  4.                 System.out.println("hello".equals(str)) ;
  5.                 System.out.println("hello" == str);
  6.                 //String池:Java为了优化字符串操作 提供了一个缓冲池;
  7.                 //str指向字符串“hello”,第二句中字符串“hello”,因为字符串在常量池中已经存在,第二句中字符串“hello”就不再开辟空间。
  8.                 //所以不管是equals比较内容, ==比较内存地址都为true
  9.         }
  10. }
复制代码

String池:Java为了优化字符串操作 提供了一个缓冲池;
str指向字符串“hello”,第二句中字符串“hello”,因为字符串在常量池中已经存在,第二句中字符串“hello”就不再开辟空间。
所以不管是equals比较内容, ==比较内存地址都为true
希望对你有帮助!

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马