当前位置:首页 » 编程语言 » java虚拟机视频

java虚拟机视频

发布时间: 2024-06-03 20:09:58

① 什么是java虚拟机

A:什么是JVM

JVM是java虚拟机(JVM Java Virtual Machine),java程序需要运行在虚拟机上,不同平台有自己的虚拟机,因此java语言可以跨平台.

B:什么是JRE

包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

JRE:JVM+类库。

C:什么是JDK (Java Development Kit Java 开发工具包)

JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。

其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等

JDK:JRE+JAVA的开发工具。

② java虚拟机的作用

定义:

Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一。

作用:

使用Java虚拟机是实现Java语言与平台的无关性的关键。

③ java中虚拟机该怎么用

第一,你如果安装的是jdk1.6.0.02这个安装包,那么你看看你的安装路径下面应该有两个文件夹,一个叫jdk1.6.0_22,一个叫jre6。
第二,java虚拟机在后面一个文件首桥并夹里面,也就是在名称为jre6的文件夹内。
第三,java虚拟机的应用:java虚拟机是用来编译运行java字节码文件的,如果你已经有需要运行的java字节码文件,那么只需要配置这个字节码文件的路径就可以了。下面介绍配置路径(classpath):
【1】,右键点击我的电脑,点击属性,选择高级,你在里面可以看到“环境变量”的按钮,点击它。
【2】,在打开的界面可以看到两个列表框,在下面的那个列表框“系统变量”下面,你找“消告变量”那一列看看有没有classpath这个字段,如果有就左键选中,点击编辑,在打开的输入框的最左边输入你的java字节码文件的全路径,最后用分号(英文的分号)结束。如果没有就新建个classpath,把你的java字节码文件的全路径输入进去,用分号结束就ok,算是路径配置成功了。
【3】,最后就是运行你的java字节码文件了。
点击开始,运行,输入cmd跳转到命令提示符界面。假如你的java字节码文件在E:\javatest下面,名字叫Test.class
那你先输入“E:”然后回车,然后再输入“cd javatest”回车,然后输入“java Test”者迹回车,就可以看到你的java字节码文件的运行结果了。
我有一篇PPT啊 那里有详细的记载啊 谢谢 才内啊

④ 怎么学习java语言

java Netty实战课程java高性能分布式RPC教程课程 免费下载

链接:https://pan..com/s/1MpUM62h4nvHnUGMan-R6YA

提取码:kvvv

Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程

⑤ java的发展历史

一、Java语言的发展历史

Sun的Java语言开发小组成立于1991年,其目的是开拓消费类电子产品市场,例如:交互式电视,烤面包箱等。Sun内部人员把这个项目称为Green,那时World Wide Web还在图纸上呢。该小组的领导人是James Gosling,41岁。于1984年加盟Sun Microsystem公司,以前在一家IBM研究机构工作。他是Sun NeWs窗口系统的总设计师,虽然当时NeWs在技术上非常成功,但在商业上却完全失败,没有了Java那么好的运气。Gosling是一悔兄位非常杰出的程序员,GOSMACS也是Gosling写的,它是第一个用C实现的EMACS的文本编辑器。

在研究开发过程中,Gosling 深刻体会到消费类电子产品和工作站产品的开发哲学之间差异:消费类电子产品要求高可靠、费用低、裂仿标准化、使用简单,而工作站用户要求强大的计算能力,而不在此乎价格以及操作的复杂性。消费类电子产品用户并不关心CPU的型号,也不欣赏专用昂贵的RISC处理器,他们需要建立在一个标准基础之上,一系列可选的方案,从8086-80586都可以上。

从C++开始 为了使整个系统与平台无关,Gosling首先从改写C++编译器着手。但是Gosling在改写过程中感到仅C++是无法满足需要的,于是在1991年6月份开始准备开发一个新的语言,那么给它起一个什么名字呢? Gosling回首向窗外望去,看见一棵老橡树,于是建一个目录叫Oak,这就是Java语言的前身。(后来发现Oak已是Sun公司的另一个语言的注册商标,才改名为Java,即爪哇,太平洋上一个盛产咖啡的岛屿的名字)。

