第十章 早期(编译期)优化
1、概述
java语言的“编译期”是一段“不确定”的操作过程,因为它可能是指一个前端编译器(其实叫“编译器的前端”更准确一些)把*.java转变成*.class文件的过程;也可能是批虚拟机的后端运行期编译器(JIT编译器)把字节码转变成机器码的过程;还可能是指使用静态提前编译器(AOT编译器,Ahead Of Time Compiler)直接把*.java文件编译成本地机器代码的过程。
2、由于编译器进行了常量折叠,“a=1+2”比起直接定义“a=3”,并一会增加程序的运算量。
3、方法重载要求方法具备不再的特征签名,返回值并不包含在方法的特征签名之中,所以返回值不参与重载选择,但是在Class文件格式之中,只要描述符不是完全一致的两个方法就可以共存。但是在JDK7中如下是不允许的,在1.6中是允许的。
public class GenericTypes {
public static String method(List<String> list){
System.out.println("invoke method(List<String> list)");
return "";
}
public static int method(List<Integer> list){
System.out.println("invoke method(List<Integer> list)");
return 1;
}
public static void main(String[] args) {
method(new ArrayList<String>());
method(new ArrayList<Integer>());
}
}
4、“==”运算在没有遇到算要运算的情况下不会以自动拆箱,而它们的equals()方法不会以处理数据转型的关系,在实际编码中就尽量避免这样使用自动装箱与拆箱。
Integer a = 1;
Integer b =2;
Integer c =3;
Integer d = 3;
Integer e = 321;
Integer f = 321;
Long g = 3L;
System.out.println(c == d); //true 小于127会直接比较int的值,有缓存常量
System.out.println(e == f); //false 大于127不会,直接按对象处理
System.out.println(c == (a+b)); //true 小于127
System.out.println(c.equals(a + b)); //true 比较值
System.out.println(g == (a+b)); //true int转long ,小于127
System.out.println(g.equals(a+b)); //false equals不会装箱,不会int转long 类型不匹配
5、Java程序命名规范
类(或接口):符合驼式命名法,首字母大写。
方法:符合驼式命名法,首字母小写。
字段:类或实例变量:符合驼式命名法,首字母小写。
常量:要求全部由大写字母或下划线构成,并且第一个字符不能是下划线。
6、可以通过Javac命令的“-processor“参数来执行编译时需要附带的注解处理器,如果有多个注解处理器的话,用逗号分隔。还可以使用-XprintRounds和-XprintProcessorInfo参数来查看注解处理器动作的详细信息。
分享到:
相关推荐
深入理解Java虚拟机学习笔记借鉴.pdf
java 虚拟机
虚拟机学习笔记--周志明老师第三版
Java虚拟机----类的加载过程.docx
作者以易于理解的方式深入揭示了java虚拟机的内部工作原理,深入理解这些内容,将对读者更快速地编写更高效的程序大有裨益! 本书共分20章,第1-4章解释了java虚拟机的体系结构,包括java栈、堆、方法区、执行...
虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种...Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
马士兵jvm调优参考资源
深入理解java虚拟机视频教程,jvm原理,java虚拟机,jvm性能调优,内存模型,gc工作原理,内存分配,类的加载等等视频教程
深入理解Java虚拟机笔记(带目录).docx
深入理解Java虚拟机(第二版)
诸葛_BAT面试之深入理解Java虚拟机_9
30+个视频+深入理解Java虚拟机(jvm优化+内存模型+虚拟机原理)
深入理解JAVA虚拟机.xmind
前言Java是目前用户最多、使用范围最广的软件开发技术之一。Java的技术体系主要由支撑Java程序运行的虚拟机、提供各开发领域接口支持的Java API、Ja
深入Java虚拟机英文版第二版,很清晰,包含目录,只是不能点击标题跳转
了解jvm的pdf,高清pdf,希望大家下载
深入Java虚拟机——本地方法栈.pdf
自己看《深入理解Java虚拟机》(第二版)所做的一些笔记。因为个人水平有限,能够理解的也只有前面几章的内容,后面的内容觉得看了也不是很理解,就没有记在里面。希望能对大家有所帮助,也希望能和大家一起进步。
Java虚拟机详解04----GC算法和种类【重要】,有助于更深入理解记忆,文字配图片,10分钟让你记住gc工作机制。
介绍java虚拟机的组成,工作机制。本书介绍的较为详细,概念偏多,适合入门了解,文档排版优秀