首页 存档 技术 查看内容

Java初学者的30个常见问题

2018-3-30 13:00 |来自: 互联网 325 0

摘要: 本文回答了30个JAVA入门级初学者的常见问题。 我可以用%除以一个小数吗? a = b 和 a = a b 的效果有区别吗? 声明一个数组为什么需要花费大量时间? 为什么JAVA库不用随机pivot方式的快速排序? 1基本数据类型Q.为 ...


本文回答了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
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部