您的位置:首页 > 编程语言 > Java开发

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

2018-03-06 19:04 686 查看
这个问题之前首先要介绍下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的数组进行存储并创建对应位数的。



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


     还有Float与float,long与Long都同理。
三、总结:
        从以上可以看出int和Integer的主要区别就是一个是基本类型,主要是值传递;一个是引用类型,即类,即是按值传递也是按引用传递。J
        Java从5开始引入自动装箱/拆箱机制,使得二者可以相互转换,Integer对int这样对基本类型进行的装箱使得开发更加便捷。
    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: