包装类类型之Integer

一.包装类类型的介绍

  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,就不在此做说明了
主要参考

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值