美文网首页
Java中String变量在内存的位置

Java中String变量在内存的位置

作者: 我要做大牛23333 | 来源:发表于2019-02-10 15:06 被阅读0次

回答上一篇的问题,String是一个final类,不可以被继承,当我们这么定义字符串的时候。

String str1 = "abc";

这个str变量是被保存在heap(堆)上的一个特殊区域,叫常量池。
但如果换种写法:

String str2 = new String("abc");

这样的话str就被保存在了堆中,并且str1str2是不一样的引用。原来在编译的时候,当初始化字符串时用""这种字面量初始化的时候,JVM会默认把这个变量放到堆中的常量池中。

联想到的问题:
JVM的内存是如何分布的?

相关文章

  • Java中String变量在内存的位置

    回答上一篇的问题,String是一个final类,不可以被继承,当我们这么定义字符串的时候。 这个str变量是被保...

  • Java的变量

    变量只不过是java中的内存位置的名称。 每个变量都有特定的数据类型,它定义了变量内存的大小和布局。java中有以...

  • Java内存模型 | synchronized与volatile

    JMM Java内存模型描述了Java程序中各种变量(共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存...

  • 由浅入深Java内存模型

    JMM Java内存模型描述了Java程序中各种变量(共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存...

  • 成员变量与局部变量区别

    A:位置不同 成员变量:类中方法外 局部变量:在方法定义中或者方法声明上 B:内存中的位置不同 成员变量:在堆内存...

  • String 常用方法详解

    String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。java...

  • 成员变量和局部变量的区别

    在类中的位置不同成员变量——类中方法外局部变量——方法内或者方法声明上 在内存中的位置不同成员变量——堆内存局部变...

  • 成员变量,局部变量

    1、在类中的位置不同成员变量: 在类中定义局部变量:在方法中定义或者方法的参数2、在内存中的位置不同成员变量:在...

  • Java并发编程基础

    一.JVM内存模型 Java内存模型(简称JMM)描述了Java程序中各种变量(线程共享变量)的访问规则,以及在j...

  • java栈和堆

    java中变量在内存中的分配 1、类变量(static修饰的变量):在程序加载时系统就为它在堆中开辟了内存,堆中的...

网友评论

      本文标题:Java中String变量在内存的位置

      本文链接:https://www.haomeiwen.com/subject/xzxxeqtx.html