随笔分类 -  JVM虚拟机

垃圾收集器与内存分配策略
摘要:1,对象存活性检测 1,引用计数器算法 每增加引用+1,每引用失效-1,为0则未被使用 优点:简单,高效 缺点:不能解决对象循环依赖问题 Hotspot未采用引用计数器算法 2,可达性分析算法:GC Roots(Java中采用) GC Roots对象作为起始点,向下搜索引用链,不可及的对象则视为不可 阅读全文

posted @ 2017-12-11 21:17 Vindia

线程状态Blocked和Waiting
摘要:线程状态中Blocke和Waiting(Time_Waiting)的区别 入口区等待获取锁的线程状态为Blocked,获取锁失败,然后线程就排队等待 等待区等待被唤醒的线程状态为Waiting(Time_Waiting),线程在获取锁后调用自身的wait()方法,然后释放锁,进入等待区等待 阅读全文

posted @ 2017-12-02 20:13 Vindia

JVM虚拟机-GC
摘要:垃圾回收器: 1,Serial收集器 :新生代 2,ParNew收集器:新生代 3,Parallel SCavenge收集器:新生代 4,Serial Old收集器:老生代 5,Parallel Old收集器:老生代 6,CMS收集器:老生代 7,G1收集器:新生代,老生带 阅读全文

posted @ 2017-10-22 22:19 Vindia 阅读(143) 评论(0) 推荐(0)

JVM虚拟机-线程安全
摘要:java线程安全的分类: 1,不可变(final) 2,相对线程安全 3, 4,线程对立: Thread的suspend和resume,死锁风险 System.SetIn(),System.setOut(),System.runFinalizersOnExit() 线程安全的实现方式: 1,互斥 同 阅读全文

posted @ 2017-10-10 09:54 Vindia 阅读(155) 评论(0) 推荐(0)

JVM虚拟机-类加载过程
摘要:1,类的生命周期 加载,链接(验证,准备,解析),初始化,使用,卸载 触发类初始化的5中情况: 加载过程: 验证阶段: 分为以下几个方面 1,文件格式验证:只有通过验证,字节流才会进入内存方法区存储 2,元数据验证:类的元数据信息校验 3,字节码验证:类的方法校验 4,符号引用验证:符号引用转化为直 阅读全文

posted @ 2017-10-08 19:02 Vindia 阅读(215) 评论(0) 推荐(0)

JVM虚拟机-指令架构
摘要:JVM指令是基于栈的指令集 而X86的指令集是基于寄存器的指令集 从而: 基于栈的指令集的特点是慢(相对与寄存器指令而言,因为内存相对于cpu还是很慢的), 指令较多(基于栈的指令操作涉及到出入栈等操作,而基于寄存器的指令基本上一条语句叫搞定一个加操作), 但是基于栈的指令集是其跨平台的基础,因为屏 阅读全文

posted @ 2017-10-08 11:41 Vindia 阅读(194) 评论(0) 推荐(0)

JVM虚拟机-虚拟机栈栈帧结构
摘要:栈帧中包含的逻辑结构: 1,方法的局部变量表(与运行时常量池有关么?):实例方法的情况下,第0位slot为方法所属实例对象引用(this) 2,操作数栈 3,动态链接(解析,分派) 4,方法返回地址 5,附加信息 方法执行过程栈的情况 对应的字节码指令 执行: 涉及JVM方法调用的过程,其实就是在方 阅读全文

posted @ 2017-10-08 11:26 Vindia 阅读(402) 评论(0) 推荐(0)

JVM虚拟机-线程状态
摘要:JAVA线程状态: 1,New 2,Runnable 3,Blocked 4,Waiting 5,Time_Waiting 6,Terminated // 线程状态的转换关系 细化表现方式 再另外一种表现方式 阅读全文

posted @ 2017-10-04 19:50 Vindia 阅读(273) 评论(0) 推荐(0)

JVM虚拟机-对象
摘要:虚拟机为创建对象时,处理工作 1,在堆区为次对象分配内存 2,分配的内存初始化0值 3,对对象进行必要的设置 在程序的角度,还要为对象执行<init>方法初始化 虚拟机中对象在内存中的存储布局 分为3块: 1,对象头 a,对象自身的运行时数据(Mark Word) b,类型指针 c,如果是数组,还会 阅读全文

posted @ 2017-10-04 16:18 Vindia 阅读(122) 评论(0) 推荐(0)

JVM虚拟机-Java内存区域与内存溢出异常
摘要:1,运行时数据区 分两大类: 第一类,线程共享的数据区: a,方法区 1,运行时常量池:编译期间生成的各种字面量和符号引用, b,堆区 1,新生代 (1),Eden空间 (2),From Survivor空间 (3),To Survivor空间 2,老年代 c,直接内存,比如DirectByteBu 阅读全文

posted @ 2017-10-04 15:37 Vindia 阅读(189) 评论(0) 推荐(0)

导航