在学习Java 虚拟机的时候你可能有以下疑问:
Java虚拟机的原理是什么?
JNI、类加载器的原理又是什么?
Safepoint机制又是怎样的?
阿里云开发者学堂配套教材《JVM实战》来啦!6章内容,帮你轻松解决以上难题。配合9000+人学习的Java 虚拟机原理视频课程,技术进阶不是梦!
配套视频课程地址:https://developer.aliyun.com/graph/java
复制该链接到浏览器完成下载ihttps://developer.aliyun.com/topic/download?id=7851
——学习更多看这里——
本电子书配套视频课程地址:https://developer.aliyun.com/graph/java
—精彩内容抢先看—
JNI in Java
掌握Java和Native之间的互相调用,大大丰富java的使用场景。了解原理,对于学习JVM/故障定位更加得心应手。点击查看更多>>
Safepoint机制
safepoint会把整个jvm的那些应用线程给暂停掉这里主要是关心的当vm thread发出请求的时候,Java的实验者能够及时的响应safepoint的请求,能够马上的自己给停下来,如果有一些线程它停下来了,另一些线程还在运行,这样的话其他的线程就会等于是浪费时间在等待,所以说及时响应是它一个很重要的指标。点击查看更多>>
类加载器原理
关于类加载部分,首先用户有Java文件,然后Java文件用Java c去编译就可以得到.class文件,接着虚拟机会加载.class文件变成虚拟机的元数据。比如在c++里边会变成Klass *,Method *,ConstantPool * 等,这些都是Java虚拟机里元数据的描述。点击查看更多>>
Dragonwell特性: 多租户
以前阻塞的API是支持的完全不需要改代码,可以把以前的用协程写代码直接切换到协程模型,进行一个模型转换,这样从java thread和Pthread就操作系统1:1的模型变到调用大量wisp变成少量操作统线程,性能大大提高。点击查看更多>>
Dragonwell特性: JWarmup
Java的方法要被执行时,首先这个方法所在的类需要被JVM加载,这个过程包括各类文件的验证、解析、链接以及类的初始化。当这个类被加载进来了以后,JVM就可以去执行这个方法。点击查看更多>>
Dragonwell特性: Wisp
上下文切换会吃掉宝贵的CPU资源,大家很多情况下对上下文有误区,进出内核和调度之间其实很大差异的。假如像刚才这种场景,我们看到多个线程来回调用,那一个线程当它资源耗尽或者比较阻塞的时候,下个线程选谁?其实操作系统需要进行调度,真正的损耗远大于想象。点击查看更多>>
阿里云开发者藏经阁
阿里云开发者社区——藏经阁系列电子书,汇聚了一线大厂的技术沉淀精华,爆款不断。点击链接获取海量免费电子书:https://developer.aliyun.com/ebook