Java基础知识学习巩固2--int和Integer有什么区别及扩展

这个问题之前首先要介绍下Java数据类型,
一、Java基本类型,主要有8种,分别是:
1、boolean(布尔型即只有true和false),
2、char(字节型16 位 Unicode 字符),
3、byte(8位、有符号的,以二进制补码表示的整数),
4、short(16 位、有符号的以二进制补码表示的整数),
5、int(32位有符号的以二进制补码表示的整数)
6、long(64 位、有符号的以二进制补码表示的整数),
7、float(单精度、32位、符合IEEE 754标准的浮点数),
8、double(双精度、64 位、符合IEEE 754标准的浮点数

    这8中数据类型可以,自动转换和强制转换:

        自动转换,自动转换时只能由低级向高级(byte;short;char->int->long->float->double;)

        强制转换,即大位数转换成小位数.

                    如 int a = 123; byte b = (byte)a;//此时需要强转 不强转会编译报错

        以上基本类型只能赋予值。

二、引用数据类型,主要三种,分别是:

        1、类(Class)

        2、接口(interface)

        3、数组

           我们最常用到的引用数据类型就是String类,通过源码我们可以看到,实际上String存储的字符串是以基本数据类型char的数组进行存储并创建对应位数的。

Java基础知识学习巩固2--int和Integer有什么区别及扩展

           而我们的Integer就是引用类型,从所截图的源码中可以看出Integer是一个继承了Number并实现 Comparable而构造的类,其中提供了很多例如toString这样的方法。

Java基础知识学习巩固2--int和Integer有什么区别及扩展     还有Float与float,long与Long都同理。

三、总结:

        从以上可以看出int和Integer的主要区别就是一个是基本类型,主要是值传递;一个是引用类型,即类,即是按值传递也是按引用传递。J

        Java从5开始引入自动装箱/拆箱机制,使得二者可以相互转换,Integer对int这样对基本类型进行的装箱使得开发更加便捷。