深入理解java虚拟机1----走进java
之前我们在学java的时候,理解过java的执行原理:编译+解释
由java虚拟机编译的java变为与平台无关的字节码文件,在经java虚拟机解释成可运行的文件
而且我也说过,他这个解释器也就是java虚拟机是一个很神秘的东西,因此有必要学一下
理解了虚拟机之后,其实你就理解了程序是如何运行的了,怎么才能让java程序具有更高的并发性呢?
java的技术体系:java程序设计语言+支撑java程序运行的虚拟机+java api+第三方java框架
sun官方规定的java技术体系:java语言+各种硬件平台上的虚拟机+class文件格式+java api类库-----jdk+第三方java类库
啊,java的未来?语言的大杂烩?32位虚拟机到64位虚拟机?
虚拟机可以进行多种语言的解释了?实际是jvm虚拟机对特定的语言采用特定的编译器,比如scalac/javac/javascriptc是吧,都可以编译成字节码文件,之后由java进行运行,完全ok
Scala
Scala 运行在Java虚拟机上,并兼容现有的Java程序。
Scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库。
Scala可以与Java互操作。它用scalac这个编译器把源文件编译成Java的class文件(即在JVM上运行的字节码)。你可以从Scala中调用所有的Java类库,也同样可以从Java应用程序中调用Scala的代码。用David Rupp的话来说,
它也可以访问现存的数之不尽的Java类库,这让(潜在地)迁移到Scala更加容易。
(一)虚拟机的重要性
虚拟机在千差万别的物理机上面建立了统一的平台,实现了一台虚拟机上变异的程序能够在任何一台虚拟机上正常运行,虚拟机会在用户不知不觉中完成对硬件平台的兼容以及对内存资源的管理。
在高并发下,虚拟机就显得极其有用了,因为呢,有的时候硬件贼硬,没办法因为有可能会卡在虚拟机的瓶颈上,
因此作为java程序员,我们应该懂得虚拟机的运行原理,写出最适合虚拟机运行的代码,那你的代码就nb了