武汉北大青鸟 > IT技术教程 > java技术教程 >

深度解析Java内存的原型及工作原理

时间:2015-04-24来源:北大青鸟徐东校区
     java虚拟机内存原型:寄存器:我们在程序中无法控制栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中堆:存放用new产生的数据静态域:存放在对象中用static定义的静态成员常量池:存放常量非RAM存储:硬盘等存储空间。
 
      常量池(constant pool):常量池指的是在编译期被确定,并被保存在已编译的。class文件中的一些数据。除了包含代码中所定义的各种基本类型(如int、long等等)和对象型(如String及数组)的常量值(final)还包含一些以文本形式出现的符号引用,比如:
                           
    1、类和接口的限定名;
                           
    2、字段的名称和描述符;
                           
    3、方法和名称和描述符。
 
      虚拟机必须为每个被装载的类型维护一个常量池。常量池就是该类型所用到常量的一个有序集和,包括直接常量(string,integer和floating point常量)和对其他类型,字段和方法的符号引用。对于String常量,它的值是在常量池中的。而JVM中的常量池在内存当中是以表的形式存在的, 对于String类型,有一张固定长度的CONSTANT_String_info表用来存储文字字符串值,注意:该表只存储文字字符串值,不存储符号引 用。说到这里,对常量池中的字符串值的存储位置应该有一个比较明了的理解了。在程序执行的时候,常量池 会储存在Method Area,而不是堆中。
责任编辑:admin

分享到:

作者: 武汉北大青鸟 原载: 武汉北大青鸟徐东校区 www.whhpit.com
版权所有,转载时必须以链接形式注明作者和原始出处及本声明

027-87660036

开班信息

只为了方便您就学 徐东校区

武汉市洪山区友谊大道504号金马凯旋家居北大青鸟徐东校区2楼(地铁8号线徐东站D出口徐东平价旁)

全真项目实战 入学签就业协议

Copyright (c) 2006-2020 武汉宏鹏职业培训学校 版权所有 All Rights Reserved.

在线咨询