JVM(Java虚拟机)详解[Java编程]
本文“JVM(Java虚拟机)详解[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
大概有很多学习Java的朋友还不知道Java的运行原理、Java虚拟机是怎么工作的,本文将为你具体讲授(JVM)Java虚拟机.
在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可以支持新的、自定义的传输协议,编写内容句柄,可以支持新的数据范例.
以上是“JVM(Java虚拟机)详解[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |