快捷搜索:  as

什么是jvm?你很清楚地了解它吗?

在Java中引入了虚拟机的观点,即在机械和编译法度榜样之间加入了一层抽象的虚拟的机械。

这台虚拟的机械在任何平台上都供给给编译法度榜样一个的合营的接口。编译法度榜样只必要面向

虚拟机,天生虚拟性能够理解的代码,然后由说冥器来将虚拟机代码转换为特定系统的机

器码履行。在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode),它不面向任何

特定的处置惩罚器,只面向虚拟机。

每一种平台的说冥器是不合的,然则实现的虚拟机是相同的。Java源法度榜样颠末编译器编译

后变成字节码,字节码由虚拟机解释履行,虚拟机将每一条要履行的字节码送给说冥器,

说冥器将其翻译成特定机械上的机械码,然后在特定的机械上运行。

可以说,Java虚拟机是Java说话的根基。它是Java技巧的紧张组成部分。Java虚拟机是一

个抽象的谋略机,和实际的谋略机一样,它具有一个指令集并应用不合的存储区域。它负

责履行指令,还要治理数据、内存和寄存器。Java说冥器认真将字节代码翻译成特定机械

的机械代码。Java是一种简单的说话。它用到的观点不多,而且多为法度榜样员所认识。假如

你是一名法度榜样员,掌握Java对你来说是轻而易举的事。纵然你没有学过任何编程说话,学

习Java也要比进修C++要轻易的多。

因为Java最初是为节制电子产品设计的,是以它必须简单清楚明了。为了包管这种简单性,

Java去掉落了C++中许多繁杂的、冗余的、有二义性的观点,例如操作符重载、多承袭、数

据类型自动转换等。为了将法度榜样员从繁杂的内存治理的包袱中解脱出来,同时也是为了减

少差错,Java应用了自动内存垃圾网络机制,法度榜样员只要在必要的时刻申请即可,不必要

开释,而由Java自己来网络、开释内存中的无用的块。

与C++比拟,Java有着更强的面向工具特点,是一种对照纯挚的面向工具说话。一样平常我们

应用的一些所谓的面向工具的编程说话,如C++,Object Pascal等,实际上都是一种混杂

型的说话,即在历程式的说话中加上面向工具的扩展。在Java中,险些万物皆工具,就连

一些基础数据类型,如整型、字符型、浮点型等,在Java中都可以作为工具处置惩罚。Java的

面向工具特点险些可以与Smalltalk媲美,然则着实用于散播式谋略情况的特点却远远超

过了Smalltalk。

Java是一种支持散播式操作的法度榜样设计说话。应用Java供给的URL类,用户可以象造访本

地文件一样造访收集上的工具,应用异常方便。在客户机/办事器的模式下,Java还可以

将运算从办事器端分散到客户端,前进系统的效率,避免了办事器的瓶颈制约。Java的网

络类库支持散播式的编程。Socket类供给靠得住的流式收集的连接,支持TCP/IP协议。经由过程

编写协议句柄,法度榜样员还可以扩充Java支持的协议聚拢。

Java供给异常有效的安然节制。因为Java利用于收集法度榜样的开拓,因而安然性变的至关重

要。由于Java小法度榜样必要下载到客户端解释履行,以是,假如没有安然节制,就会给一些

收集黑客以可乘之机,这对用户来说是异常危险的。所幸的是,Java的安然机制可以有效

的防止病毒法度榜样的孕育发生、下载法度榜样对本地文件系统的破坏,以及收集黑客偷取密码和入侵

Java是一种异常壮实的说话。由于在Java中应用了以下手段:

不支持指针。在C++法度榜样中,指针的差错应用平日的法度榜样中BUG的首恶。在Java中彻底去掉落

了指针,杜绝了内存的不法造访,从而包管了法度榜样的靠得住性。

强类型说话。

自动内存垃圾网络机制。Java自动网络无用的内存单元,进而防止了因为内存透露导致的

动态内存分配问题。

完善的非常处置惩罚机制,既简化了差错处置惩罚义务和规复,也增添了法度榜样的可读性。

Java具有异常好的平台无关性和可移植性。由于Java最初是为对电子产品编程而设计的,

以是它具有完美的平台无关性。它应用一种与平台无关的代码──字节码,而不是平日的

特定机械上的机械码,由平台上的Java虚拟机中的Java说冥器解释履行。Java虚拟机是免

费的,在许多平台上都有。

Java供给了优越的可移植性。应用Java作为编程说话,只要进行一次法度榜样开拓事情,所开

发的法度榜样不必要颠末任何篡改,便能在各类平台上运行。Java应用两种措施使Java的利用

法度榜样不依附与详细的系统:

采纳基于国际标准的数据类型。Java的原始数据类型在任何机械上都是一样的,例如整型

老是32位,长整型老是64位等。

供给了一个用于造访底层操作系统功能的可扩展类库。

Java是一种高机能的说话。“鱼与熊掌弗成兼得”,平日,壮实性、安然性、平台无关性

、可移植性等方面的前进老是要以就义机能为价值的。Java也不例外,Java的内存治理增

加了运行时系统的繁杂性,由于Java运行时系统必须内嵌一个内存治理模块;同样,Java

法度榜样的解释履行的效率也要低于直接履行编译后的源码的效率。然则Java采纳了一些很好

的步伐来增补这些机能上的差距:

天生高效的字节码。Java字节码的设计充分斟酌了机能的身分,字节码的款式简单,解释

器可以天生高效的机械码。

供给了即时编译和嵌入C代码的可选步伐。即时编译是指在运行时把字节码编译成机械码

支持多线程。Java供给了对多线程的说话级的接口,而且Java情况本身便是多线程的。

Java对多线程有优越的支持。多线程技巧可以前进法度榜样履行的并发度,前进图形用户界面

的交互机能。Java供给了说话内置的多线程节制,简化了多线程利用法度榜样的开拓,还支持

线程的同步节制。

Java是一种动态的说话。动态特点是面向工具特点的一个延伸,它使得法度榜样能够适应赓续

变更的履行情况。Java的动态性主要表现在以下几个方面:

Java的类有运行时的表示,这样,纵然在运行时候,法度榜样也能辨别类之间的关系和类型信

息,可以动态的从本地或网上把一个类链接到运行系统中去。

后期联编。Java的类在运行历程中动态的装载,是以,Java可以在散播式的情况中动态的

掩护利用法度榜样和Java类库之间的同等性。当类库进级后,利用法度榜样无需从新编译,也一样

可以使用新类库中新增的功能。

支持动态数据类型和动态协议。经由过程编写协议句柄,Java可以支持新的、自定义的传输协

议,编写内容句柄,可以支持新的数据类型。

至于利用,就不必说了!

您可能还会对下面的文章感兴趣: