二.Java怎样实现一次编译到处运行(平台无关性) 1.java平台无关性原理 Java源码首先被编译成字节码,再由不同平台的JVM进行解析,JAVA语言在不同的平台上运行时不需要进行重新编译,Java虚拟机在执行字节码的时候,把字节码转换成具体平台上的机器指令. 2.为什么JVM不直接将源码进行编译成机器码去执行 (1)准备工作太过繁琐 JVM每次进行编译的时候都会对源代码进行各种检查,纠错 (2)兼容性 JVM不仅仅可以给java语言编译成的class文件进行解释,还可以对任何语言,只要是解…
JVM(二):Java中的语法糖 上文讲到在语义分析中会对Java中的语法糖进行解糖操作,因此本文就主要讲述一下Java中有哪些语法糖,每个语法糖在解糖过后的原始代码,以及这些语法糖背后的逻辑. 语法糖 语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用.通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会.…
Java.C++都属于高级语言,而计算机能认识执行的只是机器码(即二进制),所以高级语言都必须经过直接或间接的转换成汇编以后,才能运行: 对于C/C++这类高级计算机语言,它们的编译器(例如Unix下的CC命令.Windows下的CL命令)都是可以把源码直接编译成计算机可以认识的机器码,如exe.dll之类的文件,然后直接运行 而Java语言的跨平台性是它最大的特点之一,这就达成了Java程序平台无头性,因此也有一定的牺牲就是多了一个中间过程,先将Java源程序编译成class文件[字节码形式]…
1.java语言的特点: 简单的:面向对象的:跨平台(操作系统)的(一次编译,到处运行):高性能的: 2.类名的首字母大写,方法小写: 3.历史: java2(即java),为什么加个2呢?1998年12月,SUN公司发布了JDK1.2,开始使用“Java 2” 这一名称,目前我们已经很少使用JDK1.1版本,所以我们所说的Java都是指Java2. java2包括: Java Card (应用在IC卡) J2ME (micro edition,精简版)(嵌入式系统开发设计) J2SE (sta…
一.平台无关性的好处 Java技术在网络环境下非常有用,其中一个关键理由是,用Java创建的可执行二进制程序,能够不加改变地运行于多个平台. 这样的平台无关性随之带来许多的好处.这将极大地减轻系统管理员的工作:此外Java的平台无关性在嵌入式设备环境下也非常有用:从开发者的观点看,Java能够减少开发和在多个平台上部署应用程序的成本和时间. Java的平台无关性自然不言而喻.对于我们开发者来说,可能对下面的Java是如何实现支持平台无关的方法或原理更加感兴趣. 二.Java如何实现平台无关的支持…
相信对于很多Java开发来说,在刚刚接触Java语言的时候,就听说过Java是一门跨平台的语言,Java是平台无关性的,这也是Java语言可以迅速崛起并风光无限的一个重要原因.那么,到底什么是平台无关性?Java又是如何实现平台无关性的呢?本文就来简单介绍一下. 什么是平台无关性 平台无关性就是一种语言在计算机上的运行不受平台的约束,一次编译,到处执行(Write Once ,Run Anywhere). 也就是说,用Java创建的可执行二进制程序,能够不加改变的运行于多个平台. 平台无关性好处…
Java的体系结构对平台无关的支持 Java平台 Java的体系结构通过几种途径支持Java程序的平台无关性,其中主要是通过Java平台自己.Java平台扮演一个运行时Java程序与其下的硬件和操作系统之间的缓冲角色.Java程序被编译为可运行于Java虚拟机中的二进制程序,并且假定Java API的class文件在运行时都是可用的.接着虚拟机运行程序,那些API则给予程序访问底层计算机资源的能力.无论Java程序被部署到何处,它只需要与Java平台交互,而不需要担心底层的硬件和操作系统.因此,…
概述 代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步. --<深入理解Java虚拟机>(从这里可以看到,字节码是一种文件格式) 我们都知道计算机只认识 0 和 1,所以我们所写的程序也需要经过编译器翻译成由 0 和 1 构成的二进制格式才能由计算机执行. 如今的计算机依然只能识别 0 和 1,但是由于虚拟机的出现,我们可以不需要将编写好程序直接翻译成 0 和 1,只要翻译成虚拟机能够识别的格式,接着再交给虚拟机去解释执行这种格式的文件即可. 很多人都可…
转载自:http://www.cnblogs.com/Y/archive/2011/03/22/JavaVM_Learning_Chapter2_Platform_Independence.html 为什么要平台无关? 废话!当然是方便了,你随手写一个Hello,world!,地球上所有的设备都能显示出来,那多牛B!写hello,world! 你可能觉得没有用,那要是写一句“今年过节不收礼...”,钱是不是就开始掉下来了? Java体系结构对平台(操作系统)无关的支持 这部分是本章中我最觉得有用…
Java 在刚刚诞生之初就提出过一个非常著名的口号:"一次编写,到处运行", 这句话充分表达了软件开发人员对冲破平台界限的渴望 在竞争激烈的 IT 领域,各种不同的硬件体系结构和不同的操作系统肯定会长期并存发展. "平台无关性" 的理想最终实现在操作系统的应用层上: Sun 公司以及其他虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码,从而实现了程序的"一次编写,到处运行". 各种不同平台的…