java新手必看的30个问题

上传人:tia****nde 文档编号:36842931 上传时间:2018-04-03 格式:DOC 页数:4 大小:34.50KB
返回 下载 相关 举报
java新手必看的30个问题_第1页
第1页 / 共4页
java新手必看的30个问题_第2页
第2页 / 共4页
java新手必看的30个问题_第3页
第3页 / 共4页
java新手必看的30个问题_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《java新手必看的30个问题》由会员分享,可在线阅读,更多相关《java新手必看的30个问题(4页珍藏版)》请在金锄头文库上搜索。

1、看了好多资料,还是对一些基本问题比较头大。在论坛看完这个帖子,脑子里的基本概念有了。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 程序或

2、Applet,下载并安装它即可。 如果你要自行开发 Java 软件,请下载 JDK。在 JDK 中附带有 J2RE。 注意由于 Microsoft 对 Java 的支持不完全,请不要使用 IE 自带的虚拟机来运行 Applet,务必安装一个J2RE 或 JDK。 3 学习 Java 用什么工具比较好? 答:作者建议首先使用 JDK+文本编辑器,这有助你理解下列几个基础概念:path,classpath,package并熟悉基本命令:javac 和 java。并且下载和你的 JDK 版本一致的 API 帮助。 如果你不确定类或函数的用法,请先查阅 API 而不是发贴求助。 当你熟悉 Java 之

3、后,你可以考虑换一个 IDE。很多人推荐 JCreator,实际上 JCreator 的功能还 是很弱的。 作者推荐 eclipse,下载网址 http:/www.eclipse.org 。因 eclispe 是免费的. 4 学习 Java 有哪些好的参考书? 答:作者首先推荐 Thinking in Java,中文名Java 编程思想,有中文版。 该书第一章介绍了很多面向对象的编程思想,作为新手应当认真阅读。 除此以外,Orelly 出版社和 Wrox 出版社的书也不错。作者本人不喜欢大陆作者的书。 也许你觉得英文太难,但是网上大多数资料都是英文的。另外,你需要经常查阅 API,而那也是英文

4、的。 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 程序,应该如何编译/运行? 答:首先请将

5、程序保存为 xxx.java 文件,然后在 dos 窗口下使用 javac xxx.java 命令,你会发现该目录下多了一个 xxx.class 文件,再使用 java xxx 命令,你的 java 程序就开始运行了。 8 我照你说的做了,但是出现什么“javac 不是内部或外部命令,也不是可运行的程序或批处理文件。“。 答:你遇到了 path 问题。操作系统在一定的范围(path)内搜索 javac.exe,但是没能找到。请编辑你的操作系统环境变量,新增一个 JAVA_HOME 变量,设为你 JDK 的安装目录,再编辑 Path 变量,加上一项 %JAVA_HOME%bin。然后关掉并新开一

6、个 dos 窗口,你就可以使用 javac 和 java 命令了。 9 环境变量怎么设置? 答:请向身边会设的人咨询。 10 javac xxx.java 顺利通过了,但是 java xxx 的时候显示什么“NoClassDefFoundError“?br 答:你遇到了 classpath 问题。java 命令在一定的范围(classpath)内搜索你要用的 class 文件,但是未能找到。 首先请确认你没有错敲成 java xxx.class,其次,检查你的 CLASSPATH 环境变量,如果你设置了该变量又没有包含.(代表当前目录)的?br 睿?br 你就会遇到这个问题。请在你的 CLAS

7、SPATH 环境变量中加入一项 。另外参见 15。 11 我在 java xxx 的时候显示“Exception in thread “main“ java.lang.NoSuchMethodError: main“。 答:首先,在你的程序中每个 java 文件有且只能有一个 public 类,这个类的类名必须和文件名的大小写完全一样。其次,在你要运行的类中有且只能有一个 public static void main(String args)方法,这个方法就是你的主程序。 12 package 是什么意思?怎么用? 答:为了唯一标识每个类并分组,java 使用了 package 的概念。 每

8、个类都有一个全名,例如 String 的全名是 java.lang.String,其中 java.lang 是包名,String 是短名。这样,如果你也定义了 String,你可以把它放在 mypackage 中,通过使用全名 mypackage.String 和java.lang.String 来区分这两个类。同时,将逻辑上相关的类放在同一个包中,可以使程序结构更为清楚。你要做的就是在 java 文件开头加一行“package mypackage;“。 注意包没有嵌套或包含关系,A 包和 A.B 包对 java 命令来说是并列的两个包。 13 我没有声明任何 package 会怎么样? 答:

9、你的类被认为放在默认包中。这时全名和短名是一致的。 14 在一个类中怎么使用其他类? 答:如果你使用 java.lang 包中的类,不用做任何事。 如果你使用其他包中的类,使用 import package1.class1; 或 import package2.*;这里.*表示引入这个包中的所有类。然后在程序中你可以使用其他类的短名。如果短名有冲突,使用全名来区分。 15 我用了 package 的时候显示“NoClassDefFoundError“,但是我把所有 package 去掉的时候能正常运行。答:将你的 java 文件按包名存放。 比如你的工作目录是/work,你的类是 packag

10、e1.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 文件。作者反

11、对这种做法,因为这样就取消了跨平台性。如果你确信你的软件只在 Windows 平台上运行,你可以考虑使用 C+/C#来编程。 17 我在编译的时候遇到什么“deprecated API“,是什么意思? 答:所谓 deprecated 是指已经?时,但是为了向前兼容起见仍然保留的方法?br 这些方法可能会在以后取消支持。你应当改用较新的方法。一般在 API 里面会说明你应当用什么方法来代替之。 三、I/O 篇 18 我怎么给 java 程序加启动参数,就像 dir /p/w 那样? 答:还记得 public static void main(String args)吗?这里的 args 就是你的

12、启动参数。在运行时你输入 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 = Integ

13、er.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 是单字节的 st

14、ream。 如果你要输入输出双字节文字比如中文,请使用作者的做法。 22 我怎么从文件输入一个 int/double/字符串? 答:类似于从键盘输入,只不过换成 BufferedReader fin = new BufferedReader( new FileReader(“ myFileName “ ) ); PrintWriter fout = new PrintWriter( new FileWriter(“ myFileName “ ) ); 另外如果你还没下载 API,请开始下载并阅读 java.io 包中的内容。 23 我想读写文件的指定位置,该怎么办? 答:你肯定没有认真看 AP

15、I。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 也可以用于声

16、明方法或类,被声明为 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 方法必须被声明

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号