Java FAQ(新手必看)

2008-02-23 09:15:50来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

一、准备篇

Q1.1什么是Java、Java2、JDK?JDK后面的1.3、1.4版本号又是怎么回事?
答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二

)。
JDK是Sun公司分发的免费Java开发工具包,正式名称为J2SDK(Java2SoftwareDevelop
K
it)。
包括基本的java工具包和标准类库。
到目前(2003年7月)为止,Java有3个主要版本,即1.0,1.1,2.0;
JDK有1.0,1.1,1.2,1.3,1.4五个版本。
从JDK1.2起,Sun公司觉得Java改变足够大而将java语言版本号提升为2.0。
不同的JDK主要在于提供的类库不同。作为学习你可以下载最新的JDK1.4.2。
真正开发时则应考虑向前兼容,比如1.3。下载请去http://java.sun.com。
JDK1.5预计将在2004年推出,届时其中将包含若干崭新的特性。

Q1.2什么是JRE/J2RE?
答:J2RE是Java2RuntimeEnvironment,即Java运行环境,有时简称JRE。
如果你只需要运行Java程序或Applet,下载并安装它即可。
如果你要自行开发Java软件,请下载JDK。在JDK中附带有JRE。
注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行Applet,务

安装一个JRE或JDK。

Q1.3学习Java用什么工具比较好?
答:作者建议首先使用JDK 文本编辑器,这有助你理解下列几个基础概念:path,
classp
ath,package
并熟悉基本命令:javac和java。并且下载和你的JDK版本一致的API帮助。
如果你不确定类或函数的用法,请先查阅API而不是发贴求助。
当你熟悉Java之后,你可以考虑开始使用一个IDE。
作者推荐Eclipse,下载网址http://www.Eclipse.org。因为eclispe是免费的,插件化


eclispe的主要缺点是缺乏一个可视化的桌面程序开发工具,
幸运的是IBM在2003年11月已经将部分代码捐给Eclipse组织,可以预计这个缺点很快就

得到弥补。
无论如何,请不要使用Microsoft的VJ !众所周知Microsoft从来就没有认真支持过
Java

最后但并非最不重要,要有一本好的参考书,并且英文要过关。

Q1.4学习Java有哪些好的参考书?
答:作者首先推荐ThinkinginJava,中文名《Java编程思想》,有中文版。
目前的最新版本是第三版。
在http://64.78.49.204可以免费下载英文版。
该书第一章介绍了很多面向对象的编程思想,作为新手应当认真阅读。
除此以外,O'relly出版社和Wrox出版社的书也不错。作者本人不喜欢大陆作者的书。
也许你觉得英文太难,但是网上大多数资料都是英文的。另外,你需要经常查阅API,而

也是英文的。

Q1.5Java和C 哪个更好?
答:这个问题是一个很不恰当的问题。你应该问:Java和C 哪个更适用于我的项目?
Java的优点和缺点一样明显。
跨平台是Java的主要优点,但代价是运行速度的下降。
VC和Windows平台有良好的集成和足够快的速度,但是也只能局限在Windows平台上。
和C 相比,Java学起来更快,开发人员不会碰到很多容易出错的特性。
但是VB程序员甚至只需要拼装模块就可以了。

Q1.6什么是J2SE/J2EE/J2ME?
答:J2SE就是一般的Java。
J2ME是针对嵌入式设备的,比如支持Java的手机,它有自己的JRE和SDK。
J2EE是一组用于企业级程序开发的规范和类库,它使用J2SE的JRE。

二、命令篇

Q2.1我写了第一个Java程序,应该如何编译/运行?
答:首先请将程序保存为xxx.java文件,注意你可能需要修改文件后缀名。
然后在dos窗口下使用javacxxx.java命令,你会发现该目录下多了一个xxx.class文
件,

再使用javaxxx命令,你的java程序就开始运行了。

Q2.2我照你说的做了,但是出现什么“'javac'不是内部或外部命令,也不是可运行

程序或批处理文件。”。
答:你遇到了path问题。操作系统在一定的范围(path)内搜索javac.exe,但是没能找
到。

请编辑你的操作系统环境变量,新增一个JAVA_HOME变量,设为你JDK的安装目录,
再编辑Path变量,加上一项%JAVA_HOME%\bin。
然后保存并新开一个dos窗口,你就可以使用javac和java命令了。

Q2.3环境变量怎么设置?
答:请向身边会设的人咨询。

Q2.4我在javacxxx.java的时候显示什么“unreportedexception
java.io.IOExcepti
on;”。
答:参见Q4.8以了解java中的异常机制。

Q2.5javacxxx.java顺利通过了,但是javaxxx的时候显示什么
“NoClassDefFoundErr
or”。
答:1.你遇到了classpath问题。java命令在一定的范围(classpath)内搜索你直接或间

使用的class文件,但是未能找到。
首先请确认你没有错敲成javaxxx.class,
其次,检查你的CLASSPATH环境变量,其实你并不需要设置该变量,
但如果你设置了该变量又没有包含.(代表当前目录)的项,
你就会遇到这个问题。请在你的CLASSPATH环境变量中加入一项.或干脆删掉这个变量。

2.如果你使用了并非JDK自带的标准包,比如javax.Servlet.*包,也会遇到这个问题,

将相应的jar文件加入classpath。
3.如果你在java源文件中定义了package,请参见Q2.11。


Q2.6我在javaxxx的时候显示“Exceptioninthread"main"
java.lang.NoSuchMetho
dError:main”。
答:首先,在你的程序中每个java文件有且只能有一个public类,
这个类的类名必须和文件名的大小写完全一样。
其次,在你要运行的类中有且只能有一个publicstaticvoidmain(String[]args)方


这个方法就是你的主程序。


Q2.7在javaxxx的时候显示“Exceptioninthread"main"
java.lang.NullPointerEx
ception”。
答:在程序中你试图在值为null的对象变量上调用方法,请检查你的程序确保你的对象
被恰当的初始化。
参见Q4.8以了解java中的异常机制。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:面向方面的编程:它的好处是什么?

下一篇:apache2 linux下tomcat weblogic配置