Java虚拟机

跨平台的含义
Java的跨平台是“一次编译,到处运行”。Java在编译的时候没有编译成指定CPU类型的汇编代码,也没有和具体操作系统的系统调用相关联,所以编译出来的结果是和CPU,操作系统都不相关的。Java编译出来的是一种字节码,这种字节码必须在Java的虚拟机上才能运行,Java虚拟机会屏蔽不同操作系统,CPU之间的差异。
C编译出来后,就是指定CPU类型的汇编代码,编译过程中肯定也要和具体操作系统的系统库相关连,所以做不到Java那种跨平台。但是,如果写的C代码,没有直接调用任何系统调用,这个代码在不同的平台下都能编译,也能运行。和Java的区别是,C要在不同平台上分别编译。
有些语言如JavaScript,Python等,他们是解释执行的,不存在编译过程,所以也能跨平台,前提是必须要有一个对应的解释器,PHP好像也是解释性的。
了解虚拟机
当用户量达到一定数量的时候,程序就很有可能出现各种问题(缓慢,死锁等)一般情况下,企业都会通过提升硬件配置的方法尝试解决问题,但对于运行在JVM 上的 java来说,如果不了解JVM的运行原理,单纯的提升硬件配置很有可能对问题的解决改善很小,甚至没有改善
Java技术体系
由SUN公司官方定义:
- Java程序设计语言
- 各种硬件平台上的Java虚拟机
- Class文件
- Java API类库
- 来自商业机构或开源社区的Java类库