Java初学者的30个常见问题.docx

Java初学者的30个常见问题.docx

ID:61506908

大小:16.77 KB

页数:11页

时间:2021-02-08

Java初学者的30个常见问题.docx_第1页
Java初学者的30个常见问题.docx_第2页
Java初学者的30个常见问题.docx_第3页
Java初学者的30个常见问题.docx_第4页
Java初学者的30个常见问题.docx_第5页
资源描述:

《Java初学者的30个常见问题.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Java初学者的30个常见问题   本文回答了30个Java入门级初学者的常见问题。我可以用%除以一个小数吗?a+=b和a=a+b的效果有区别吗?声明一个数组为什么需要花费大量时间?为什么Java库不用随机pivot方式的快速排序?  1.2基本数据类型  Q.为什么-0/3结果是0,而-0.0/3.0结果是-0.0?(注意后边的结果0带负号)  A.在Java里,整数是用补码表示的。在补码中0只有一种表示方法。另一方面,浮点数则是用IEEE标准表示的,对于0有两种表示方法,0和-0。  Q.我可以

2、用%除以一个小数吗?  A.当然可以。比如,如果angle是一个非负数,那么angle%(2*Math.PI)就会把angle转换到0到2π之间。  Q.当ab都是基本类型变量时,a+=b和a=a+b的效果有区别吗?  A.当a和b的类型不同时,那两条语句的效果就可能有区别。a+=b等同于a=(int)(a+b),这种情况下可以是a是int型,b是float型。但是同等情况下a=a+b就会编译报错。  1.3条件语句和循环语句  Q.为什么判断字符串相等不能使用==?  A.这反映了基础类型(int

3、,double,boolean)和引用类型(String)的区别。  Q.有没有在什么情况下,一条语句块的花括号不能省略的?  A.在下面的例子中,第一段代码是合法的,第二段代码会引发编译错误。从技术角度说,那一条语句是一个变量声明,而不是语句,所以会报错。  1.//legal  2.for(inti=0;i<=N;i++){  3.intx=5;  4.}  5.  6.//illegal  7.for(inti=0;i<=N;i++)  8.intx=5;  Q.在下面的两段代码里,有没有情况

4、,它们的效果不一样?  1.for(;){  2.  3.}  4.  5.;  6.while(){  7.  8.  9.}  A.有的。如果在循环块里使用continue语句。在for的代码里,计数器会加一;而在while的代码里,因为被continue略过了,计数器不加一。  1.4数组  

5、Q.某些Java开发人员使用inta[]而不是int[]a去声明一个数组。这两者有什么区别?  A.在Java中这两种用法都是合法的,他们的作用都是一样的。前者是在C中的定义数组的方法。后者是JAVA推荐的方法,因为它的写法int[]更能表明这是一个int的数组。  Q.为什么数组下标从0开始而不是从1开始?  A.这种传统起源于机器语言的编程方法。在机器语言中,数组下标被用来计算元素位置与第一个元素之间的偏移量。如果从1开始的话,计算偏移时还需要做一次减法运算,那是种浪费。  Q.如果我用负数作为

6、数组下标会发生什么事?  A.下标小于0或者大于等于数组长度,JAVA运行时会抛出ArrayIndexOutOfBoundsException异常,并且中止程序运行。  Q.使用数组时还有其他需要注意的陷阱吗?  A.需要记住,JAVA在你创建一个数组时会去初始化它,所以声明一个数组需要O(N)的时间。  Q.既然a[]是一个数组,为什么System.out.println(a)会打印出一个16进制的数,就像@f62373这样,而不是打印出数组的元素?  A.好问题。这条语句打印出的是数组在内存中的

7、地址,不幸的是,在绝大多数情况下,这不是你需要的。  1.5输入输出语句  Q.我可以从标准input中重新读一次数据吗?  A.不可以,你只能读一次。  Q.怎样输入end-of-file(eof)符号?  A.操作系统自动包括它了。  Q.使用printf()时还有哪些用法?  A.对于整数来说,使用o输出八进制,使用x输出十六进制。对于浮点数来说,使用e或者g输出科学计数法形式。  Q.行结束的符号是什么?  A.不同的文件系统使用了不同的符号。在Unix系统上,新行的符号是'';在Win

8、dows系统上,每一行都有两个字符组成的字符串终结"r";在Macs系统上,终结符号是"r"。如果要打印行号,可以使用System.out.println(),或者使用下面的语句得到当前操作系统下的行结束符:  1.StringNEWLINE=System.getProperty("line.separator");  Q.下面两种写法,哪一种更有效率?  1.Strings;  2.while(!StdIn.isEmpty()){while(!StdIn

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。