-
Markdown Extra 定义列表语法:
JAVA最显著的两个特性
-
跨平台
Write once,run anywhere
-
垃圾回收(GC)
Java通过垃圾收集器,回收分配内存,猿不需要考虑内存的分配和回收
:语言特性
面向对象 反射 泛型 多态 继承
JAVA源码执行过程
-
编译
java通过javac编译成bytecode,生成class文件
-
执行
运行时,通过jvm内解释器将字节码转为机器码
(Hotspot JVM 提供JIT动态编译器,能够在运行时将热点代码编译成机器码,部分热点代码属于编译执行,非解释执行)
JVM基础概念、机制
-
类加载机制
Bootstrap、Application、Extension、Class-loader
-
类加载大致过程
加载、验证、链接、初始化
-
垃圾收集的基本原理
??
-
常见的垃圾收集器
SerialGC、Parallel GC、CMS、G1
JAVA工具
-
编译器
javac sjavac…
-
辅助工具
jlink jar jdeps…
-
诊断工具
jmap jstack jconsole jhsdb jcmd…
解释执行和编译执行的理解(杨晓峰极客时间java核心技术讲解的阅读笔记)
java通常分编译期和运行时,在运行时,JVM通过Class-Loader加载字节码,解释或者编译执行。
JDK8采用解释和执行的混合模式(-Xmixed)。server模式的JVM会进行大量的调用以收集信息进行高效编译,client模式限制1500次。Hotspot JVM内置不同的JIT Compiler,C1对应client模式,使用启动速度敏感的JAVA应用。C2对应server模式,适用长时间运行的sever模式。默认采用分层编译。
jvm启动时,可以指定不同的运行模式。-Xint 只进行解释执行,不对代码进行编译。-XComp关闭jvm解释器,不进行解释执行,会导致JVM启动变慢。
(JDK 9 AOT编译方式,直接将字节码编译成机器代码,避免JIT预热)
后面的博客我会去讲关于 泛型、Lambda等语言特性,集合、IO/NIO、网络、并发、安全等基础类库,Groovy、JRuby、Jython等JVM语言。