Gosling在开始写Java时,并不局限于扩充语言机制本身,更注重于语言所运行软硬件环境,他要建立一个系统,这个系统运行于一个巨大的、分布的、异质的网络环境中,完成各电子设备之间的通讯与协同工作。Gosling在设计中采用了虚机器码(Virtual Machine Code)方式。即Java语言编译后产生的是虚机器码,虚机器码运行在一个解释器上,每一个操作系统均有一个解释器,这样一来,Java就成了平台无关语言。这和Gosling设计的Sun NeWs窗口系统有着相同的技术味道,在NeWs中用户界面统一用Postscript描述,不同的显示器有不同的Postscript解释器,这样便保证了用户界面的良好的可移植性。

当Patrick Naughton加入该小组后,整个工作进展神速。Naughton也是Sun公司的技术骨干,曾经是Open Windows的项目的负责人。经过17个月的奋战,整个系统胜利完成。它是由一个操作系统,一种语言(Java),一个用户界面,一个新的硬件平台,三块专用芯片的构成。而通常情况下,这样的项碧源袭目在Sun公司要75个人干三年。项目完成后,在Sun公司内部做一次展示和鉴定,观众的反应是: 在各方面都采用了崭新的、非常大胆的技术。许多参观者对Java留下了非常深刻的印象,特别得到Sun的二位领导人Scott McNealy和Bill Joy的关注,但Java的前途未卜。

初战告败

接着,Java项目的工作人员开始做应用规划,着手成立一家公司,从事消费类电子产品的开发,这家公司就是FirstPerson Inc.。公司的第一个项目就是Time-Warner的投标项目,顶置盒式操作系统和请求式电视技术。虽然FirstPerson Inc.在技术毫不逊色于任何公司,但是由于经营策略上的失误,败给了SGI。FirstPerson一直到1994年初仍在坚持开发专用的顶置盒式操作系统,但实践证明,这个市场尚未成熟。例如:好几家交互式有线电视网的实验都以失败告终。

Naughton立即认识到研究方向应该转移。在Naughton的努力下,研究开始向在线服务,CD-ROM和基于网络的台式机方向转移。最后FirstPerson解散,一部分人去了Sun Interactive开发数字视频数据服务器,而另一部分开始把Java用于基于网络的台式机系统。

Java语言的转折点

到了1994年,WWW已如火如荼的发展起来。Gosling意识到WWW需要一个中性的浏览器,它不依赖于任何硬件平台和软件平台。它应是一种实时性较高,可靠安全,有交互功能的浏览器。于是Gosling决定用Java开发一个新的Web浏览器。

二、Java发展史

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。

Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显着优势和广阔前景。

三、Java语言的发展历史

任职于太阳微系统的詹姆斯•高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。

由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。

Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Java语言的发展历史分为以下几个阶段:1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言。

希望用于控制嵌入在有线电视交换盒、PDA等的微处理器1994年将Oak语言更名为Java1998年JDK1.2时,更名为Java 2 Platform分为标准版J2SE,企业版J2EE,微型版J2MEJava 既安全、可移植,又可跨平台,而且人们发现它能够解决Inter 上的大型应用问题Inter使Java成为网上最流行的编程语言Java对Inter的影响也意义深远B/S的兴起 & C/S的没落。

四、JAVA的发展历史是什么情况

一、JDK前传

在这个世界上,熟悉Java历史的人非常多,如果要问一个人Java是从哪年诞生的,也许大多数人都会回答是1995年(这个非常好记,因为微软的Windows95也是在这一年发布的)。但事实上Java早在上个世纪90年代初就开始酝酿了。

