12 2019 档案
摘要:这节我们总结一下JVM运行期的优化问题。 https://www.cnblogs.com/zhouyuqin/p/5224573.html JVM运行期优化 即时编译器(JIT) 编译对象与触发条件 编译对象 触发条件 编译过程 编译优化技术 JVM运行期优化 Java程序在运行的期间,可能会有某个
阅读全文
摘要:第三章 JDK并发包https://www.cnblogs.com/sean-zeng/p/11957569.html JAVA的线程是映射在操作系统的原生线程上的,所以使用synchronized对线程的操作是重量级的,在不必要的条件下应尽量避免使用。 JDK内部提供了大量实用的API和框架。本章
阅读全文
摘要:JVM的编译器可以分为三个编译器: 1、前端编译器:把.java转变为.class的过程。如Sun的Javac、Eclipse JDT中的增量式编译器(ECJ)。 2、JIT编译器:把字节码转变为机器码的过程,如HotSpot VM的C1、C2编译器。 3、AOT编译器:静态提前编译器,直接将*.j
阅读全文
摘要:第一章 几个概念 同步:一次方法调用须等到其返回后才能有后续 异步:一次方法调用后在另一线程执行,调用者可不必等其返回就可进行后续 并发:任务以极短的时间交替进行 并行:任务同时进行 临界区:公共资源 阻塞:临界区资源被占用,须等待前一线程释放。 死锁:彼此占用所需资源,都无法继续进行 饥饿:线程优
阅读全文
摘要:一、运行时栈帧结构 栈帧是用于支持虚拟机进行方法调用和执行的数据结构,是虚拟机栈的栈元素。 栈帧存储了局部变量表,操作数栈,动态连接,和返回地址等。 每一个方法的执行 对应的一个栈帧在虚拟机里面从入栈到出栈的过程。 只有位于栈顶的栈帧才有有效的,对应的方法称为当前方法。 执行引擎运行的所有指令只针对
阅读全文
摘要:java虚拟机具有语言无关系,它只和“class文件“这种特定的二进制文件格式绑定。 不同语言的编译器将对应的程序编译成字节码文件(*.class),送给jvm执行。 class文件本质上就是一张表,由各类数据项构成。 2.1、魔数(是否可以被虚拟机执行)和class文件版本 2.2、常量池(两大类
阅读全文

浙公网安备 33010602011771号