Java基础知识——Java入门与加深

来源:百度文库 编辑:神马文学网 时间:2024/04/20 14:31:14

Java 论坛
Java基础论坛
Java SE论坛
Java EE论坛
Java ME论坛
XML/WEB服务
NetBeans
Java教学
API 文档中文版
Solaris 论坛
Solaris基础
Solaris管理
Solaris开发
OpenSolaris
OpenSolaris教学
Sun JES 论坛
Java Enterprise System基础
Java System App Server
Sun Java Studio 论坛
Java Studio Creator
Java Studio Enterprise
StarSuite 论坛
StarSuite 使用与开发
其它专业论坛
技术培训/认证论坛
社区建设论坛
热点文章评论区
技术书籍论坛
Java协会
JavaCup大赛

论坛主页 >Java基础论坛 您尚未登录
用户名: 密码:
过客设置 积分规则 新手指南

主题: 新手请看:Java基础知识——Java入门与加深
最后时间: 2006-2-22 上午11:19 总回复: 32 页: 3 [ 转去: 1 2 3 ]
该主题总专家分:0   可给专家分:0
[回复主题 ]  
新手请看:Java基础知识——Java入门与加深
作 者:zhoufoxcn  短消息   2006-1-21 下午2:04  回复
1 什么是Java、Java2、JDK?JDK后面的1.3、1.4.2版本号又是怎么回事?
答:Java是一种通用的,并发的,强类型的,面向对象的编程语言(摘自Java规范第二版) JDK是Sun公司分发的免费Java开发工具,正式名称为J2SDK(Java2 Software Develop Kit)。
2 什么是JRE/J2RE?
答:J2RE是Java2 Runtime Environment,即Java运行环境,有时简称JRE。
如果你只需要运行Java程序或Applet,下载并安装它即可。
如果你要自行开发Java软件,请下载JDK。在JDK中附带有J2RE。
注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行Applet,务必安装一个J2RE或JDK。
3 学习Java用什么工具比较好?
答:作者建议首先使用JDK+文本编辑器,这有助你理解下列几个基础概念:path,classpath,package并熟悉基本命令:javac和java。并且下载和你的JDK版本一致的API帮助。
如果你不确定类或函数的用法,请先查阅API而不是发贴求助。
当你熟悉Java之后,你可以考虑换一个IDE。很多人推荐JCreator,实际上JCreator的功能还 是很弱的。
作者推荐eclipse,下载网址http://www.eclipse.org 。因eclispe是免费的.
4 学习Java有哪些好的参考书?
答:作者首先推荐Thinking in Java,中文名《Java编程思想》,有中文版。
该书第一章介绍了很多面向对象的编程思想,作为新手应当认真阅读。
除此以外,O′relly出版社和Wrox出版社的书也不错。作者本人不喜欢大陆作者的书。
也许你觉得英文太难,但是网上大多数资料都是英文的。另外,你需要经常查阅API,而那也是英文的。
5 Java和C++哪个更好?
答:这个问题是一个很不恰当的问题。你应该问:Java和C++哪个更适用于我的项目?
如果你不需要跨平台,不需要分布式,要强调程序的运行速度,C++更为适用。反之?你应当考虑Java。
6 什么是J2SE/J2EE/J2ME?
答:J2SE就是一般的Java。
J2ME是针对嵌入式设备的,比如Java手机,它有自己的SDK。而J2EE使用J2SE的SDK。
J2EE规范更多的是对J2EE服务器的要求和开发人员的约束。详情见后继《J2EE FAQ》。
二、命令篇
7 我写了第一个Java程序,应该如何编译/运行?
答:首先请将程序保存为xxx.java文件,然后在dos窗口下使用javac xxx.java命令,你会发现该目录下多了一个xxx.class文件,再使用java xxx命令,你的java程序就开始运行了。
8 我照你说的做了,但是出现什么"′javac′ 不是内部或外部命令,也不是可运行的程序或批处理文件。"。
答:你遇到了path问题。操作系统在一定的范围(path)内搜索javac.exe,但是没能找到。请编辑你的操作系统环境变量,新增一个JAVA_HOME变量,设为你JDK的安装目录,再编辑Path变量,加上一项 %JAVA_HOME%\bin。然后关掉并新开一个dos窗口,你就可以使用javac和java命令了。
9 环境变量怎么设置?
答:请向身边会设的人咨询。
10 javac xxx.java顺利通过了,但是java xxx的时候显示什么"NoClassDefFoundError"?br>
答:你遇到了classpath问题。java命令在一定的范围(classpath)内搜索你要用的class文件,但是未能找到。
首先请确认你没有错敲成java xxx.class,其次,检查你的CLASSPATH环境变量,如果你设置了该变量又没有包含.(代表当前目录)的?br> 睿?br> 你就会遇到这个问题。请在你的CLASSPATH环境变量中加入一项 。另外参见15。
11 我在java xxx的时候显示"Exception in thread "main" java.lang.NoSuchMethodError: main"。
答:首先,在你的程序中每个java文件有且只能有一个public类,这个类的类名必须和文件名的大小写完全一样。其次,在你要运行的类中有且只能有一个public static void main(String[] args)方法,这个方法就是你的主程序。
12 package是什么意思?怎么用?
答:为了唯一标识每个类并分组,java使用了package的概念。
每个类都有一个全名,例如String的全名是java.lang.String,其中java.lang是包名,String是短名。
这样,如果你也定义了String,你可以把它放在mypackage中,通过使用全名mypackage.String和java.lang.String来区分这两个类。同时,将逻辑上相关的类放在同一个包中,可以使程序结构更为清楚。你要做的就是在java文件开头加一行"package mypackage;"。
注意包没有嵌套或包含关系,A包和A.B包对java命令来说是并列的两个包。
13 我没有声明任何package会怎么样?
答:你的类被认为放在默认包中。这时全名和短名是一致的。
14 在一个类中怎么使用其他类?
答:如果你使用java.lang包中的类,不用做任何事。
如果你使用其他包中的类,使用import package1.class1; 或 import package2.*;这里.*表示引入这个包中的所有类。然后在程序中你可以使用其他类的短名。如果短名有冲突,使用全名来区分。
15 我用了package的时候显示"NoClassDefFoundError",但是我把所有package去掉的时候能正常运行。
答:将你的java文件按包名存放。
比如你的工作目录是/work,你的类是package1.class1,那么将它存放为/work/package1/class1.java。如果没有声明包,那么直接放在/work下。
在/work下执行javac package1/class1.java,再执行java package1.class1,你会发现一切正常。另外,你可以考虑开始使用IDE。
16 我想把java编译成exe文件,该怎么做?
答:JDK只能将java源文件编译为class文件。
class文件是一种跨平台的字节码,必须依赖平台相关的JRE来运行。Java以此来实现跨平台.有些开发工具可以将java文件编译为exe文件。作者反对这种做法,因为这样就取消了跨平台性。如果你确信你的软件只在Windows平台上运行,你可以考虑使用C++/C#来编程。
17 我在编译的时候遇到什么"deprecated API",是什么意思?
答:所谓deprecated是指已经?时,但是为了向前兼容起见仍然保留的方法??br> 这些方法可能会在以后取消支持。你应当改用较新的方法。一般在API里面会说明你应当用什么方法来代替之。
三、I/O篇
18 我怎么给java程序加启动参数,就像dir /p/w那样?
答:还记得public static void main(String[] args)吗?这里的args就是你的启动参数。在运行时你输入java package1.class1 -arg1 -arg2,args中就会有两个String,一个是arg1,另一个是arg2。
19 我怎么从键盘输入一个int/double/字符串?
答:java的I/O操作比C++要复杂一点。如果要从键盘输入,样例代码如下:BufferedReader cin = new BufferedReader( new InputStreamReader( System.in ) );String s = cin.readLine();
这样你就获得了一个字符串,如果你需要数字的话再加上:int n = Integer.parseInt( s ); 或者 double d = Double.parseDouble( s );
20 我怎么输出一个int/double/字符串?
答:在程序开始写:
PrintWriter cout = new PrintWriter( System.out );
需要时写:
cout.print(n); 或者cout.println("hello")等等。
21 我发现有些书上直接用System.in和System.out输入输出,比你要简单得多。
答:java使用unicode,是双字节。而System.in和System.out是单字节的stream。
如果你要输入输出双字节文字比如中文,请使用作者的做法。
22 我怎么从文件输入一个int/double/字符串?
答:类似于从键盘输入,只不过换成BufferedReader fin = new BufferedReader( new FileReader(" myFileName " ) );
PrintWriter fout = new PrintWriter( new FileWriter(" myFileName " ) );
另外如果你还没下载API,请开始下载并阅读java.io包中的内容。
23 我想读写文件的指定位置,该怎么办?
答:你肯定没有认真看API。java.io.RandomAccessFile可以满足你的需要。
24 怎么判断要读的文件已经到了尽头?
答:你肯定没有认真看API。在Reaer的read方法中明确说明返回-1表示流的结尾。
四、 关键字篇
25 java里面怎么定义宏?
答:java不支持宏,因为宏代换不能保证类型安全。
如果你需要定义常量,可以将它定义为某个类的static final成员。参见26和30。
26 java里面没法用const。
答:你可以用final关键字。例如 final int m = 9。被声明为final的变量不能被再次赋值.final也可以用于声明方法或类,被声明为final的方法或类不能被继承。注意const是java的保留字以备扩充。
27 java里面也不能用goto。
答:甚至在面向过程的语言中你也可以完全不用goto。请检查你的程序流程是否合理。
如果你需要从多层循环中迅速跳出,java增强了(和C++相比)break和continue的功能。
例如:
outer :
while( ... )
{
inner :
for( ... )
{
... break inner; ...
... continue outer; ...
}
}
和const一样,goto也是java的保留字以备扩充。
28 java里面能不能重载操作符?
答:不能。String的+号是唯一一个内置的重载操作符。你可以通过定义接口和方法来实现类似功能。
29 我new了一个对象,但是没法delete掉它。
答:java有自动内存回收机制,即所谓Garbarge Collector。你再也不用担心指针错误了.
30 我想知道为什么main方法必须被声明为public static?
答:声明为public是为了这个方法可以被外部调用,详情见面向对象篇37。
static是为了将某个成员变量/方法关联到类(class)而非实例(instance)。
你不需要创建一个对象就可以直接使用这个类的static成员,在A类中调用B类的static成员可以使用B.staticMember的写法。
注意一个类的static成员变量是唯一的,被所有该类对象所共享的。
回复: 新手请看:Java基础知识——Java入门与加深
作 者:zhoufoxcn  短消息
回复主题:新手请看:Java基础知识——Java入门与加深 2006-1-21 下午2:06
回复 1 of 32回复
经常看到有些喜欢问类似的问题,看到网上有人总结了一下就转过来了,如果你只能看懂一部分,没关系,有些印象总是比较好。
如果你觉得不错,那就别让它沉下去了,或许对和你一样的人也有帮助。
回复: 新手请看:Java基础知识——Java入门与加深
作 者:bryanbee  短消息
回复主题:回复: 新手请看:Java基础知识——Java入门与加深 2006-1-22 上午12:02
回复 2 of 32回复
关于packaga的用法。我的体会是一定要在package flodername目录下编译。这样就一定可以找到你的file.class 文件了。
回复: 新手请看:Java基础知识——Java入门与加深
作 者:zeng2814  短消息
回复主题:新手请看:Java基础知识——Java入门与加深 2006-1-22 上午8:37
回复 3 of 32回复
API真的看不明白怎么回事唉!!???晕着呢
回复: 新手请看:Java基础知识——Java入门与加深
作 者:sarafill  短消息
回复主题:新手请看:Java基础知识——Java入门与加深 2006-1-22 下午12:41
回复 4 of 32回复
我是新手,觉得挺实用的!多谢!
回复: 新手请看:Java基础知识——Java入门与加深
作 者:718185  短消息
回复主题:新手请看:Java基础知识——Java入门与加深 2006-1-23 上午9:50
回复 5 of 32回复
GOOD
回复: 新手请看:Java基础知识——Java入门与加深
作 者:wwvq1234  短消息
回复主题:新手请看:Java基础知识——Java入门与加深 2006-1-24 下午7:55
回复 6 of 32回复
谢谢你的帮助
我希望你能够多讲一些深入一些的东西 具体一点好吗 希望对初学的我们来说是很好的参考谢谢你的帮助
回复: 新手请看:Java基础知识——Java入门与加深
作 者:X6759933  短消息
回复主题:新手请看:Java基础知识——Java入门与加深 2006-1-25 上午11:59
回复 7 of 32回复
能在命令上更详细些吗?我想加深学命令
回复: 新手请看:Java基础知识——Java入门与加深
作 者:lulin418  短消息
回复主题:回复: 新手请看:Java基础知识——Java入门与加深 2006-1-25 下午6:15
回复 8 of 32回复
对初学很有帮助,我支持。
回复: 新手请看:Java基础知识——Java入门与加深
作 者:dianziyun  短消息
回复主题:新手请看:Java基础知识——Java入门与加深 2006-1-25 下午8:52
回复 9 of 32回复
我是个初学者,非常感谢楼主!
回复: 新手请看:Java基础知识——Java入门与加深
作 者:sunshine_2008  短消息
回复主题:新手请看:Java基础知识——Java入门与加深 2006-1-26 下午8:32
回复 10 of 32回复
THANK YOU
回复: 新手请看:Java基础知识——Java入门与加深
作 者:shwa  短消息
回复主题:新手请看:Java基础知识——Java入门与加深 2006-1-27 下午4:32
回复 11 of 32回复
对于新手确实不错的!
回复: 新手请看:Java基础知识——Java入门与加深
作 者:glxiang  短消息
回复主题:回复: 新手请看:Java基础知识——Java入门与加深 2006-1-28 上午9:16
回复 12 of 32回复
希望更全面的总结
谢谢啦
回复: 新手请看:Java基础知识——Java入门与加深
作 者:zan518  短消息
回复主题:回复: 新手请看:Java基础知识——Java入门与加深 2006-1-28 上午11:44
回复 13 of 32回复
好好
回复: 新手请看:Java基础知识——Java入门与加深
作 者:Jesper  短消息
回复主题:新手请看:Java基础知识——Java入门与加深 2006-1-29 下午12:12
回复 14 of 32回复
写得好啊~~支持下~!
回复: 32, 页: 3 [ 转去: 1 2 3 ]

关于Sun公司  |  联系我们   |  使用条款  |  隐私政策  |   Copyright 1994-2003 Sun Microsystems
_xyz