随笔分类 - jvm
摘要:常见方法: start()和run(): start启动线程,由线程执行run; 不能重复调用start(),由new状态只能进入一次; sleep: 当前线程会由Running进入Timed Waiting 状态【阻塞状态】; 其他线程可以使用interrupt方法打断正在休眠的线程,对应抛出In
阅读全文
摘要:CAS与原子类 CAS:Compare and Swap,它体现的是一种乐观锁的思想; 没有使用synchronized,不会陷入线程阻塞; 但是如果竞争激烈,会频繁尝试,影响效率; 必须配合volatile使用,拿到最新的值; //不断的利用CPU尝试,避免了阻塞等待; while (true)
阅读全文
摘要:内存模型 java内存结构和java内存模型【Java Memory Model, JMM】不同; jmm定义了一套在多线程读写共享数据【成员变量,数组等】时,对数据的可见性,有序性,原子性的规则和保障; JMM:线程的内存【线程私有】和主内存【多线程共享】; synchronized,同步关键字;
阅读全文
摘要:运行期优化 即时编译: 分层编译:将执行状态分成了5个层次; 0层,采用解释执行【interpreter】; 1层,使用C1即时编译器编译执行【不带profiling】; 2层,使用C1即时编译器编译执行【带基本profiling】; 3层,使用C1即时编译器编译执行【带完全profiling】;
阅读全文
摘要:类加载器 加载器列表: 名 加载哪的类 说明 Bootstrap ClassLoader java_home/jre/lib 无法直接访问 Extension ClassLoader java_home/jre/lib/ext 上级为Bootstrap,显示为null Application Cla
阅读全文
摘要:类加载阶段: 将类的字节码加载到方法区中,内部采用C++的instanceKlass描述java类;他的重要属性: _java_mirror:即java的类镜像,eg: String.class,等效为一个java和C++的桥梁,作用时把C++的Klass暴露给java使用; _super:即父类
阅读全文
摘要:编译器处理: 语法糖:就是编译器把.java源码,编译为.class字节码的过程中,自动生成和转换的一些代码【减轻程序员的负担】。 默认构造器【无参】: public class Cat{ } // => public class Cat { public Cat(){ super(); } }
阅读全文
摘要:异常捕获 字节码中存在一个 Exception table表, Exception table 表可以检测对应代码行,如有异常,会进行异常匹配,然后跳转对应匹配异常的代码行; 接着存储异常的局部变量 e【slot,槽位共用】,再执行程序; 异常的字节码: 在底层,会将fianlly中的代码复制三份,
阅读全文
摘要:字节码指令: short范围的整数是跟字节码存储在一起; 超过short整数范围,则会存储在运行时常量池中; 将byte的数据压入操作数栈,int是4个字节,所以剩下的3个字节,会补齐,正数补0,负数1; 同理shrot也是,这里的byte 和short都是从方法区的压入的操作数栈, int和lon
阅读全文
摘要:垃圾回收器: 串行【SerialGC】: 单线程垃圾回收器; 堆内存较小,合适个人电脑【cpu少】; 执行过程: 串行在新生代执行的算法是:复制,在老年代上执行的是:标记整理,分别运行; 触发垃圾回收,建立STW安全点,单线程进行垃圾回收,其他进行阻塞; 执行结束后,打开安全点; 吞吐量优先【Par
阅读全文
摘要:垃圾回收算法: 标记清除 先扫描堆空间,没有GC root引用的对象进行标记垃圾; 清除垃圾【对垃圾的起始、结束位置进行记录】; 速度快,容易产生碎片内存空间; 标记整理: 先扫描堆空间,没有GC root引用的对象进行标记垃圾; 整理空间,将活动空间已经移动到连续空间; 克服碎片化空间,低效率;
阅读全文
摘要:垃圾回收机制 如何判断对象可以回收? 引用计数法: 当存在引用时+1,减小引用时 -1; 当引用数 = 0时,判断为垃圾; 缺:当存在循环引用时,双方引用都是1,就不能判断垃圾; 可达性分析算法: 根对象:肯定不能当作垃圾进行回收的对象; 当一个对象没有直接或间接被根对象引用,则就被当做垃圾。 扫描
阅读全文
摘要:jvm 内存结构部分 程序计数器【寄存器】:记住下一条jvm指令的执行地址程序; 线程私有的,每个线程都有自己的程序计数器; 不会存在内存溢出; 虚拟机栈:线程运行需要的内存栈,一个线程一个栈; 栈是由栈帧组成,通常在1MB以内; 一个栈帧就是每个方法运行时,需要的内存【参数,局部变量,返回地址】;
阅读全文

浙公网安备 33010602011771号