访谈:为Java菜鸟帮解答问题二十例
2008-01-05 18:17:34 来源:WEB开发网核心提示:问题1、在我的系统中有几个字处理程序,我应该选择哪一个来编辑java源程序呢?解答:只要能将文件保存为不带任何非凡格式的文本文件,访谈:为Java菜鸟帮解答问题二十例,选择哪个都可以,问题2、假如每条语句之后都要加上分号,问题20、使用java运行class文件时,出现如下的错误:java Helloworld.cla
问题1、在我的系统中有几个字处理程序,我应该选择哪一个来编辑java源程序呢?
解答:只要能将文件保存为不带任何非凡格式的文本文件,选择哪个都可以。
问题2、假如每条语句之后都要加上分号,那为什么在象//hello这样的语句后面不用加上分号呢?
解答:注释是完全被编译器忽略的。假如在你的程序中某一行加上了"//"号,这就告诉编译器忽略"//"右边的一行语句。
问题3、什么是字符
解答:字符就是单个字母、数字、标点符号或其它符号。例如,T,5以及%。字符以原文的形式存储在变量中。
问题4、当我在使用javac编译程序时,出现"Invalid argument"的错误信息,我该如何改正它?
解答:你可能在键入javac命令时遗漏了.java扩展名。此外,当前目录必须是要编译的java源文件所在的目录。
问题5、在编译器提示出错的语句中,我找不着错误,该怎么办?
解答:错误信息显示的行号通常并不是真正出错的地方。检查错误行号前面的语句,或许你可以找到错误。错误通常是在同一个程序块中。
问题6、我在Web页面上可以运行一个有用的程序,我能脱离浏览器独立运行它吗?
解答:在大多数情况下是不可以的。标准的Java的程序均运行在Web页面上或是命令行中。可以写一个支持这两项的java程序,大部分你能找到的程序都不能兼顾这两个功能。
问题7、java程序有着跨平台的特性,那为什么有些java编译器(象Sunsoft Java工作平台)只能运行在特定的系统上?
解答:java程序有可能在非凡的系统中受到限制(象兼容的PC机),因为java程序为了达到某种目的可能包含一些非java的程序。一个java程序可能调用另一个由C++写成的程序以达到某些特性。
问题8、我的计算机在网页中运行java程序,是否会带来病毒?
解答:由于网页程序语言的严格限制,对其控制下的读写和对文件的修改也是受控制的,不存在任何从页面上读java程序而导致病毒的途径,除非在你的系统中由你赋予这些程序完全的许可。答应他人在你的硬盘上进行操作。那些下载后在命令行中运行的java程序则有着与其它程序相同的风险,假如你使用从网上下载的程序,你必须用好的防毒软件进行检查,并做到经常有规律地进行。
问题9、单个java程序可以既是应用程序又是java Applet吗?
解答:是可以的。假如程序不是很简单的话,这样做通常是很笨拙的。只要Applet加上main()模块就可以当作应用程序运行,但在应用程序中,却无法加上init()块和paint()块而使它以java Applet的形式运行。大多数程序或者是应用程序或者是Applet,而不会两者皆是。
问题10、所有传递给应用程序的参数都必须是字符串吗?
解答:当程序运行时,java将所有的参数当作字符串存储。
问题11、java程序中的行是否同语句一回事?
解答:不。尽管一般创建程序都是一行一个语句,但这只是为了使程序更易于理解,这不是必须的。java编译器在它对程序进行编译时并不考虑行、空格和其它格式的形式,编译器只要求在语句的结束处有分号。你可以在一行上写多个语句,尽管我们通常不提倡这样做。
问题12、为什么变量名的第一个字母要小写,比如gameOver?
解答:这是为了很轻易将变量和Java中其它元素区分开来。另外,在命名变量时遵循一致的风格的好处是当你在程序中的几个不同的地方使用同一个变量时可以避免发生的错误。
问题13、是否可以让具有相同字母的两个变量名大小写不同?比如ABC和abc
解答:不同大小写的变量名被看成是不同的变量,Java对大小写是敏感的。因此象上面那样让相同的名字使用两次是可以的。但是,当你或某个其他人要指出程序是如何工作的时候,这样做很轻易引起许多混乱。而且这样也增加了程序中使用错误变量名的可能性,而这个错误编译器是不能发现的。这样的错误只会影响程序的运行结果,我们称这样的错误为逻辑错误。这种错误必须由一个注重力集中的程序员在测试时发现。
问题14、我编的程序在其他机子上浏览时,总是说***.class not found,我想问一下,对于在系统接口中的class,我怎样知道我的程序使用了哪些类.?
解答:编译的时候用选项 javac -verbose ******** 可以看你的程序都用到了类库中的哪些类。
问题15、String s1 = "123",如何转换成整数 int a1 = 123,相反的转换又如何实现?
解答:a1=Integer.parseInt(s1),s1=Integer.toString(a1),还有很多方法,参见帮助文件。
问题16、System.out.PRint()为什么不输出?
解答:输出流收到一个换行符才将缓冲区中的内容输出,在程序最后加一行 System.out.flush() 应该就可以。
问题17、 把一个数组作为入口参数传给一函数,函数中如何知道该数组的大小?
解答:数组对象都有 .length属性,如:int count = yourArray.length ;
问题18、程序运行时总是出现NullPointerException,可编译也能通过,不知为什么?
解答:使用变量前别忘了new之,多数情况都是因为这个问题。
问题19、为什么使用编译器javac编译时,出现'javac' 不是内部或外部命令,也不是可运行的程序或批处理文件(javac: Command not found)的错误?
解答:产生的原因是没有设置好环境变量path。Win98下在autoexce.bat中加入path=%path%;c:\jdk1.3\bin,Win2000下则控制面板->系统->高级->环境变量->系统变量...看到了变量Path,双击Path,在后面加上c:\jdk1.3\bin。当然我们假设JDK安装在c:\jdk1.3目录下。
问题20、使用java运行class文件时,出现如下的错误:
java Helloworld.class
Exception in thread "main"
java.lang.NoClassDefFoundError:
HelloWorld/class
解答:运行程序的时候不需要也不应该加上.class扩展名,java解释器会把前面的类名作为一个包名来解释的。
更多精彩
赞助商链接