JVM运行时数据区的内存模型由五部分组成:【1】方法区【2】堆【3】JAVA栈【4】PC寄存器【5】本地方法栈对于String s = "haha" ,它的虚拟机指令:0: ldc #16; //String haha2: astore_13: return对于上面虚拟机指令,其各自的指令流程在《深...
分类:
编程语言 时间:
2014-07-16 18:48:18
阅读次数:
217
《Java虚拟机规范(Java SE 7版)》作者:Tim Lindholm、Frank Yellin、Gilad Bracha、Alex
Buckley 摘要:第二章 Java虚拟机结构(第1部分)
本规范描述的是一种抽象化的虚拟机的行为,而不是任何一种被广泛使用的虚拟机实现。
2.5 运行时数据区
Java虚拟机定义了若干种程序运行期间会使用到的运行时...
分类:
编程语言 时间:
2014-07-10 20:50:21
阅读次数:
217
Java虚拟机在执行Java程序的过程中会将其管理的内存划分为若干个不同的数据区域,这些区域有各自的用途,及创建和销毁的时间,有些区域随虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束来建立和销毁。...
分类:
编程语言 时间:
2014-07-08 15:59:41
阅读次数:
204
之前的两篇文章(java运行时数据区浅析、java垃圾收集器(GC)浅析)介绍了java运行时数据区以及GC垃圾回收算法的相关知识,大家可以先去看看这两篇文章。
本篇文章将重点关注新生代的垃圾回收。
大部分JVM都会采用所谓的分代收集方式去回收垃圾,什么是分代收集呢?
根据对象的存活周期的不同将内存划分为好几块。一般是把java堆分为新生代和老年代,这样就可以根据各个年代的特点采...
分类:
其他好文 时间:
2014-06-16 18:38:23
阅读次数:
265
若你的应用需要进行分布式部署,如果你的分布式对象需要支持事务、如果你的关键业务逻辑需要能够支持多种不同类型的客户端,那么EJB将会是一个很好的选择。java虚拟机运行时数据区: 需要同时满足下面3个条件才能算是“无用的类”:
1,该类的所有实例都已被回收,也就是JAVA堆中不存在该类的任何实例。
2,加载该类的...
分类:
其他好文 时间:
2014-06-16 14:16:29
阅读次数:
336
Java在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途、创建和销毁的时间,有一些是随虚拟机的启动而创建,随虚拟机的退出而销毁,有些则是与线程一一对应,随线程的开始和结束而创建和销毁。Java虚拟机所管理的内存将会包括以下几个运行时数据区域程序计数器(P...
分类:
编程语言 时间:
2014-06-15 21:28:37
阅读次数:
329
一、预先需要掌握的知识(java虚拟机) 1)java虚拟机的方法区:
java虚拟机有一个运行时数据区,这个数据区又被分为方法区,堆区和栈区,我们这里需要了解的主要是方法区。方法区的主要作用是存储被装载的类
的类型信息,当java虚拟机装载某个类型的时候,需要类装载器定位相应的class文...
分类:
编程语言 时间:
2014-06-07 04:26:02
阅读次数:
269
Java在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途、创建和销毁的时间,有一些是随虚拟机的启动而创建,随虚拟机的退出而销毁,有些则是与线程一一对应,随线程的开始和结束而创建和销毁。Java虚拟机所管理的内存将会包括以下几个运行时数据区域程序计数器(P...
分类:
编程语言 时间:
2014-06-02 18:02:37
阅读次数:
282
#Java内存区域与内存溢出异常##运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存区域划分为若干个不同的数据区域。###1
程序计数器--Program Counter Register一块较小的内存空间,作用可视为当前线程所执行的字节码的行号指示器,没个线程有自己独立的程...
分类:
编程语言 时间:
2014-05-21 22:50:53
阅读次数:
377
java虚拟机规范规定的java虚拟机内存其实就是java虚拟机运行时数据区,其架构如下:
' v:shapes="_x0000_i1029">
其中方法区和堆是由所有线程共享的数据区。
Java虚拟机栈,本地方法栈和程序计数器是线程隔离的数据区。
Java官方定义:http://www.98ki.com/servlet/HomeServlet?method=get&id=53...
分类:
编程语言 时间:
2014-05-18 18:20:57
阅读次数:
420