Java常识

1.JDK

JDK是整个Java的核心,包括了Java运行环境(JavaRuntimeEnvirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK.最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(JavaVirtualMachine)运行效率要比SunJDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。但不管怎么说,我们还是需要先把SunJDK掌握好。

JDK一般有三种版本:SE(J2SE),standardedition,标准版,是我们通常用的一个版本EE(J2EE),enterpsiseedtion,企业版,使用这种JDK开发J2EE应用程序,ME(J2ME),microedtion,主要用于移动设备、嵌入式设备上的java应用程序Java开发工具(JDK)是许多Java专家最初使用的开发环境。尽管许多编程人员已经使用第三方的开发工具,但JDK仍被当作Java开发的重要工具。JDK由一个标准类库和一组建立,测试及建立文档的Java实用程序组成。其核心JavaAPI是一些预定义的类库,开发人员需要用这些类来访问Java语言的功能。JavaAPI包括一些重要的语言结构以及基本图形,网络和文件I/O.一般来说,JavaAPI的非I/O部分对于运行Java的所有平台是相同的,而I/O部分则仅在通用Java环境中实现。

作为JDK实用程序,工具库中有七种主要程序。

◆Javac:Java编译器,将Java源代码转换成字节码。

◆Java:Java解释器,直接从类文件执行Java应用程序字节代码。

◆appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。

◆Javadoc:根据Java源码及说明语句生成HTML文档。

◆Jdb:Java调试器,可以逐行执行程序,设置断点和检查变量。

◆Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。

◆Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。

2.JRE

JRE(JavaRuntimeEnvironment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。是Sun的产品,包括两部分:JavaRuntimeEnvironment和JavaPlug-inJavaRuntimeEnvironment(JRE)是可以在其上运行、测试和传输应用程序的Java平台。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具——编译器、调试器和其它工具。JRE需要辅助软件——JavaPlug-in——以便在浏览器中运行applet.J2RE是Java2RuntimeEnvironment,即Java运行环境,有时简称JRE.如果你只需要运行Java程序或Applet,下载并安装它即可。如果你要自行开发Java软件,请下载JDK.在JDK中附带有JRE.注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行Applet,务必安装一个JRE或JDK.

安装Java虚拟机有J2SDK和J2RE供选择,J2SDK中包含有J2RE,另外开有供Java开发者使用的源程序、文档等,比J2RE大多了,Eclipse的运行只要J2RE支援就可以了

3.Java中类名与文件名的关系

1.Java保存的文件名必须与类名一致;

2.如果文件中只有一个类,文件名必须与类名一致;

3.一个Java文件中只能有一个public类;

4.如果文件中不止一个类,文件名必须与public类名一致;

5.如果文件中不止一个类,而且没有public类,文件名可与任一类名一致。

当编写一个Java源代码文件时,此文件通常被称为编译单元(有时也称为转译单元)。每个编译单元都必须要有一个后缀为.java,而在编译单元内测可以有一个public类,该类的名称必须与文件名称相同(包括大小写,但不包括文件的后缀名.java)。每个编译单元只能有一个public类,否则编译器就不会接受。如果在该编译单元之中还有额外的类的话,那么在包之外的世界是无法看见这些类的,这是因为他们不是public类,而且他们主要用来为主要public类提供支持。

1.每个编译单元(文件)都只能有一个public类。这表示,每个编译单元都有单一的公共接口,用public类来表现。该接口可以按要求包含众多的支持包访问权限的类。如果在某个编译单元内有一个以上的public类,编译器就会给出出错信息。

2.public类的名称必须完全与含有该编译单元的文件名相匹配,包括大小写。所以对于Widget而言,文件的名称必须是Widget.java,而不是widget.java或WIDGET.java。如果不匹配,同样将得到编译时错误。

3.虽然不是很常用,但编译单元内完全不带public类也是可能的。这种情况下,可以随意对文件命名。(尽管随意命名会使得人们在阅读和维护代码时产生混淆。)

一个Java文件可以有多个类作为内部类/Adapter类/其它类,但是只能有一个public类,且类名必须和文件名一致。这是这类语言的一个不好的地方。

在现实情况中,经常有一些很小的类由几个类共同需要,因此无法作为内部类,而且接口关系必须设置为public,这样就导致了大量很小的.Java程序,每个都只有几百字节。

这类语言的另一个问题是一个类的所有实现的方法都必须包含在同一个文件中。在swing应用程序中,经常导致长达一两百K字节的源程序,行数达到三四千行,搞得JBuilder奇慢无比。

一个.java文件,可以有多个类,但是文件名只能有一个,用哪一个类名来充当文件名呢?其实文件名是无所谓的,因为将来用javac进行编译的时候,最终会生成多个.class文件,每一个类对应个.class文件。运行时只要运行对应的.class文件就可以了,这时.java文件就显得没什么用了(运行时不需要),那还管它叫什么名字。

但是当你的类被public修饰时,此时文件名必须和该类保持一致(例如publicclassA{}只能放在A.java文件中,不然在用javac编译时会提示错误:类A是公共的,应在名为A.java的文件中声明)。也就是说在同一个.java文件中,不应该出现2个或2个以上的publicclass。

如果有一个publicclass类,就应该让文件名和此类名相同;那如果没有呢,即所有的class都没有修饰符,那么可以给该文件随便起名字,甚至可以不和任意一个类同名,哪怕是汉字名称都可以,但是后缀还是要有.java的。

注:有很多初学者(我也是)可能会认为文件名应该也和main方法所在类有关系,其实不然。main方法只是程序的一个入口,老师讲“一个程序只能有一个入口”,好象是在说只能有一个main方法,其实,只要你高兴,就可以在所有类里都写上main方法,给程序提供N多个入口,但是最后你运行程序的时候也只能从其中的一个入口进去,这就是main的作用(程序入口)。(这也就是为什么你会发现,程序员在做单元测试时,会往自己做的很多类里面添加main方法,因为他要为自己做的东西添加运行入口,从而能方便测试。)

4.java中的命名规范

◆包名中的字母一律小写,如:demo.java。

◆类名、接口名应当使用名词,每个单词的首字母大写,如:TestPerson。

◆方法名,第一个单词小写,后面每个单词的首字母大写,如:talkMySelf。

◆常量名中的每个字母一律大写,如:COUNTRY。

Tagged with:

发表评论

邮箱地址不会被公开。 必填项已用*标注

*