出个JAVA面试题,试试深浅?
a = new Boolean(false)
b = new Boolean(false)
a == b ?
a == false ?
why ?
b = new Boolean(false)
a == b ?
a == false ?
why ?
全部评论
a == b的结果是false,因为它们是两个不同的对象,即使它们的值相同,它们在内存中的地址是不同的。
a == false的结果也是false,因为a是一个Boolean对象,它和false(一个布尔类型的基本类型)在内存中的类型和值都是不同的。这种比较方式不是Java中比较Boolean对象的通用方法。如果想要比较一个Boolean对象和一个布尔类型的基本类型,可以使用equals()方法进行比较。
两个都是true啊...
进一步提问,如果此时 a 运行中赋值为null,a == false 会抛出什么异常,why?
相关推荐
06-25 20:44
乐山师范学院 Java 
点赞 评论 收藏
分享