java
yud1
这个作者很懒,什么都没留下…
展开
-
《深入理解java虚拟机》-JVM内存区域
java虚拟机在执行java程序时,会将它所管理的内存划分为若干个不同的数据区域1,程序计数器程序计数器是指当前线程所执行的字节码的行号指示器,即存储的是下一条需要执行的字节码指令。为了在多线程中,线程切换能恢复到正确的执行位置,每个线程都需要一个独立的程序计数器2,java虚拟机栈Java虚拟机栈是线程私有的。Java虚拟机栈描述的是Java方法执行的内存模型。每个方法在...原创 2018-04-08 19:01:30 · 94 阅读 · 0 评论 -
《深入理解Java虚拟机》-对象
1,对象的创建当虚拟机遇到一条new指令之后,首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个类是否被加载,解析以及初始化中。如果没有则进行类加载。 当类加载之后,接下来虚拟机会为对象分配内存空间(对象所需的内存大小在类加载之后便可完全确定)。分配空间的方法有两种分别为指针碰撞(适用于内存规整)和空闲列表(虚拟机维护一个列表,记录哪些内存块是可用的,在分配时从列表中找出一原创 2018-04-08 19:49:25 · 98 阅读 · 0 评论 -
《深入理解Java虚拟机》-垃圾收集器与内存分配策略
Jvm垃圾回收分为俩点,一是对象的内存回收也就是堆内存回收,二是字面量(运行时常量池)和类信息内存回收也就是方法区内存回收。1,对象内存回收判断1)引用计数算法 即给每个对象设置一个引用计数器,每当有一个地方引用它时,引用计数器加一,当为0时,选择内存回收。引用计数法实现简单,判定效率也高,但它无法解决对象之间循环引用的问题。主流的java虚拟机不采用这种方法来管理内存 2)可达性分析算法 通原创 2018-04-08 22:02:30 · 157 阅读 · 0 评论