微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java编译器学习笔记

1.Java 程序实现跨平台特性的基石是字节码。Java 之所以能够解决程序的安全性问题、跨平台移植性等问题,最主要的原因就是Java 源代码的编译结果并非是本地机器指令,而是字节码。当Java 源代码成功编译成字节码后,如果想在不同的平台上面运行,则无需再次编译,也就是说Java 源码只需一次编译就可处处运行,这就是“Write Once,Run Anywhere”的思想。所以注定了Java 程序在任何物理硬件和操作系统环境下都能够顺利运行,只要对应的平台装有特定的Java 运行环境,Java 程序都可以运行,虽然各个平台的Java 虚拟机内部实现细节不尽相同,但是它们共同执行的字节码内容却是一样的。那么想要让一个Java 程序正确地运行在JVM 中,Java 源码就必须要被编译为符合JVM 规范的字节码。关于规范,开发人员在使用Java 语言编写一个Java 程序时需要遵循Java 语法规范,而将源码编译为字节码的时候又需要符合JVM 规范,简单来说,前端编译器的主要任务就是负责将符合Java 语法规范的Java 代码转换为符合JVM 规范的字节码文件

2.Java 源码的编译结果屏蔽了与底层操作系统和物理硬件相关的一些特性,使得开发人员尽可能地只需关注于自身业务。因为只有这样,体系结构中立、与平台无关等特性才能够真正地构建起来,否则Java 技术就是一门传统的静态编译型语言,而非今天的动态编译型语言。现在,Java 程序的运行性能已经达到了可以和C/C++程序一较高下的地步,并且Java 技术自身的诸多优势同样也是C/C++无法比拟的,所谓各有所长就是这个道理。世界上永远没有最好的编程语言,只有最适用于具体应用场景的编程语言。

 

3.Java 源码的编译结果是字节码,那么肯定需要有一种编译器能够将Java 源码编译为字节码,承担这个重任的就是配置在“PATH”环境变量中的javac 编译器。javac 是一种能够将Java 源码编译为字节码的前端编译器。

4.JVM 并不会与Java 语言“终生绑定”,任何语言编写的程序都可以运行在JVM 中,前提是源码的编译结果满足并包含Java 虚拟机的内部指令集、符号表以及其他的辅助信息,它就是一个有效的字节码文件,就能够被虚拟机所识别并装载运行。

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