
深入理解java虚拟机
文章平均质量分 70
若凉_季
为了生活
展开
-
垃圾收集器与内存分配策略
可达性分析算法 来判断对象是否存活。这个算法的基本思路是通多一系列的称为“gc roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到gc roots没有任何引用链项连时(图论来说,从gc到这个对象不可达),则证明此对象是不可用的。 JAVA语言中,可作为gc roots的对象包括下面几种:虚拟机栈(栈帧中的本地变量表)中引用的对象。方法区中类静态属性原创 2015-02-09 11:06:49 · 868 阅读 · 0 评论 -
深入理解java虚拟机
深入理解java虚拟机java技术体系,按所服务的领域划分:java card:java小程序applets运行在小内存设备如智能卡,上的平台java ME(micro edition):支持java程序运行在移动终端手机pad上的平台,java api有所精简java SE:面向桌面级应用,windows下的应用程序,的平台,完整的java核心apijava EE:支持使用多层架构的企业应原创 2015-02-07 10:04:31 · 3121 阅读 · 0 评论 -
调优案例分析
堆外内存导致的溢出除了java堆和永生代之外,西面这些区域还会占用较多的内存,这里所有内存总和受到操作系统进程最大内存的限制。Direct Memory线程堆栈Socket缓存区:每个socket连接都receive和send两个缓存区,分别占大约37k和25k内存,连接多的话这块内存也很客观,如果无法分配则绘抛出IOException:Too many open files异常。JNI代码原创 2015-02-09 14:39:27 · 940 阅读 · 0 评论 -
class文件结构
代码编译结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。class文件是一组以8位字节为基础的二进制流,各个数据项目严格按照顺序紧凑的排列在class文件之中,中间没有添加任何分隔符,这使得整个class文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。当遇到需要占用8位字节以上空间的数据项时,则会按照高位在前的方式分隔成若干个8位字节进行存储。 clas原创 2015-02-09 17:08:39 · 816 阅读 · 0 评论 -
虚拟机类加载机制.
虚拟机把描述类的数据从class文件加载到内存,并对数据进行校检、转换解析和初始化,最终形成可已被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。 类的加载、连接和初始化过程都是在程序运行期间完成的,这样虽然会令类加载时稍微增加一些性能开销,但是会为java应用程序提供高度灵活性,java语言运行期类加载的特性。 类从被加载到虚拟机内存中开始,到卸载出内存为止,他的整个生命周期包括:加载原创 2015-02-10 18:44:48 · 4538 阅读 · 0 评论