学习笔记——Java的字节码

  Java最初诞生的目的就是为了在不依赖于特定的物理硬件和操作系统环境下运行,那么也就是说Java 程序实现跨平台特性的基石其实就是字节码。Java 之所以能够解决程序的安全性问题、跨平台移植性等问题,最主要的原因就是Java源代码的编译结果并非是本地机器指令,而是字节码。当Java源代码成功编译成字节码后,如果想在不同的平台上面运行,则无须再次编译,也就是说Java源码只需次编译就可处处运行,这就是“Write Once, Run Anywhere”的思想。所以注定了Java程序在任何物理硬件和操作系统环境下命能够顺利运行,只要对应的平台装有特定的Java运行环境,Java程序都可以运行,虽然各个平台的Java虚拟机内部实现细节不尽相同,但见它们共同执行的字节码内容却一样的。

  那么什么是字节码(ByteCode)呢?参考《Java 虚拟机规范JavaSE7版》的描述来看,任何编程语言的编译结果满足并包含Java虚拟机的内部指令集、符号表以及些其他辅助信息,它就是 一个有效的字节码文件,就能够被虚拟机所识别并装载运行。在大部分情况下,字节码更多是存储在本地磁盘文件中,比如后缀名为“.class” 的文件。每一个字节码文件都对应着全局唯一的一 个类或者接口的定义信息,但这也并非绝对,类和接口并不一定都只能存储在文件里,  它还可以通过类装载器直接在运行时生成。

——————摘录自《Java虚拟机精讲》高翔龙编著

你可能感兴趣的:(学习笔记——Java的字节码)