网上看了很多资料,公众号的大佬们文章也看了不少,但是越看越晕,不考虑这个字符串常量已经存在的情况,我问的就是第一次定义的时候,是堆里还是字符串常量池里?虽然在1.7版本后,常量池被放入了堆中,我这里所说的  堆  指的是不包括字符串常量池那部分的堆。

解决方案 »

  1.   

    https://www.cnblogs.com/carsonwuu/p/9752949.html
      

  2.   

    常量池在JAVA用于保存在编译期已确定的,它包括了类,方法,接口等中的产常量。
      

  3.   

    引创建号字符串在常量池   new 创建在堆内存
      

  4.   

    直接写上的String对象会成一个常量池空间
      

  5.   

    字符串常量池,你可以看看java虚拟机内存划分区域
      

  6.   

    字面量存放的位置呢?也是在常量池内?string是最简单的对象,是new出来的,放在堆中,方法在栈中,你这个值是常量放在常量池,Java有个垃圾回收机制,你不用的常量会从常量池删除。
      

  7.   

    字面量存放的位置呢?也是在常量池内?string是最简单的对象,是new出来的,放在堆中,方法在栈中,你这个值是常量放在常量池,Java有个垃圾回收机制,你不用的常量会从常量池删除。
    但是看了很多文章,包括几个大佬文章有说常量池存放的只是字符串的引用,现在看到的观点几乎是55分。
      

  8.   

    字面量存放的位置呢?也是在常量池内?string是最简单的对象,是new出来的,放在堆中,方法在栈中,你这个值是常量放在常量池,Java有个垃圾回收机制,你不用的常量会从常量池删除。
    但是看了很多文章,包括几个大佬文章有说常量池存放的只是字符串的引用,现在看到的观点几乎是55分。既然是55开,证明大佬也有一半是错的,说不定还不止,多看书敲代码找出问题,光听别人说没用的
      

  9.   

    new出来的就在堆里面,   不是new出来的就在常量池里面咯
      

  10.   

    String 是字符串常量,“提问”放在常量池