转载请注明出处
原文排版地址 -简介/)使用Java代码的整个过程
.java --javac--> .class --类加载器--> 转换后的.class --解释器--> 可执行代码 --JIT编译器--> 机器码
1、类文件在加载过程中通常会被处理和修改,比如Spring框架中的代理类
2、Java .class字节码更像是中间状态;Java中的真正编译器是JIT,将可执行代码 在 运行时编译成机器码。语法糖
1、描述的是一种语言特性,使用起来更辩解
2、语法糖在编译处理早起会从编译结果中移除,变为相同特性的基础表示形式,称为"去糖化"Java7 小特性
1、Switch 支持String类型
int x = Integer.parseInt("1100110",2);int x = 0b1100110;
2、在二进制或其他常数值中加入下划线
long tail = 100_000_000;
3、简化分类异常处理:
try{ }catch(ExceptionA1 | ExceptionA2){ }catch(ExceptionB1 | ExceptionB2){}
4、Try-with-resource
将资源的关闭交给编译器进行处理,并改善了问题的跟踪日志。
旧写法
try{ // 文件处理}catch{ // 文件处理}finally{ // 文件处理}
新写法
try(InputStream in = new InputStream(new FileInputStream("test.txt"))){ //文件处理}catch{}
可能会出现资源无法关闭的情况,改进写法:为各个资源独立声明变量
try( FileInputStream fis = new FileInputStream("test.txt"); InputStream in = new InputStream(fis)){ //文件处理}catch{}
5、钻石语法:针对创建泛型定义和实例过于繁琐做出的改进
Map> map = new HashMap >();Map > map = new HashMap();