java易混淆知识“a==b”和”a.equals(b)”有什么区别?

1、3*0.1 == 0.3 将会返回什么?true 还是 false? 

false,因为有些浮点数不能完全精确的表示出来。 浮点数精度默认为6位

2、“a==b”和”a.equals(b)”有什么区别?

如果 a 和 b 都是对象,则 a==b 是比较两个对象的引用,只有当 a 和 b 指向的是堆中的同一个对象才会返回 true,而 a.equals(b) 是进行逻辑比较,当内容相同时,返回true,所以通常需要重写该方法来提供逻辑一致性的比较。例如,String 类重写 equals() 方法,所以可以用于两个不同对象,但是包含的字母相同的比较。

3、String是最基本的数据类型吗?

false基本数据类型包括byte、int、char、long、float、double、boolean和short。
java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类

4、int 和 Integer 有什么区别
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
  原始类型封装类
  boolean  Boolean
  char       Character
  byte       Byte
  short      Short
  int          Integer
  long        Long
  float        Float
  double     Double

5、&和&&的区别。 
&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。

具体“位运算符“参考 http://blog.csdn.net/is_zhoufeng/article/details/8112199

6、float f=3.4;是否正确?

false。精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4 或float f = 3.4f

在java里面,没小数点的默认是int,有小数点的默认是 double;

3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。

7、Math.round(11.5) 等于多少? Math.round(-11.5)等于多少?

答:Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5然后进行下取整。





  • 14
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值