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的数组进行存储并创建对应位数的。
而我们的Integer就是引用类型,从所截图的源码中可以看出Integer是一个继承了Number并实现 Comparable而构造的类,其中提供了很多例如toString这样的方法。
还有Float与float,long与Long都同理。
三、总结:
从以上可以看出int和Integer的主要区别就是一个是基本类型,主要是值传递;一个是引用类型,即类,即是按值传递也是按引用传递。J
Java从5开始引入自动装箱/拆箱机制,使得二者可以相互转换,Integer对int这样对基本类型进行的装箱使得开发更加便捷。