zoukankan      html  css  js  c++  java
  • java int和Integer的区别

    今天偶然和同学讨论到int和Integer的区别是,发现自己对这个问题了解的并不是很清楚,而且有些概念还是错的,所以在这对int和Integer的区别做一个总结。

    int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别:

    int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象

    1.Java 中的数据类型分为基本数据类型和复杂数据类型

    int 是基本数据类型 而integer 是复杂数据类型(也就是一个类);因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null.

    2.初始化时:

      int i =1;

      Integer i= new Integer(1);(integer 是一个类);但由于有了自动装箱和拆箱使得对Integer类也可使用:Integer i= 1;  

       

      int 是基本数据类型(面向过程留下的痕迹,不过是对java的有益补充),Integer 是一个类,是int的扩展,定义了很多的转换方法

      java一共有八种基本数据类型:字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double;每一个基本数据类型都有一个包装类,

                    对应的包装类为Character,Booblean,Byte,Short,Integer,Long,Float,Double

      比如当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装 object的,这是就需要这些基本类型的包装类了。

       下面用一段代码来具体展示以下:

      

     1 /**
     2  * int 和Integer类型区别比较
     3  * 2016/5/4
     4  * 
     5  */
     6 package cn.Java_7;
     7 public class Campare {
     8     public static void main(String[] args) {
     9         Integer a = new Integer(127), b = new Integer(128);
    10         int     c = 127,               d = 128, dd = 128;
    11         Integer e = 127,               ee = 127, f = 128, ff = 128;
    12         
    13         System.out.println(a == b); //false  因为a,b都是new出来的对象,地址不同所以为false
    14         System.out.println(a == c); //true    a会自动拆箱为int类型
    15         System.out.println(a == e); //false    指向的地址不同a是new出来的
    16         System.out.println(e == c); //true    e会自动拆箱为int类型
    17         System.out.println(e == ee);//true    处于-128到127范围之间,指向了同一片地址区域
    18         
    19         System.out.println(b == f); // false    指向的地址不同b是new出来的
    20         System.out.println(f == d); //true        f自动拆箱为int类型
    21         
    22         System.out.println(f == ff); /*false     指向的不是同一片地址区域  在Integer类型中,-128到127存放的是同一片区域地址,之外的数
    23                                                     是另外开辟空间来进行    存储的*/
    24         System.out.println(d == dd); // true    不解释
    25     }
    26 }
  • 相关阅读:
    js直接获取当前windows登陆账号---仅适用于IE
    Windows变量路径与通配符
    IDEA数据库生成Entity 带注释, 默认值
    BIM+区块链在建筑业施工过程结算的应用
    Java中动态规则的实现方式
    Git查看本地仓库关联关系以及清理无效远程分支
    Golang把字符串数组、[]interface{}打乱、切片乱序
    Golang将map数组按照指定字段排序
    Golang把时间和数字相乘报错invalid operation: second * time.Second (mismatched types int and time.Duration)
    Golang获取明日时间及距离明日凌晨的时间差
  • 原文地址:https://www.cnblogs.com/snail-lb/p/5460358.html
Copyright © 2011-2022 走看看