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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© saghir 中级黑马   /  2015-4-22 09:03  /  522 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class Demo20 {
  2. public static void main(String[] args) {
  3. //s1,s2只新建了一个对象
  4. String s1 = "你好";
  5. String s2 = "你好";
  6. //s3,s4新建了两个对象???
  7. String s3 = "你好";
  8. String s4 = "你好";
  9. }
  10. }
复制代码




6 个回复

倒序浏览
在内存里就只有一个String对象(你好)而已,因为String类有缓存池的。你用静态方法初始化,返回的都是同一个对象。
回复 使用道具 举报
就一个地址值呀
回复 使用道具 举报
Java里建立String对象时,使用String 变量名 = ”*“ 这种形式的话,会把“ *“ 这个东西丢到常量池里面,假如再次建立” *“的对象时会直接把这个引用指到”*“而不会再去开辟个新的空间
回复 使用道具 举报
好吧    不会的路过  顶一下吧
回复 使用道具 举报
String s =new String( "你好");
这才是在内存里新建对象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马