1991年4月,Sun公司的James Gosling领导的绿色计划(Green Project)开始着力发展一种分布式系统结构,使其能够在各种消费性电子产品上运行。而Green项目组的成员一开始使用C++语言来完成这个项目, 由于Green项目组的成员都具有C++背景,所以他们首先把目光锁定了C++编译器,Gosling首先改写了C++编译器,但很快他就感到C++的很 多不足,需要研发一种新的语言Java来替代它,一杯飘香的咖啡成为了它的标志。

在17 个月后,整个系统完成了,这个系统是更注重机顶盒式的操作系统,不过在当时市场不成熟的情况下,他们的项目没有获得成功,但Java语言却得到了Sun总裁McNealy的赏识。

直至 1994年下半年,由于Inter的迅猛发展和环球信息网 WWW的快速增长,第一个全球信息网络浏览器Mosaic诞生了;此时,工业界对适合在网络异构环境下使用的语言有一种非常急迫的需求;Games Gosling决定改变绿色计划的发展方向,他们对Oak进行了小规模的改造,就这样,Java在1995年的3月23日诞生了!Java的诞生标志着互 联网时代的开始,它能够被应用在全球信息网络的平台上编写互动性及强的Applet程序,而1995年的Applet无疑能给人们无穷的视觉和脑力震荡。 我们姑且将Java的这段历史称为Java前传吧。

其实Java的诞生颇有那么一股“有心栽花花不开,无心插柳柳成阴”的味道。就象当年Unix和它的前身MULTICS系统一样。

二、JDK的幼年时期(1995~1998)

Sun继Green项目后又经过了几年的研究,终于在1995年5月23日在SunWorldྛ上正式发布Java和HotJava浏览器。在同 年,有很多公司先后获得了Java许可证,如Netscape在1995年8月,Oracle在1995年10月分别获得了Java许可证。Sun在 1995年发布第一个Java版本后,于1996年1月宣布成立新的业务部门──JavaSoft部,这个部分主要负责开发、销售并支持基于Java技术 的产品,由AlanBaratz先生任总裁。

在1995年Sun虽然推出了Java,但这只是一种语言,而要想开发复杂的应用程 序,必须要有一个的强大的开发库支持还行。因此,Sun在1996年1月23日发布了JDK1.0。这个版本包括了两部分:运行环境(即JRE)和开发环 境(即JDK)。在运行环境中包括了核心API、集成API,用户界面API,发布技术,Java虚拟机(JVM)五个部分。而开发环境还包括了编译 Java程序的编译器(即javac)。在JDK1.0时代,JDK除了AWT(一种用于开发图形用户界面的API)外,其它的库并不完整。

Sun在推出JDK1.0后,紧跟着,Sun在1997年2月18日发布了JDK1.1。JDK1.1相对于JDK1.0最大的改进就是为JVM增加了 JIT(即时编译)编译器。JIT和传统的编译器不同,传统的编译器是编译一条,运行完后再将其扔掉,而JIT会将经常用到的指令保存在内容中,在下次调 用时就不需要再编译了。这样JDK在效率上有了非常大的提升。

Sun在推出JDK1.1后,接着又推出了数个JDK1.x版本。自从Sun推出Java后,JDK的下载量不断彪升,在1997年,JDK的下载量突破了220,000,而在1998年,JDK的下载量已经超过了2,000,000。

五、Java语言的发展历史

Java语言的历史

Sun的Java语言开发小组成立于1991年,其目的是开拓消费类电子产品市场,例如:交互式电视,烤面包箱等。Sun内部人员把这个项目称为Green,那时World Wide Web还在图纸上呢。该小组的领导人是James Gosling,41岁。于1984年加盟Sun Microsystem公司,以前在一家IBM研究机构工作。他是Sun NeWs窗口系统的总设计师,虽然当时NeWs在技术上非常成功,但在商业上却完全失败,没有了Java那么好的运气。Gosling是一位非常杰出的程序员,GOSMACS也是Gosling写的,它是第一个用C实现的EMACS的文本编辑器。

