java跨平台(学习笔记)

java跨平台

最近在学习java,然后听说了许多java的优点,java是个很好的跨平台语言,那么什么是跨平台呢,那么我们就要先懂得java代码的运行是怎么个操作的

​ 假如我们编好了一个java程序,文件是以.java结尾,例:HelloWorld.java,它以javac.exe被编译成HelloWorld.class的字节码文件,在执行和翻译时候,表面上我们调用的是java.exe,实际上,在调用java.exe的时候,会动态调用JVM(java虚拟机,后面有解释),实际真正起到执行作用的是JVMjava跨平台(学习笔记)

而这里讲到的JVM,就相当于一个“翻译官”,将之前的字节码文件翻译成为当前的平台上人生的可执行的文件格式

这里讲的平台,类似于我们都熟知的windows,Linux,MacOS,这些平台上面都有它们对应的JVM,也就是在JDK中,然后就能实现同一种代码,在这些平台上都可以被翻译执行,也就是我们所说的Write Once,Run EveryWhere

**为了更好的理解:**比如同一个你想表达的意思,在韩国,你可以找韩国的翻译来翻译成韩国人能懂得的意思,在英国,你可以找英国的翻译来翻译执行你要表达的意思,同一个意思在不同国家都得以实现,和前面的跨平台是一个道理。

之前的困惑:很早之前看见过java是编译型的语言,也是解释型的语言,现在明白了,编译型的语言是因为java的你可以说它是编译型的,因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有

解释型因为java代码编译后不能直接运行,它是解释运行在JVM上的,而JVM的执行方式是把字节码文件一行一行的解释成当前平台认识的可执行文件,所以它是解释运行的,那也就算是解释类型的了。