本文回答了30个JAVA入门级初学者的常见问题。 我可以用%除以一个小数吗? a = b 和 a = a b 的效果有区别吗? 声明一个数组为什么需要花费大量时间? 为什么JAVA库不用随机pivot方式的快速排序?
1基本数据类型
Q.为什么 -0/3 结果是0,而 -0.0/3.0 结果是-0.0?(注意后边的结果0带负号)
A.在Java里,整数是用补码表示的。在补码中0只有一种表示方法。另一方面,浮点数则是用IEEE 标准表示的, 对于0有两种表示方法, 0 和-0。
Q.我可以用%除以一个小数吗?
A.当然可以。比如,如果angle是一个非负数,那么angle % (2 * Math.PI)就会把 angle 转换到 0 到2 π之间。
Q.当 a b 都是基本类型变量时,a = b和a = a b的效果有区别吗?
A.当 a 和 b 的类型不同时,那两条语句的效果就可能有区别。a = b等同于a = (int) (a b),这种情况下可以是a是int型,b是float型。但是同等情况下a = a b就会编译报错。
2条件语句和循环语句
Q.为什么判断字符串相等不能使用==?
A.这反映了基础类型(int,double,boolean)和引用类型(String)的区别。
Q.有没有在什么情况下,一条语句块的花括号不能省略的?
A.在下面的例子中,第一段代码是合法的,第二段代码会引发编译错误。从技术角度说,那一条语句是一个变量声明,而不是语句,所以会报错。
//legalfor (int i = 0; i
Tag标签: