Java相关知识

来源:互联网 发布:windows 重启电脑命令 编辑:程序博客网 时间:2024/05/22 14:14

JDK的开发环境工具

1、Java编译器(Javac.exe):将Java源代码文件(.java)转换成字节码文件(.class)。

2、Java解释器(Java.exe):用来执行javac编译成的字节码。

3、Java Applet浏览器(appletviewer.exe):执行HTML文件上的Java小程序的Java浏览器。

4、Java文档生成器(javadoc.exe):会使用Java源文件代码生成一组HTML格式的相关文件。

5、Java调试器(jdb.exe):是一个除错器,为java程序提供一个命令行调试环境,以便于对java解释的类进行除错。

 

Java虚拟机的性能

由于在当前主机操作系统上加上了Java虚拟机层,Java字节码执行速度目前要比本地机器慢10到20倍。速度问题可能是影响Java推广的唯一原因。影响Java字节码执行速度的原因很多:

(1)首先,验证过程要花费时间,读入的类要在运行时验证,而传统程序在程序编译时即完成验证工作。

(2)其次,Java指令都是字节码。由于大多数操作对象超过一个字节长,因此必须读多个字节码来取得操作符和不同操作数。

(3)再次,由于Java完全采用堆栈机理,运算操作都在堆栈上执行。而传统编译器在编译时进行多种优化工作,很多计算操作可直接在寄存器中完成,大大提高程序执行速度。

(4)最后,在程序执行期间,系统要进行无用内存单元回收工作,在回收过程中,程序将停止执行,这无疑也会影响性能。以上只列出了四条主要的原因,还有其他一些因素综合作用影响着Java虚拟机的性能。

目前,针对Java虚拟机程序速度慢的问题,几家主要的公司(如Microsoft,Borland等)提出了及时编译技术(Just-In-Time)JIT。具体说,就是JIT编译器在程序开始执行前把所有字节码翻译成本地机器码,然后再将翻译后的机器码放在CPU上运行。这样,我们就用字节码编译器代替了原来的解释器,它对用户透明而又提高了执行速度。据称,Borland公司工发的JITJavaAppAccelerator能使应用程序运行速度比解释执行快5到10倍。也许将来JIT编译器会加到Java虚拟机中,从而解决所有性能问题。

 

 

Java API简介  

Java应用程序之所以能够这么简单、快速的开发完成,而又能在各种不同的硬件平台上面执行,最大的功臣莫过于一堆为它量身订做的API们,笔者称它们为类函数库。笔者把它们分成四类来介绍一下。

1) 基本平台套件

不管开发Java任何平台的程序,一定少不了这个基本的套件,它就是JavaTM 2 Platform, Standard Edition,简称J2SE。它除了包含开发Java程序所需的基本类别函数库之外,还有一些编译的程序、额外的辅助工具等。除了J2SE之外,SUN另外针对了企业级应用程序推出了JavaTM 2 Platform, Enterprise Edition,简称J2EE。J2EE除了J2SE中有的基本类别函数库之外,还包含了撰写服务器端、分布式应用程序、交易处理等其它企业级应用程序所会用到的类别函数库,像是Servlet、Enterprise JavaBean等。最后一个平台套件就是JavaTM 2 Platform, Micro Edition,简称J2ME。J2ME是Java平台套件中最小的一个,它是针对消费性电子产品和嵌入式系统所设计的,例如呼叫器、手机、PDA等。

只有J2SE中包含了编译Java程序所需要的一些工具程序,而在J2EE和J2ME中只有类别函数库和执行这类Java程序所需的Java虚拟机器而已。所以就算你只开发J2EE或是J2ME的程序而已,还是会需要J2SE的这些工具程序喔。

2) 消费性产品及嵌入式系统套件

这一部份有点跟现在的J2ME有些重叠,像是Personal Java、Embedded Java、Java CardTM、JavaPhone、Java TV等,因为J2ME是这一两年才整合起来的套件,所以会有这些重复的现象,不过SUN打算把这个部份渐渐的整合到J2ME之中,因此你在网页上看到的PersonalJava等这些资料都已经是旧版,而且没有新版的东西出现了。

3) J2SE额外的辅助套件

光靠J2SE这些基本类别函数库,开发些简单的应用程序应该是足够的,但是想要开发些像是3D动画、多媒体应用程序等,就显得后继无力了。因此SUN为了这些特别且常用到的应用范围,设计了许多相关的类别函数库,像是专门处理3D绘图的Java3D、多媒体的JMF、串行端口、并列端口等相关通讯处理的Java Communication API,还有有关安全方面的JCE等…,种类非常多的类别函数库,让你在开发这方面的应用程序时,能更容易、更快速。

4) 其它套件

除了上面那些套件之外,还有一些其它的类别函数库或是相关应用程序等,像是JINI、JAIN、JavaTM Message Queue等。有兴趣的读者,可以自行到Java的网站上去观看详细的资料。

 

JavaBean和Java Applet之间有什么不同

 

 

由于在当前主机操作系统上加上了Java虚拟机层,Java字节码执行速度目前要比本地机器慢10到20倍。速度问题可能是影响Java推广的唯一原因。影响Java字节码执行速度的原因很多:

(1)首先,验证过程要花费时间,读入的类要在运行时验证,而传统程序在程序编译时即完成验证工作。

(2)其次,Java指令都是字节码。由于大多数操作对象超过一个字节长,因此必须读多个字节码来取得操作符和不同操作数。

(3)再次,由于Java完全采用堆栈机理,运算操作都在堆栈上执行。而传统编译器在编译时进行多种优化工作,很多计算操作可直接在寄存器中完成,大大提高程序执行速度。

(4)最后,在程序执行期间,系统要进行无用内存单元回收工作,在回收过程中,程序将停止执行,这无疑也会影响性能。以上只列出了四条主要的原因,还有其他一些因素综合作用影响着Java虚拟机的性能。

目前,针对Java虚拟机程序速度慢的问题,几家主要的公司(如Microsoft,Borland等)提出了及时编译技术(Just-In-Time)JIT。具体说,就是JIT编译器在程序开始执行前把所有字节码翻译成本地机器码,然后再将翻译后的机器码放在CPU上运行。这样,我们就用字节码编译器代替了原来的解释器,它对用户透明而又提高了执行速度。据称,Borland公司工发的JITJavaAppAccelerator能使应用程序运行速度比解释执行快5到10倍。也许将来JIT编译器会加到Java虚拟机中,从而解决所有性能问题。

 

JavaBean和Java Applet之间有什么不同  

 JavaBean是Java开发语言中一个可以重复使用的软件组件,概念上类似于生成Visual Basic应用程序所使用的ActiveX控件方法。JavaBean可以与创建Applet相结合,它可以认为是运行在Web浏览器上的微型应用程序。

原创粉丝点击