包装类类型之Integer

包装类类型之Integer,第1张

一.包装类类型的介绍
  1. 为对基本数据类型进行更多方便的 *** 作,Java对每个数据类型提供了类类型,即包装类类型。
  2. 具体的包装类类型如下表所示:
基本类型包装类型
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
二. Integer的重要方法
  1.  构造方法:1.public Integer(int value)
              2.public Integer(String s)//这个字符串必须是数字字符组成
    
  2. 成员方法:1.public static String toString(int i) //将int 转成String
             2.public static int parseInt(String s) //将String 转成int 
             3.public static String toString(int i,int radix) //将十进制的i转成radix进制的数字字符
             4.public static int parseInt(String s,int radix) //将进制为radix,数字字符为s转化为十进制数
    

3. *** 作如下

package Integer;

public class IntegerTest {
    public static void main(String[] args) {
       int radix=2;
        Integer i=new Integer(10);
        Integer i2=new Integer("100");//必须是数字字符
        System.out.println(i);
        System.out.println(i2);
        System.out.println("------");
        String s=Integer.toString(i2);//将int 转成String
        int i3=Integer.parseInt(s);//将String 转成int
        System.out.println("s: "+s);
        System.out.println("i3: "+i3);
        System.out.println("----------");
        System.out.println("i: "+Integer.toString(i,radix)); //将十进制的i转成radix进制的数字字符
        System.out.println("s: "+Integer.parseInt(s,radix));  //将进制为radix,数字字符为s转化为十进制数

   }
}
三.对Integer内存的学习

1.自动装箱:把基本类型转为包装类类型
2.自动拆箱:把包装类类型转为基本类型
3.Integer针对-128到127的整形数据做了一个数据缓冲池,如果是直接对Integer赋值,且赋值数据是该范围的,则并不创建空间,而是直接在数据缓冲池中获值
4.防止空指针异常,一般用是否类等于null来判断
5.代码示例如下:

package Integer;

public class IntegerDemo {
    public static void main(String[] args) {
        //定义一个int类型的包装变量i;
        //Integer i=new Integer(100);
        Integer i1=100;  //其实是自动装箱,Integer i1=Integer.valueOf(100) (valueOf返回Integer类型)
        i1+=100;  //其实是自动拆箱再装箱,i1=Integer.valueOf(装)(i1.intValue()(拆,返回int型)+100)
        System.out.println("i1: "+i1);

        Integer iii=null;  //主要是为了防止空指针异常
        if(iii !=null){
            iii+=1000;
            System.out.println(iii);
        }
        System.out.println("------------------");
        Integer i2=127;
        Integer i3=126;
        Integer i4=126;
        Integer i5=new Integer(126);
        Integer i6=128; //会开辟新空间
        System.out.println(i2==i3);        //false,因为所在的的数据缓存池不在同一个位置
        System.out.println(i2.equals(i3));//false,Integer重写了equals方法,比较的是内容
        System.out.println("--------");

        System.out.println(i3==i4);    //true,因为所在的的数据缓存池在同一个位置,Integer缓冲池所存的数据范围是——  -128到127,当直接赋值时,i直接从缓冲池拿数据
        System.out.println(i3.equals(i4));   //true
        System.out.println("-------");

        System.out.println(i4==i5);//false,因为i4在数据缓存池,i5在新开辟的空间位置
        System.out.println(i4.equals(i5));//true
        System.out.println("--------");

    }
}

补充:对Character的学习类似于Integer,就不在此做说明了
主要参考

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/919799.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存