精华内容
下载资源
问答
  • Java虚拟机(2)-Java常量,变量,对象(或字面量)在内存中的存储位置
    展开全文
  • 针对Java中常量,变量,字面量,对象的存储,略作总结. ...总结:new出的对象存储堆,””存储常量,基本类型字面量为常量或静态变量时,存储在常量池,为成员变量存储,为局部变量存储. ...

    针对Java中的常量,变量,字面量,对象的存储,略作总结.

    这里写图片描述


    总结:new出的对象存储堆中,””存储常量池中,基本类型字面量为常量或静态变量时,存储在常量池,为成员变量存储在堆中,为局部变量存储在栈中.

    展开全文
  • 苦苦研究了快一天了,终于找到个“大神精准的总结”了!!!!!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 建议与《JVM存储位置分配》...针对Java中...

    苦苦研究了快一天了,终于找到个“大神精准的总结”了!!!!!!

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    建议与《JVM存储位置分配https://blog.csdn.net/HD243608836/article/details/87940295结合着看,容易理解!!

     

    • 针对Java中的常量,变量,字面量,对象的存储,略作总结.


    总结:new出的对象存储堆中,””存储常量池中,基本类型字面量为常量或静态变量时,存储在常量池,为成员变量存储在堆中,为局部变量存储在栈中.

     

    ps:

    常量就是 程序运行中 不可以改变的量(数据)

    变量就是 程序运行中 可以改变的量(数据)

     

    所以,在“类的成员属性”中:

    static修饰的变量(static int x=10)在方法区中,

    final修饰的常量(static final int x=10)在方法区中的常量池中

    普通的变量(int x=10)在堆中。

     

     

    转载自:https://blog.csdn.net/chixiaoen/article/details/77646009

    展开全文
  • string字符串常量在内存中位置

    千次阅读 2015-06-03 13:31:11
    这里只是举个简单的例子说明字符串常量在内存中位置。  闲言少叙,直接上代码。   Java代码 "font-size: large;">import java.util.ArrayList; public class Test { public static void...
    这里只是举个简单的例子说明字符串常量池在内存中的位置。
    

        闲言少叙,直接上代码。

     

    Java代码  收藏代码
    1. <span style="font-size: large;">import java.util.ArrayList;  
    2.   
    3. public class Test {  
    4.   
    5.     public static void main(String[] args) {  
    6.         String str = "abc";  
    7.         char[] array = {'a''b''c'};  
    8.         String str2 = new String(array);  
    9.         //使用intern()将str2字符串内容放入常量池  
    10.         str2 = str2.intern();  
    11.         //这个比较用来说明字符串字面常量和我们使用intern处理后的字符串是在同一个地方  
    12.         System.out.println(str == str2);  
    13.         //那好,下面我们就拼命的intern吧  
    14.         ArrayList<String> list = new ArrayList<String>();  
    15.         for (int i = 0; i < 10000000; i++) {  
    16.             String temp = String.valueOf(i).intern();  
    17.             list.add(temp);  
    18.         }  
    19.     }  
    20. }</span>  

     

    执行一下,会怎么样?

    true
    Exception in thread "main" java.lang.OutOfMemoryError: PermGen space
            at java.lang.String.intern(Native Method)
            at Test.main(Test.java:16)
    Java Result: 1  

     

         异常信息告诉我们PermGen 满了。奥,我知道字符串常量池在哪了。PermGen就是jvm规范中所谓的方法区。

         这里偷懒了一下,只是指定了很大的数10000000让PermGen 溢出,不过时间可能长点。勤快的人还是自己指定java运行的内存比较好,稍小点就能验证。

    展开全文
  • java中内存常量问题

    千次阅读 2013-11-17 10:58:39
    为什么java里的常量不占内存: 数据会保存到什么地方: 有六个地方都可以保存数据:  (1) 寄存器。这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部。然而,寄存器的数量十分有限,所以...
  • java面试 : JAVA中 常量的储存位置

    千次阅读 热门讨论 2019-01-29 19:52:57
    常量池:存放字符串常量和基本类型常量(public static final) 常量池:JVM为每个已...由于常量池包含了一个类型所有的对其他类型、方法、字段的符号引用,所以常量在Java的动态链接起了核心作用。常量池存...
  • Java内存管理以及常量

    千次阅读 2018-02-24 19:12:27
    在Java中内存的分配是由程序完成的,而内存的释放是由垃圾回收器(Garbage Collection,GC)完成的,程序员不需要通过调用函数来释放内存,但它只能回收无用并且不再被其它对象引用的那些对象所占用的空间。...
  • JDK1.7 及之后版本的 JVM 已经将运行时常量池从方法区中移了出来, Java 堆(Heap)开辟了一块区域存放运行时常量池。 JDK1.8开始,取消了Java方法区,取而代之的是位于直接内存的元空间(metaSpace)。 已知:...
  • 转载请注明出处:...寄存器最快的存储区, 由编译器根据需求进行分配,我们程序无法控制. 寄存器又分为很多种:通用寄存器通用寄存器AX(accumulator)、BX(base)、CX(count
  • Java字符串在内存中的存储位置

    万次阅读 2017-06-01 14:43:58
    这里只说一下字符串的存储位置在Java虚拟机内存中有个区域叫做运行时常量池,是方法区的一部分。JDK6中其中存放的有类的版本、字段、方法、接口等描述信息以及常量池,常量池用来存放编译期间生成的各种字面量和...
  • Java常量Java常量的定义和分类

    千次阅读 2019-06-28 17:13:10
    下面我们来系统地认识一下 Java 常量值,以及定义常量的方法。 常量常量值又称为字面常量,它是通过数据直接表示的,因此有很多种数据类型,像整型和字符串型等。下面一一介绍这些常量值。 整型常量...
  • Java基本数据类型在常量的体现

    千次阅读 2013-08-28 14:55:24
    基本数据类型常量池的体现 老帅 基本数据类型的使用量是很大的,java常量池,节省内存方面是一个很好的机制,相同的数据,常量池只要保留一份即可。 Java的8种基本类型(Byte, Short, Integer, Long, ...
  • Java8 String内存优化之字符串常量

    千次阅读 2020-12-20 19:03:55
    Java8 String内存优化之字符串常量池前言环境实验思路实验1和实验2-字符串内存无大小限制实验1-存放近1G的字符串内存实验2-存放近1G的字符串内存-存入字符串常量池实验3和实验4-字符串常量池会复用内存实验3实验4...
  • 分别JDK1.6与1JDK1.7运行以下代码 public static void main(String[] args) { List&lt;String&gt; list = new ArrayList&lt;String&gt;(); int i = 0; while (true) { // intern 方法保.....
  • 常量存放在常量池中,而常量内存中 3.Java中局部变量的存储位置 局部变量存放内存中 4.Java中全局变量和Static常量的存储位置 存放全局数据区内存中 5.java中static修饰的成员变量及参数存放位置 存放...
  • Java中常量Map、常量List

    万次阅读 2017-03-31 17:49:12
    Java 声明常量我们一般使用 final 关键字来修饰,但是 final 一般只对基本数据类型有效,比如:public static final String content = "你好"; public static final int num = 1;如果我们需要一个常量的List或者...
  • 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放,而是存放堆(new 出来的对象)或者常量(字符串常量对象存放在常量。)  3. 堆:存放所有new出来的对象。  4. 静态域:存放静态...
  • java中静态变量在内存中位置

    千次阅读 2019-09-10 14:11:16
    java程序在内存中的存储分配情况:一、堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,...
  • 3、new申请的内存 4、字符串常量也是存储静态存储区 补充说明: 1、栈的变量内存会随着定义所在区间的结束自动释放;而对于堆,需要手动free,否则它就一直存在,直到程序结束;(也就是说局部...
  • 简介: 这几天Java虚拟机方面的知识时,看到了有几种不同常量池的说法,然后我就去CSDN、博客园等...字符串常量池(String Constant Pool):1.1:字符串常量在Java内存区域的哪个位置JDK6.0及之前版本,字符串
  • Java常量池理解与总结

    万次阅读 2018-03-13 13:28:56
    Class文件常量Class文件结构,最头的4个字节用于存储魔数Magic Number,用于确定一个文件是否能被JVM接受,再接着4个字节用于存储版本号,前2个字节存储次版本号,后2个存储主版本号,再接着是用于存放...
  • Java 常量都可以定义哪里?

    千次阅读 2019-03-04 16:12:44
    哈哈,很搞笑的问题吧!可是小编实际开发还真的遇到了一个相关的麻烦,敦促我把这个知识点梳理一下。大神可以飘过,小白还真是要了解一下...不过我觉得提取出来并不会有利于代码性能提升,因为常量分配在内存的...
  • 问题是这样的,作为java新手,最近老搞不明白数据在内存中到底存放位置的问题。查了许多资料后,得出个结论,请有错误的帮忙指正,谢谢。 基本类型的数值会存放栈中,执行效率高;引用对象(不包括String类型)的...
  • java对象在内存中的分配

    万次阅读 多人点赞 2017-02-10 22:45:33
    内存中存放的是new出的对象,new出的对象只包含成员变量。  栈内存中:存放的是局部成员变量。对于基本的数据类型存放的是基本变量的值,而对于对象变量,存放的是堆内存的地址。  静态、常量区:存放的是静态...
  • 【JVM】探究Java常量本质及三种常量池

    千次阅读 多人点赞 2019-07-22 21:35:10
    常量是放在常量,细节的内容无从得知,总觉得面前的东西是一个几乎完全的黑盒,总是觉得不舒服,于是就翻阅《深入理解Java虚拟机》,这本书常量的介绍更多地偏重于字节码文件的结构,还有自动内存管理机制...
  • java String 在内存中如何存储的?

    千次阅读 2018-07-10 10:56:48
    在java中内存分成两个区域stack 和 heap , stack 用于运行(包括变量引用和逻辑运行),heap 用于存储变量实体。java中对String对象特殊对待,所以heap区域分成了两块,一块是String constant pool,用于存储java...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 233,938
精华内容 93,575
关键字:

java常量在内存中哪个位置

java 订阅