神刀安全网

Java虚拟机标准(第10版)第一章(节选)翻译与评注

英文原文链接:https://docs.oracle.com/javase/specs/jvms/se10/html/jvms-1.html

评注是括在鱼尾号之间的文字,其余均为翻译


Java虚拟机是Java平台的基石,这种技术实现了诸如跨平台、生成的编译代码简短以及保护用户免受恶意程序攻击这些功能。

Java虚拟机是一个抽象计算机器【比如图灵机】,像真实的机器那样,它也有指令集,在运行的时候也会操作不同的内存区域。使用虚拟机来实现编程语言是相当常见的,最著名的虚拟机大概就是UCSD【University of California San Diego
】 Pascal的P-Code机器了。

Java虚拟机的第一个原型实现由Sun【发明Java的公司,后来被Oracle收购了】在有些像当代的个人数字助理(PDA)【类似于智能手机】的手持式设备上以软件模拟Java虚拟机指令集的方式完成,Oracle当前在移动设备、桌面计算机和服务器设备上模拟了Java虚拟机,但是Java虚拟机本身并不假设任何特定的实现技术、宿主硬件或者宿主操作系统。它并非一定要解释运行,它也可以被实现为把它的指令编译成CPU指令【提升性能】,用微代码【一种指令设计技术,一条机器指令对应若干微操作指令】实现或者直接固化到芯片当中。

Java虚拟机只知道一种特殊的二进制格式——class文件格式,除此之外,它对Java编程语言一无所知【JVM具有相对独立性】。class文件中包含有Java虚拟机指令(或者说字节码)和一个符号表【指常量池】,还有一些其他辅助信息【比如实现的接口、访问权限等】。

出于安全考虑,Java虚拟机对class文件中的代码施加了强语法和结构约束【二进制文件的结构通常都是比较严格的】,然而,任何能以class文件格式表达的功能性语言都可以在Java虚拟机上运行。被一种通用且机器无关的平台所吸引,其他语言的实现者可以把Java虚拟机看作他们语言的分发媒介【Scala,Groovy,Kotlin已经这么做了】。

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » Java虚拟机标准(第10版)第一章(节选)翻译与评注

分享到:更多 ()