在研究开发过程中,Gosling 深刻体会到消费类电子产品和工作站产品的开发哲学之间差异:消费类电子产品要求高可靠、费用低、标准化、使用简单,而工作站用户要求强大的计算能力,而不在此乎价格以及操作的复杂性。消费类电子产品用户并不关心CPU的型号,也不欣赏专用昂贵的RISC处理器,他们需要建立在一个标准基础之上,一系列可选的方案,从8086-80586都可以上。

从C++开始 为了使整个系统与平台无关,Gosling首先从改写C++编译器着手。但是Gosling在改写过程中感到仅C++是无法满足需要的,于是在1991年6月份开始准备开发一个新的语言,那么给它起一个什么名字呢? Gosling回首向窗外望去,看见一棵老橡树,于是建一个目录叫Oak,这就是Java语言的前身。(后来发现Oak已是Sun公司的另一个语言的注册商标,才改名为Java,即爪哇,太平洋上一个盛产咖啡的岛屿的名字)。

Gosling在开始写Java时,并不局限于扩充语言机制本身,更注重于语言所运行软硬件环境,他要建立一个系统,这个系统运行于一个巨大的、分布的、异质的网络环境中,完成各电子设备之间的通讯与协同工作。Gosling在设计中采用了虚机器码(Virtual Machine Code)方式。即Java语言编译后产生的是虚机器码,虚机器码运行在一个解释器上,每一个操作系统均有一个解释器,这样一来,Java就成了平台无关语言。这和Gosling设计的Sun NeWs窗口系统有着相同的技术味道,在NeWs中用户界面统一用Postscript描述,不同的显示器有不同的Postscript解释器,这样便保证了用户界面的良好的可移植性。

当Patrick Naughton加入该小组后,整个工作进展神速。Naughton也是Sun公司的技术骨干,曾经是Open Windows的项目的负责人。经过17个月的奋战,整个系统胜利完成。它是由一个操作系统,一种语言(Java),一个用户界面,一个新的硬件平台,三块专用芯片的构成。而通常情况下,这样的项目在Sun公司要75个人干三年。项目完成后,在Sun公司内部做一次展示和鉴定,观众的反应是: 在各方面都采用了崭新的、非常大胆的技术。许多参观者对Java留下了非常深刻的印象,特别得到Sun的二位领导人Scott McNealy和Bill Joy的关注,但Java的前途未卜。

初战告败

接着,Java项目的工作人员开始做应用规划,着手成立一家公司,从事消费类电子产品的开发,这家公司就是FirstPerson Inc.。公司的第一个项目就是Time-Warner的投标项目,顶置盒式操作系统和请求式电视技术。虽然FirstPerson Inc.在技术毫不逊色于任何公司,但是由于经营策略上的失误,败给了SGI。FirstPerson一直到1994年初仍在坚持开发专用的顶置盒式操作系统,但实践证明,这个市场尚未成熟。例如:好几家交互式有线电视网的实验都以失败告终。

Naughton立即认识到研究方向应该转移。在Naughton的努力下,研究开始向在线服务,CD-ROM和基于网络的台式机方向转移。最后FirstPerson解散,一部分人去了Sun Interactive开发数字视频数据服务器,而另一部分开始把Java用于基于网络的台式机系统。

Java语言的转折点

到了1994年,WWW已如火如荼的发展起来。Gosling意识到WWW需要一个中性的浏览器,它不依赖于任何硬件平台和软件平台。它应是一种实时性较高,可靠安全,有交互功能的浏览器。于是Gosling决定用Java开发一个新的Web浏览器。

六、Java发展史

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。

Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显着优势和广阔前景。

七、java的发展趋势

Java未来的应用前景,从历史来看,Java技术自1995年问世以来,在我国的应用和开发也得到了迅速普及,总体来看,这些应用主要集中于企业应用开发。

据有关单位调查显示,从开发领域的分布情况上看Web开发占了一半以上,为57.9%,JavaME移动或嵌入式应用占15%,C/S应用占11.7%,系统编程占15.4%。近30%的开发者用Java从事C/S应用或系统级应用的开发。

