锁优化

JVM 

自旋锁与自适应自旋 互斥同步的时候,提到了互斥同步对性能最大的影响是阻塞的实现,挂起线程和恢 复线程的操作都需要转入内核态中完成,这些操作给Java虚拟机的并发性能带来了很大的压力。同

线程安全

JVM 

Java语言中的线程安全 我们[1]可以将Java语言中各种操作共享的数

java与线程协程

JVM 

线程的实现 主流的操作系统都提供了线程实现,Java语言则提供了在不同硬件和操作系统平台下对线程操作 的统一处理,每个已经调用过start()方法且还未结束的java.lang.Thread类的实例就代表着一个线程。我

java内存模型-线程

JVM 

硬件的效率与一致性 “让计算机并发执行若干个运算任务”与“更充分地利用计算机处理器的效能”之间的因果关系,看 起来理所当然,实际上它们之间的关系并没有想象中那么简单,其中一个重要的复杂性的来源是绝大

后端编译与优化-提前编译与优化技术

JVM 

提前编译器 现在提前编译产品和对其的研究有着两条明显的分支,一条分支是做与传统C、C++编译器类似 的,在程序运行之前把程序代码编译成机器码的静态翻译工作;另外一条分支是把原本即时编译器在 运行时要做的编译工作提前做好并保存下来,下次运行到这些代码(譬如公共库代码在被同一台机器<

后端编译与优化-即时编译器

JVM 

即时编译器 目前主流的两款商用Java虚拟机(HotSpot、OpenJ9)里,Java程序最初都是通过解释器 (Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁,就会把这些代码认

前端编译与优化

JVM 

总结:对程序语法进行校验,并进行部分优化,比如省略不会执行的if语句,lombok代码的生成。 在Java技术下谈“编译期”而没有具体上下文语境的话,其实是一句很含糊的表述,因为它可能是 指一个前端编译器(叫“编译器的前端”更准确一些)把*.java文件转变成*.class文件的过程;也可能是

类加载与执行案例

JVM 

Tomcat:正统的类加载器架构 主流的Java Web服务器,如Tomcat、Jetty、WebLogic、WebSphere或其他笔者没有列举的服务器, 都实现了自己定义的类加载器,而且一般还都不止一个

基于栈的字节码解释执行引擎

JVM 

解释执行 Java语言经常被人们定位为“解释执行”的语言,但当主流的虚拟机中都包含了即时编译器后,Class文件中的代码到底会被解释执行还是编译 执行,就成了只有虚拟机自己才能准确判断的事。 </

方法调用

JVM 

解析 所有方法调用的目标方法在Class文件里面都是一个常量池中的符 号引用,在类加载的解析阶段,会将其中的一部分符号引用转化为直接引用,这种解析能够成立的前 提是:方法在程序真正运行