美文网首页
堆,栈,常量池在Java中的区别

堆,栈,常量池在Java中的区别

作者: 今天也要努力呀y | 来源:发表于2019-11-13 20:51 被阅读0次

编译期已经创建好(即指用双引号定义的)的就存储在常量池中,如果是运行期(new出来的对象)则存储在堆中。对于equals相等的字符串,在常量池中是只有一份的,在堆中则有多份。

String str1="abc";
String str2="abc";
String str3="abc";
String str4=new String("abc");
String str5=new String("abc");
String str5=new String("abc");
image.png

对于String str1 = "abc"; 首先在栈中建立一个str1的引用,然后在常量池中查找是否存放为"abc"的地址("abc"存放在常量池中,引用在栈中),找到就指向它,没有就在常量池中造一个,然后指向它.

相关文章

  • 堆,栈,常量池在Java中的区别

    编译期已经创建好(即指用双引号定义的)的就存储在常量池中,如果是运行期(new出来的对象)则存储在堆中。对于equ...

  • JAVA中,堆,栈,常量池

    Stringstr=new String("abc") 这行代码究竟创建了几个对象? Stringstr=new ...

  • 2019-01-02今日内容

    面试题 1.Java的堆和栈的区别? 堆:(对象)引用类型的变量,其内存分配在堆上或者常量池(字符串常量、基本数据...

  • 第46节:Java当中的常量池

    Java当中的常量池 在Java虚拟机jvm中,内存分布为:虚拟机堆,程序计数器,本地方法栈,虚拟机栈,方法区。 ...

  • 10.11java中的堆和栈

    java高级-堆和栈 java堆 /栈 栈内存 / 堆内存的区别 1. java堆 /栈 2. 栈内存 / 堆内存的区别

  • JVM入门

    Java虚拟机内存包括: 程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区、运行时常量池、直接内存。 ...

  • [Java 编程思想]第二章

    1. java是基于C++ 2. 堆和栈的区别 栈和堆都是java用来在Ram中存放数据的地方,java自动管理栈...

  • 安卓堆、栈、常量池区别

    栈:存放基础数据类型跟局部变量会自动回收堆:存放new 对象,GC会回收这里面的对象常量池:存放字符串常量和基本类...

  • Java堆、栈、方法区、常量池

    1、Java栈 Java在函数中定义的基本类型(int,long,short,byte,float,double,...

  • 第二章 java内存区域与内存溢出异常

    运行时数据区域 实战 OutOfMemoryError异常 java堆溢出 虚拟机栈和本地方法栈溢出 运行时常量池...

网友评论

      本文标题:堆,栈,常量池在Java中的区别

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