在桌面应用上,尽管Java在桌面GUI方面尚有不尽如人意之处,但仍然有很多开发者用来开发运行在多种操作系统平台上的桌面应用。具体应用在如下几个领域:1.行业和企业信息化由于Sun、IBM、Oracle、BEA等国际厂商相继推出各种基于Java技术的应用服务器以及各种应用软件,带动了Java在金融、电信、制造等领域日益广泛的应用。

如清华大学计算机系利用Java、XML和Web技术研制开发了多个软件平台,东方科技的TongWeb、金碟的Apusic、中创的Inforweb等J2EE应用服务器及和佳ERP和宝信ERP等ERP产品,已在许多企业得到应用。2.电子政务及办公自动化东方科技、金碟、中创等开发的J2EE应用服务器在电子政务及办公自动化中也得到应用:如金碟的Apusic在民政部、广东省市工商局应用;东软电子政务架构EAP平台在社会保险、公检法、税务系统得到应用;中创的Inforweb等Infor系列中间件产品在国家海事局、山东省 *** 及中国建设银行、民生银行等金融系统应用;无锡永中科技基于Java平台开发的国产化集成办公软件“永中Office”也已在一些省市 *** 部门得到应用。

3.嵌入式设备及消费类电子产品无线手持设备、通信终端、医疗设备、信息家电(如数字电视、机顶盒、电冰箱)、汽车电子设备等是今年以来比较热门的Java应用领域。在这方面的应用有中国联通CDMA1X网络中基于Java技术的无线数据增值服务——UniJa。

4.辅助教学在辅助教学方面,东南大学与中兴通讯公司开发了远程教学系统,用于本地网上教学、课后学习和异地远程教育,清华大学用Java进行了“计算机软件基础课”教学改革,分析研究Java教学软件BlueJ的汉化方案,电子科技大学应用JavaRMI技术进行远程教育,西安电力高等专科学校采用Java技术,开发了交互式电站仿真系统,实现电站锅炉仿真、锅炉膛火焰仿真,为实现网上仿真进行有益探索。就Java程序设计语言自身的发展前景来讲,定会与互联网的发展需求邦定,具体体现在以下几个方面:1)所有面向对象的应用开发。

2)软件工程中需求分析、系统设计、开发实现和维护。3)中小型多媒体系统设计与实现。

4)消息传输媒体。5)分布计算交易管理平台应用。

6)Inter的系统管理功能模块的设计,包括Web页面的动态设计、网站信息提供管理和交互操作设计等。7)Inter(企业内部网)上完全基于Java和Web技术的应用开发。

8)Web服务器后端与各类数据库连接管理器(队列、缓冲池)。9)安全扫描系统(包括网络安全扫描、数据库安全扫描、用户安全扫描等)。

10)网络/应用管理系统。11)其他应用类型的程序。

Java语言的应用推动着网络应用朝着更加高效、便捷、实用的方向发展,并最终成为IT产业极力推动的一项技术。我国对于Java语言的应用多放在企业互联网作用方面,更加重视网络应用过程中无可 *** Java/J2EE技术,并将该技术作为应用程序开发过程中的首选。

无论在移动设备、消费品,还是嵌入式设备中,Java语言均得到了广泛的应用,甚至延伸到了IC领域。未来Java语言将在嵌入式及移动设备中得到进一步的拓展,在各种电子信息产品中都有Java的应用。

特别是移动设备领域,Java语言的应用效果将更加显着,并将定位由系统的通信终端转变为个人信息端。目前,Sun公司已将Java核心源代码公开,这将为开发人员进一步开发应用Java语言提供有力的条件,并为推动Java的进一步发展,维护其技术兼容性奠定有力的基础。

Java开源将会吸引更多程序人员的加入,并将进一步完善Java语言,并最终 *** 整个IT行业的发展。总之,Java语言作为一种发展迅速的语言程序,已经深刻揭示了程序编写过程的精髓,并借助其严谨的结构与间接的编写过程,为Java语言的未来发展提供了重要保证。

