工程建设标准网站,微信做的地方门户网站,建设银行网站查询密码怎么设置,如何用网络营销推广目录
1.JVM
2.字节码
3.Java源文件执行的过程
4.JIT#xff08;Just In Time Compilation#xff09;
5.AOT#xff08;Ahead Of Time Compilation#xff09;
6.AOT破坏Java动态性
7.编译型语言与解释型语言
8.Java-编译与解释并存的语言
9.Java和C的相同点与不同…目录
1.JVM
2.字节码
3.Java源文件执行的过程
4.JITJust In Time Compilation
5.AOTAhead Of Time Compilation
6.AOT破坏Java动态性
7.编译型语言与解释型语言
8.Java-编译与解释并存的语言
9.Java和C的相同点与不同点
10.Oracle JDK 和 Open JDK 1.JVM
1.定义Java虚拟机
2.作用运行Java字节码文件
3.实现方式针对不同的操作系统Windows、MacOS、Linux存在不同的实现方式。目的是运行相同的Java字节码文件在不同系统中给出相同的结果
4.自定义JVM只要满足JVM规范就可以自定义自己的JVM 2.字节码
1.定义字节码就是JVM能够处理的代码是面向虚拟机的
2.优点由于字节码是面向虚拟机的因此在不同操作系统可以无需重新编译并且执行效率高 3.Java源文件执行的过程
过程Java源文件---javac编译---.class文件字节码文件---解释运行---机器码
重点字节码文件到机器码这一过程中Java的类的加载器需要先将字节码文件加载到内存中然后解释器开始逐行解释执行这样做效率低。引入JITjust in Time Compilation运行时编译器能够在编译后将字节码文件对应的机器码保存下来机器码的运行效率是比较高的。 4.JITJust In Time Compilation
1.定义运行时编译器在对字节码文件解释运行时边运行边编译并将编译后字节码文件对应的机器码保存下来从而提高程序运行效率
2.优点根据内存中实际情况调整代码根据运行情况生成最优机器指令序列 缺点需要占用运行时资源导致程序卡顿编译准备和识别时会占用时间使得初始编译不能达到最高性能 5.AOTAhead Of Time Compilation
1.定义提前编译器对字节码文件在执行前就编译为机器码可以减少JIT初始编译时无法达到最高性能的问题
2.优点在程序编译前编译避免在运行中占用系统资源在程序运行初期就达到最高性能 缺点提前编译会占用更多外存牺牲了Java的动态性 6.AOT破坏Java动态性
Java中的反射机制是动态获取运行时类的对象及调用运行时类的方法此时只能采用JIT进行编译若采用AOT则全部已经提前编译无法动态的修改运行时类的属性 7.编译型语言与解释型语言
编译型通过编译器将源代码一次性翻译为可以被平台执行的机器码 优点执行速度快 缺点开发效率低 实例C、C、Go
解释型通过解释器将代码逐行解释为机器码后被平台执行 优点开发效率高 缺点执行速度慢 实例Python、JavaScript 8.Java-编译与解释并存的语言
为改善编译语言的效率将编译和运行相结合使得具有编译语言和解释语言二者的优点。在Java中先将程序源代码编译为字节码文件在执行时再将字节码文件解释为机器码 9.Java和C的相同点与不同点
相同点都是面向对象的语言都支持封装、继承、多态
不同点 Java不提供指针直接访问内存程序更安全 Java类是单继承C的类支持多继承 Java存在GC垃圾自动回收无法手动释放无用内存 C支持方法重载和操作符重载Java只支持方法重载 10.Oracle JDK 和 Open JDK
Sun公司2006将Java开源因此有了Open JDK
Oracle公司2009年收购了Sun公司在Open JDK基础上整理出Oracle JDKOracle JDK不开源
二者区别 是否开源Oracle JDK是不完全开源的Open JDK是开源的 是否免费Oracle JDK仅仅3年免费Open JDK免费 功能性Oracle JDK相比于Open JDK添加了特有的功能和工具