[size=medium]
1.2 JVM
Jvm是Java平台的能力源泉,正是它完成了让Java能无视底层硬件和操作系统的幕后工作。它很小,却是维护世界和平,保护Java子民不被恶意代码踢馆的奥特曼。
Jvm是一个概念上的计算机,但像真正的计算机一样拥有自己的指令集,在运行时也会对各种内存空间进行操作。其实如果你不是火星人,就应该不会对使用虚拟机程序语言来执行感到大惊小怪,像UCSD Pascal的P-Code机就是这类虚拟机中最为著名的一个。
Sun完成了Jvm的初号机,用来在PDA之类的手持设备上运行Jvm的指令集。Oracle现在则在手机、台式机和服务器上跑Jvm,但这并不意味着Jvm会对硬件环境或者操作系统挑三拣四。Jvm不是一款神一样的模拟器,它只是撑起一座让Jvm的指令集和CPU的指令集沟通的桥梁。不过,也许某天你一觉醒来,Jvm的指令集与CPU的指令集就融为了一体。
有意思的是,其实Jvm是个Java盲,它只读得懂Java编译变成二进制之后的class文件。class文件包含着字节码,符号表,以及一些杂七杂八的信息。
为了安全起见,Jvm要求class文件里的字节码必须使用强类型和类型约束。不过,任何一种程序语言,只要有爱,是都可以生成能够通过Jvm质量认证的class文件。无论是哪种程序语言至上论者,只要也想试一试一次编译到处运行的禁果,就会发现Jvm就像是为那门语言量身订做的一样。[/size]
1.2 JVM
Jvm是Java平台的能力源泉,正是它完成了让Java能无视底层硬件和操作系统的幕后工作。它很小,却是维护世界和平,保护Java子民不被恶意代码踢馆的奥特曼。
Jvm是一个概念上的计算机,但像真正的计算机一样拥有自己的指令集,在运行时也会对各种内存空间进行操作。其实如果你不是火星人,就应该不会对使用虚拟机程序语言来执行感到大惊小怪,像UCSD Pascal的P-Code机就是这类虚拟机中最为著名的一个。
Sun完成了Jvm的初号机,用来在PDA之类的手持设备上运行Jvm的指令集。Oracle现在则在手机、台式机和服务器上跑Jvm,但这并不意味着Jvm会对硬件环境或者操作系统挑三拣四。Jvm不是一款神一样的模拟器,它只是撑起一座让Jvm的指令集和CPU的指令集沟通的桥梁。不过,也许某天你一觉醒来,Jvm的指令集与CPU的指令集就融为了一体。
有意思的是,其实Jvm是个Java盲,它只读得懂Java编译变成二进制之后的class文件。class文件包含着字节码,符号表,以及一些杂七杂八的信息。
为了安全起见,Jvm要求class文件里的字节码必须使用强类型和类型约束。不过,任何一种程序语言,只要有爱,是都可以生成能够通过Jvm质量认证的class文件。无论是哪种程序语言至上论者,只要也想试一试一次编译到处运行的禁果,就会发现Jvm就像是为那门语言量身订做的一样。[/size]