如今,有关Java语言方面的研究正朝着服务器端优势应用系统方面延伸,相信未来Java语言必将具有更加广泛的应用,也必将会给IT行业的发展起到更有力的促进作用。

⑥ JAVA虚拟机是什么意思

Java虚拟机(Java Virtual Machine,简称JVM)是一种假想的计算机。从结构上看,它由抽象的指令集、寄存器组、类文件格式规定、堆栈、内存垃圾收集器和存储区六个部件组成。指令集采用与平合无关的字节码形式,寄存器组中包含程序计数器、堆栈指针、运行环境指针和变量指针,类文件也与平台无关,堆栈用来传递参数和返回运行结果,垃圾收集器收集不再使用的内存片段,存储区则用来存放字节码。JVM仅仅规定部件的功能和规格。虽然这些功能和规格是统一的,但是并没有规定这此部件的具体实现技术,就是说,可以用任何一种技术来实现。

Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode),它不面向任何特定的处理器,只面向虚拟机。

每一种平台的解释器是不同的,但是实现的虚拟机是相同的。Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。

可以说,Java虚拟机是Java语言的基础。它是Java技术的重要组成部分。Java虚拟机是一个抽象的计算机,和实际的计算机一样,它具有一个指令集并使用不同的存储区域。它负责执行指令,还要管理数据、内存和寄存器。Java解释器负责将字节代码翻译成特定机器的机器代码。Java是一种简单的语言。它用到的概念不多,而且多为程序员所熟悉。如果你是一名程序员,掌握Java对你来说是易如反掌的事。即使你没有学过任何编程语言,学习Java也要比学习C++要容易的多。

⑦ 什么是Java虚拟机

虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。

Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

这种解释应该算是正确的,但是只描述了虚拟机的外部行为和功能,并没有针对内部原理做出说明。一般情况下我们不需要知道虚拟机的运行原理,只要专注写java代码就可以了,这也正是虚拟机之所以存在的原因--屏蔽底层操作系统平台的不同并且减少基于原生语言开发的复杂性,使java这门语言能够跨各种平台(只要虚拟机厂商在特定平台上实现了虚拟机),并且简单易用。这些都是虚拟机的外部特性,但是从这些信息来解释虚拟机,未免太笼统了,无法让我们知道内部原理。


从进程的角度解释JVM


让我们尝试从操作系统的层面来理解虚拟机。我们知道,虚拟机是运行在操作系统之中的,那么什么东西才能在操作系统中运行呢?当然是进程,因为进程是操作系统中的执行单位。可以这样理解,当它在运行的时候,它就是一个操作系统中的进程实例,当它没有在运行时(作为可执行文件存放于文件系统中),可以把它叫做程序。

对命令行比较熟悉的同学,都知道其实一个命令对应一个可执行的二进制文件,当敲下这个命令并且回车后,就会创建一个进程,加载对应的可执行文件到进程的地址空间中,并且执行其中的指令。下面对比C语言和Java语言的HelloWorld程序来说明问题。

首先编写C语言版的HelloWorld程序。

总结

写到这里,基本上关于我对java虚拟机的理解就写完了。这篇文章的主题虽然是深入理解Java虚拟机,但是你可能感觉一点也不“深入”,也只是泛泛而谈。我也有这样的感觉。限于自己水平有限,也只能这样了,要是想深入理解java虚拟机,强烈建议读一下三本书:

《深入Java虚拟机》

《深入理解Java虚拟机JVM高级特性与最佳实践》

《Java虚拟机规范》

其实我也读过这几本书,但是它们对虚拟机的解释也是基于一个外部模型,而没有深入剖析虚拟机内部的实现原理。虚拟机是一个大而复杂的东西,实现虚拟机的人都是大牛级别的,如果不是参与过虚拟机的实现,应该很少有人能把它参透。本专栏后面的一些文章也参考了这三本书, 虽然讲解Java语法的书不计其数, 但是深入讲解虚拟机的书, 目前为止我就见过这三本,并且网上的资料也不是很多。

