java语言为什么具有平台无性
Posted a5137
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java语言为什么具有平台无性相关的知识,希望对你有一定的参考价值。
首先解释一下什么叫做平台无关性:平台无关性即对每种数据类型在不同的操作系统中都分配固定长度,例如,int类型数据总是占据32个位(4个字节),而C/C++却不然。
知道了平台无关性后下面我们简单说一下java为什么能够"Write Once,Run Anywhere"如下是java程序运行的过程:
-
编译
将Java代码翻译成Java字节码。 -
Java编译器
将Java源文件(.java)翻译成Java字节码文件(.class )。
javac Welcome.java
//将Java源代码翻译成Java字节码,并且生成.class文件
java Welcome
//运行字节码 -
JVM java虚拟机
解释Java字节符的程序。不是物理机器。
所以Java字节码可以在不同的硬件平台和操作系统上运行,只要安装了JVM(不同的操作系统对应不同的jvm)。 -
类加载器(class loader)
将类的字节码加载到内存中的程序。
在执行一个Java程序时,JVM首先会用一个称为类加载器的程序将类的字节码加载到内存中。如果程序中使用了其他类,类加载程序会在需要它们之前动态地加载他们。当加载该类后,JVM使用一个成为字节码验证器(bytecode verifier)的程序来检验字节码的合法性,确保字节码不会违反Java的安全规范 - 总的来说:每个操作系统对应的JVM会自动去弥补java程序在不同操作系统之间的“差异”,以达到“一致性”。
以上是关于java语言为什么具有平台无性的主要内容,如果未能解决你的问题,请参考以下文章