郴州网站建设推广公司,中国学校网站前台模板,二十四节气网页界面设计,员工信息管理系统源码Java字节码
Java源程序#xff08;.java#xff09;要先编译成与平台无关的字节码文件(.class)#xff0c;然后字节码文件再解释成机器码运行。解释是通过Java虚拟机来执行的。
java要运行要经过如下步骤
① Java源文件—-编译器#xff08;工具#xff09;—-…Java字节码
Java源程序.java要先编译成与平台无关的字节码文件(.class)然后字节码文件再解释成机器码运行。解释是通过Java虚拟机来执行的。
java要运行要经过如下步骤
① Java源文件—-编译器工具—-字节码文件
② 字节码文件—-JVM工具—-机器码
c运行步骤
c源文件–编译器 --机器码
问题在于每个平台所认识的0101序列并不一样。在Windows上也许某个指令是0101在Linux下也许是1010因此不同的平台必须使用不同的编译器来编译你的代码而在Windows平台上编译好的程序也不能直接拿到Linux等其它平台上执行而必须经过重新编译的动作让编译器将你的程式编译为该平台可以执行的指令。
Java具有平台的无关性。使用Java虚拟机实现这一特点。
Java编译时并不直接翻译为相依于某平台的0101指令而是翻译为中介格式的位元码byte code。Java 的原始码文件格式名为*.java经过编译器翻译过后会变成*.class的格式文件位元码。如果想要执行这个位元码档案目标平台上必须安装有JVMJava Virtual Machine。JVM会将位元码翻译为相应平台支持的语言。
不同的平台必须安装该平台相对应的JVM。而对于JVM而言位元码文件就是它的可执行文件也就是格式为.class的文件。Java代码程序理想上并不用理会真正执行于哪个平台之上它只要知道如何执行于JVM之上就可以了至于JVM实际上如何与底层平台作沟通则是JVM自己的事
一般的高级语言如果要在不同的平台上运行至少需要编译成不同的目标代码。
而引入Java语言虚拟机后Java语言在不同平台上运行时不需要重新编译。
Java语言使用Java虚拟机屏蔽了与具体平台相关的信息使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码**(字节码)**就可以在多种平台上不加修改地运行。
Java虚拟机在执行字节码时把字节码解释成具体平台上的机器指令**(机器码)**执行。这就是Java的能够“一次编译到处运行”的原因。
获取class字节码文件常用的三种方法
Class clazz Class.forName(包.类名称) //在源文件阶段获取class字节码文件
Class clazz 类名.Class //在编译阶段获取class字节码文件
Class clazz 类对象.getClass() //在运行阶段通过生成的对象的来获取class字节码文件 //这三种方法获取的类对象是同一个。