最后做一个总结:

1 虚拟机并不神秘,在操作系统的角度看来,它只是一个普通进程。

2 这个叫做虚拟机的进程比较特殊,它能够加载我们编写的class文件。如果把JVM比作一个人,那么class文件就是我们吃的食物。

3 加载class文件的是一个叫做类加载器的子系统。就好比我们的嘴巴,把食物吃到肚子里。

4 虚拟机中的执行引擎用来执行class文件中的字节码指令。就好比我们的肠胃,对吃进去的食物进行消化。

5 虚拟机在执行过程中,要分配内存创建对象。当这些对象过时无用了,必须要自动清理这些无用的对象。清理对象回收内存的任务由垃圾收集器负责。就好比人吃进去的食物,在消化之后,必须把废物排出体外,腾出空间可以在下次饿的时候吃饭并消化食物。

(7)java虚拟机视频扩展阅读:

关于JAVA虚拟机的参数说明如下:

1、运行class文件

执行带main方法的class文件,Java虚拟机[3]命令参数行为:

java <CLASS文件名>

注意:CLASS文件名不要带文件后缀.class

例如:

java Test

如果执行的class文件是带包的,即在类文件中使用了:

package <;包名>

那应该在包的基路径下执行,Java虚拟机命令行参数:

java <;包名>.CLASS文件名

例如:

PackageTest.java中,其包名为:com.ee2ee.test,对应的语句为:

package com.ee2ee.test;

PackageTest.java及编译后的class文件PackageTest.class的存放目录如下:

classes

|__com

|__ee2ee

|__test

|__PackageTest.java

|__PackageTest.class

要运行PackageTest.class,应在classes目录下执行:

java com.ee2ee.test.PackageTest

2、运行jar文件中的class

原理和运行class文件一样,只需加上参数-cp <jar文件名>;即可。

例如:执行test.jar中的类com.ee2ee.test.PackageTest,命令行如下:

java -cp test.jar com.ee2ee.test.PackageTest

3、显示JDK版本信息

当一台机器上有多个jdk版本时,需要知道当前使用的是那个版本的jdk,使用参数-version即可知道其版本,命令行为:

java -version

4、增加虚拟机可以使用的最大内存

Java虚拟机可使用的最大内存是有限制的,缺省值通常为64MB或128MB。

如果一个应用程序为了提高性能而把数据加载内存中而占用较大的内存,比如超过了默认的最大值128MB,需要加大java虚拟机可使用的最大内存,否则会出现Out of Memory的异常。启动java时,需要使用如下两个参数:

-Xms java虚拟机初始化时使用的内存大小

-Xmx java虚拟机可以使用的最大内存

以上两个命令行参数中设置的size,可以带单位,例如:256m表示256MB

举例说明:

java -Xms128m -Xmx256m ...

表示Java虚拟机初始化时使用的内存为128MB,可使用的最大内存为256MB。

对于tomcat,可以修改其脚本catalina. sh(Unix平台)或catalina.bat(Windows平台),设置变量JAVA_OPTS即可,例如:

JAVA_OPTS='-Xms128m -Xmx256m'



热点内容
aspcms图片上传 发布:2024-11-27 06:32:20 浏览:415
qq空间本地上传的音乐 发布:2024-11-27 06:14:50 浏览:920
办公室云电脑服务器 发布:2024-11-27 06:11:45 浏览:26
有趣的php 发布:2024-11-27 05:58:13 浏览:960
php网页开发 发布:2024-11-27 05:56:09 浏览:956
手机密码锁忘记怎么办 发布:2024-11-27 05:54:35 浏览:153
安卓怎么获取联系人位置 发布:2024-11-27 05:53:58 浏览:49
最新云呼服务器地址 发布:2024-11-27 05:49:35 浏览:944
我的世界服务器玩家 发布:2024-11-27 05:49:20 浏览:320
python正则compile 发布:2024-11-27 05:19:05 浏览:29