zoukankan      html  css  js  c++  java
  • JAVA里面的int类型 和Integer类型,有什么不一样

    JAVA里面的int类型 和Integer类型,有什么不一样

    原创 2013年09月04日 23:15:11

    JAVA里面的int类型 和Integer类型,有什么不一样

    java.lang.Integer是一个类.对它的操作要通过类的方法   
      int是JAVA缺省的8中基本数据类型之一.不是类的对象.
    int是基本数据类型,Integer是对int进行了封装的一个类。   
      声明为int的变量不需要实例化,声明为Interger的变量需要实例化   
    int是基本类型,Integer是包装类,也就是类。
    Integer   是比int   更高级的   数据类型   为什么java中使用int   而不像vb中那样使用Integer
    int是面向机器底层的数值类型,是Primitive类型的数据类型,而Integer是int的Warpper类,是面向对象的即OOP的对象类型。int   一般只用在数值计算中,而Integer是用在Java的其它要使用对象的地方,比如Map的Key与Value,List与Set的Element若要保存数值信息都要把int包装成Integer对象使用。
    Java   提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。   
      原始类型           封装类   
      boolean             Boolean   
      char                   Character   
      byte                   Byte   
      short                 Short   
      int                     Integer   
      long                   Long   
      float                 Float   
      double               Double   
    引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为   null,而原始类型实例变量的缺省值与它们的类型有关。
    追问:
    那我在赋值的时候,能把一个int类型的变量赋值给Integer类型的变量么?反过来 把Integer类型的变量赋值给int类型的变量也行么??
    回答:

    可以的在JDK1.5(包含)以上版本,对int和Integer,double和Double等等实现了自动拆箱装箱。

    Integer是一个对象,int是一种数据类型,Integer对象里封装了一些方法。int是值类型。等楼主学到OOP后就会有所体会


    int 是基本数据类型
    Integer是其包装类,注意是一个类。
    为什么要提供包装类呢???
    一是为了在各种类型间转化,通过各种方法的调用。否则 你无法直接通过变量转化。
    比如,现在int要转为String
    
    
    

    一般小写字母开头的是数据类型(如int double),大写字母开头的一般是封装为类(如Double),里面有很多方法,比如实行转换Integer.parseInt(arg0),可以把其他类型的数据转换为int
    int a=0;String result=Integer.toString(a);在java中包装类,比较多的用途是用在于各种数据类型的转化中。我写几个demo//通过包装类来实现转化的int num=Integer.valueOf(“12”);int num2=Integer.parseInt(“12”);double num3=Double.valueOf(“12.2”);double num4=Double.parseDouble(“12.2”);//其他的类似。通过基本数据类型的包装来的valueOf和parseXX来实现String转为XXString a=String.valueOf(“1234”);//这里括号中几乎可以是任何类型String b=String.valueOf(true);String c=new Integer(12).toString();//通过包装类的toString()也可以String d=new Double(2.3).toString();再举例下。比如我现在要用泛型List<Integer> nums;这里<>需要类。如果你用int。它会报错的



  • 相关阅读:
    Mayan游戏 (codevs 1136)题解
    虫食算 (codevs 1064)题解
    靶形数独 (codevs 1174)题解
    黑白棋游戏 (codevs 2743)题解
    神经网络 (codevs 1088) 题解
    The Rotation Game (POJ 2286) 题解
    倒水问题 (codevs 1226) 题解
    银河英雄传说 (codevs 1540) 题解
    生日蛋糕 (codevs 1710) 题解
    第一章 1.11 高阶函数
  • 原文地址:https://www.cnblogs.com/JasonLGJnote/p/11159886.html
Copyright © 2011-2022 走看看