【Java面试】Integer和int的区别,Java为什么要设计封装类?

  “Integer和int的区别?Java为什么要设计封装类?” 虽然经常使用,但是很少去关注为什么,导致面试遇到这个问题就懵了。 大家好,我是咕泡科技的联合创始人Mic 关于这个问题,我们来分析一下面试官的考察意图考察目的

  这是一个典型的Java基础问题,本质上来说,这个问题是考察求职者对于面向对象的理解程度。

  也是在考察求职者的基本功,越是简单常见的东西,就越能体现求职者的基础扎实程度。

  这类问题一般是考察1~3年开发经验的同学。

  在回答这个问题的时候,尽量从封装类型的特性和功能全方位的去回答。

  问题分析

  Integer是基本数据类型int的封装类。

  在Java里面,有八种基本数据类型,他们都有一一对应的封装类型。

  基本类型和封装类型的区别有很多,比如

  int类型,我们可以直接定义一个变量名赋值即可,但是Integer需要使用new关键字创建对象基本类型和Integer类型混合使用时,Java会自动通过拆箱和装箱实现类型转换Integer作为一个对象类型,封装了一些方法和属性,我们可以利用这些方法来操作数据。作为成员变量,Integer的默认值是null,而int的默认值是0

  要是真正列数出来,还可以挖掘更多的差异点。

  在Java里面,之所以要对基础类型设计一个对应的封装类型。

  是因为Java本身是一门面向对象的语言,对象是Java语言的基础单元,我们时时刻刻都在创建对象,也随时都在使用对象,很多时候在传递数据时也需要对象类型,比如像ArrayList、HashMap这些集合,只能存储对象类型,因此从这个点来说,封装类型存在的意义就很大。

  其次,封装类型还有很多好处,比如

  安全性较好,可以避免外部操作随意修改成员变量的值,保证了成员变量和数据传递的安全性隐藏了实现细节,对使用者更加友好,只需要调用对象提供的方法就可以完成对应的操作高手

  Integer和int的区别有很多,我简单说3个方面

  Integer的初始值是null,int的初始值是0Integer存储在堆内存,int类型是直接存储在栈空间Integer是对象类型,它封装了很多的方法和属性,我们在使用的时候更加灵活。

  至于为什么要设计封装类型,最主要的原因是Java本身是面向对象的语言,一切操作都是以对象作为基础。

  比如像集合里面存储的元素,也只支持存储Object类型,普通类型无法通过集合来存储。

  总结

  因为平时没有总结过,大脑一开始肯定是一篇空白的。

  遇到特别基础的问题,先不用急着回答,好好整理一下思路。

  找到问题的关键因素,然后以此为切入点去回答,一般是没什么问题的。

  好的,本期的文章就到这里结束了

  最新的资料文档已整理,包含如下↓(还在持续更新中!):①100道最新大厂经典面试题解析资料文档!②20万+字Java面试题解析和配套答案!③从应届生到高级开发都适用的简历模板!④从入门到精通的架构师学习路线图!⑤还有各种技术流程图,路径图!有需要的 Si 我 “Mic”拿!