摘要: Java内存模型与线程 一、物理机中的并发问题 由于计算机的存储设备与处理器的运算速度有着几个数量级的差距,所以现代计算机系统都不得不加入一层或多层读写速度尽可能接近处理器运算速度的高速缓存来作为内存与处理器之间的缓冲;将运算需要使用的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存中同步回 阅读全文
posted @ 2022-01-22 16:05 刘姥爷观园子 阅读(126) 评论(0) 推荐(0) 编辑
摘要: Java线程安全与锁优化 一、Java语言中的线程安全 按照线程安全的“安全程度”由强至弱来排序,我们可以将Java语言中各种操作共享的数据分为以下五类:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立 不可变:Java语言中,不可变的对象一定是线程安全的,无论是对象的方法实现还是方法的调用者 阅读全文
posted @ 2022-01-22 15:35 刘姥爷观园子 阅读(71) 评论(0) 推荐(0) 编辑
摘要: Java编译器优化技术 一、优化技术概览 以下截图为即使编译器优化技术一览: 即时编译器对这些代码优化变换是建立在代码的中间表示或者是机器码之上的,绝不是直接在Java源码上去做的。 二、方法内联 内联可以说是优化之母,因为除了消除方法调用的成本之外,它更重要的意义是为其他优化手段建立了良好的基础, 阅读全文
posted @ 2022-01-16 15:30 刘姥爷观园子 阅读(283) 评论(0) 推荐(0) 编辑
摘要: Java即时编译和提前编译 无论是即时编译或者是提前编译,都不是Java虚拟机必须的部分,Java虚拟机规范中从没有规定过虚拟机内部必须要包含这些编译器,更没有限定或者指导这些编译器应该如何去实现。 但是后端编译器编译性能的好坏、代码优化质量的高低却是衡量一款商用虚拟机优秀与否的关键指标之一。 一、 阅读全文
posted @ 2022-01-16 15:19 刘姥爷观园子 阅读(388) 评论(0) 推荐(0) 编辑
摘要: Javac编译器 Java技术下的编译期在不同的语境下会有不同的编译器实现产品: 1、前端编译器:jdk的javac、Eclipse JDT中的增量式编译器 2、即时编译器:hotspot虚拟机中的c1、c2编译器,graal编译器。 3、提前编译器:jdk的jaotc、gcj。 这里讨论javac 阅读全文
posted @ 2022-01-12 10:00 刘姥爷观园子 阅读(126) 评论(0) 推荐(0) 编辑
摘要: Tomcat类加载架构 主流的Java web服务器,都实现了自己定义的类加载器,而且一般都还不止一个。因为一个功能健全的web服务器,都要解决如下的问题: 1、部署在同一个服务器上的俩个web应用程序所使用的Java类库可以实现相互隔离。 2、部署在同一个服务器上的两个web应用程序所使用的Jav 阅读全文
posted @ 2022-01-11 19:47 刘姥爷观园子 阅读(82) 评论(0) 推荐(0) 编辑
摘要: Java方法调用、动态语言支持及基于栈的执行 方法调用并不等同于方法中的代码被执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还未涉及方法内部的具体运行过程。在程序运行时,进行方法调用是最普遍、最频繁的操作之一,class文件的编译过程中不包含传统程序语言编译的连接步骤 阅读全文
posted @ 2022-01-09 18:00 刘姥爷观园子 阅读(199) 评论(0) 推荐(0) 编辑
摘要: Java运行时栈帧结构 Java虚拟机以方法作为最基本的执行单元,“栈帧”则是用于支持虚拟机进行方法调用和方法执行背后的数据结构,它也是虚拟机运行时数据区中的虚拟机栈的栈元素,栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址和一些额外的附加信息。在编译Java程序源码的时候,栈帧中需要多 阅读全文
posted @ 2022-01-08 22:32 刘姥爷观园子 阅读(331) 评论(0) 推荐(0) 编辑
摘要: Java类加载器 一、类与类加载器 类加载器用于实现类的加载动作,对于任意一个类,都必须由加载它的类加载器和这个类本身一起共同确立其在Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。 二、双亲委派模型 站在Java虚拟机的角度来看,只存在俩种不同的类加载器:一种是启动类加载器( 阅读全文
posted @ 2022-01-06 10:06 刘姥爷观园子 阅读(139) 评论(0) 推荐(0) 编辑
摘要: Java类加载时机及过程 一、Java类记加载时机 关于在什么时候需要开始类加载的第一个阶段“加载”,Java虚拟机规范没有进行强制性的约束,这点可以交给虚拟机的具体实现来自由把握。但是对于初始化阶段,Java虚拟机则是严格规定了有且只有六种情况必须立即对类进行“初始化”(加载、验证、准备需要在此之 阅读全文
posted @ 2022-01-05 10:15 刘姥爷观园子 阅读(459) 评论(0) 推荐(0) 编辑