• 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 }
  • 相关阅读:
    文件包含漏洞
    命令执行漏洞详解
    CSRF跨站请求伪造
    XSS跨站脚本攻击详解
    SQL盲注
    字符型注入、数字型注入、搜索型注入
    AWVS13扫描类型profile_id对照表
    Cobalt Strike 和 Metasploit Framework 联动
    msf常用命令
    上传嵌入式python环境进行渗透测试
  • 原文地址:https://www.cnblogs.com/snail-lb/p/5460358.html
Copyright © 2020-2023  润新知