包装类型和基本类型的差别(由方法返回值想到的问题)

参考资料:
https://juejin.im/post/6844903955235864590
https://www.zhihu.com/question/290678106

背景

自己写接口返回值返回的Boolean,突然想到一个问题,返回boolean不可以么,他们有什么区别么?跟随着这个问题我们再往大了引申说到包装类型和基本类型上面。

Boolean和boolean哪个更适合当做返回值

只从方法返回值上面讲,看下接口对于返回值的要求。Boolean的包装类型可以为null,boolean只有true和false。所以,当返回值的结果只有true和false的时候,我们就可使用基本类型,即boolean
所以上述案例自己写的接口根据需要boolean也够用了。

总结一下:假如方法的返回值,需要有一个null的可能性,那么可以用包装类形。假如不存在的话,不建议使用包装类型,因为容易给上层调用者引起不必要的麻烦。

扩展

上面说完Boolean和boolean,扩展到包装类型和基本类型的差别。

1、基本类型在栈中直接存储的具体数值,而包装类型则存储的是堆中的引用。
2、泛型中只能使用包装类型,不能使用基本类型
3、什么时候该用包装类,什么时候用基本类型,看基本的业务来定:这个字段允不允许null值,如果允许null值,则必然要用封装类,否则值类型就可以了

你可能感兴趣的:(java,java)