解决方案 »

  1.   

    String s = "abcd";s是一个变量,里面保存的是"abcd"的地址,也就是指针。
      

  2.   

    字符串是一个特殊包装类,其引用是存放在栈里的,而对象内容必须根据创建方式不同定(常量池和堆).有的是编译期就已经创建好,存放在字符串常 量池中,而有的是运行时才被创建.使用new关键字,存放在堆中
      

  3.   

    这个问题我也思考过,应该是abc,不是引用。因为堆里面的是一个对象,不可能是一个地址。
      

  4.   

    栈中的引用直接存堆中对象的地址,0x1111是存在栈中的,堆中只有"abc"
      

  5.   

      能这样理解吗,对这个硬是有点迷糊,
    求指点,栈里面不是放的基本数据类型吗,"abc"不属于基本数据类型应该放在 内存里面的常量区吧,堆里面不是放的对象名称和引用么,对立面指向的内容都是在栈里面吧?
      

  6.   

    这个我当然知道  考虑到会不会是因为节约内存  而s1指向的堆内存里面不放的abc字符串  而是之前那个匿名对象abc的地址  就是图中的0x1111  
      

  7.   

    String的直接量不是在常量池么