标签:mac rpc 支持 模式 引用 结果 性能 替换 cpu
JVM(java虚拟机的发展史):
(1)Sun Classic
(2)Exact VM
(3)HotSpot虚拟机
实现跨平台性能的原理:
(1).我们都知道,java语言有个机制,就是不论是在哪个平台上编写的代码,在其他平台上都可以运行。一些语言却不行,比如在window平台下编写的语言在Linux系统下就无法运行,这个原因首先得从平台的机制说起。
我们所说的平台是由CPU和操作系统组成的,CPU的种类有很多,比如Inter,AMD等。这些不同品牌的CPU使用的指令集。而操作系统是充当用户和计算机之间交互的界面软件,不同的操作系统支持不同的CPU,严格意义上说是不同的操作系统支持不同CPU的指令集。例如 windows和liunx都支持Intel和AMD的复杂指令集,但并不支持PowerPC所使用的精简指令集,而早期的MAC电脑使用的是PowerPC处理器,所以也就无法在MAC下直接安装windows,直到05年MAC改用了Intel的CPU,才使在MAC下安装windows成为可能。但问题来了,原来的MAC 操作系统也只支持PowerPC,在Intel上也不能安装,怎么办?所以苹果公司也得重写自己的MAC操作系统以支持这种变化。最后总结下,我们要知道,不同的操作系统支持不同的CPU指令集,现在的windows,liunx,mac,solaris都支持Intel与AMD的CPU指令集。
(2).我们一般说语言跨平台是说编译后的文件跨平台,并不是源程序跨平台。一般来说特定编译器编译的程序只能在特定平台运行。而java编译器编译出来的文件并不是机器语言,而是基于Unicode的字节码文件(.class)。之后使用java虚拟机(jvm)将字节码文件翻译成特定平台下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。而这个过程中,我们编写的Java程序没有做任何改变,仅仅是通过JVM这一”中间层“,就能在不同平台上运行,真正实现了”一次编译,到处运行“的目的。所以,运行Java程序必须有JVM的支持,因为编译的结果不是机器码,必须要经过JVM的再次翻译才能执行。即使你将Java程序打包成可执行文件(例如 .exe),仍然需要JVM的支持。
标签:mac rpc 支持 模式 引用 结果 性能 替换 cpu
原文地址:http://www.cnblogs.com/zyc2250168439/p/7788892.html