java基础语法(十八)Integer

8中基本数据类型对应的包装类型

1、java中为8种基本数据类型又对应准备了8种包装类型。8种包装类型属于引用数据类型,父类是Object.
2、思考:为什么要再提供8种包装类型?
8种基本数据类型不够用

public class IntegerTest01 {
    public static void main(String[] args) {
        //需求:调用doSome()方法的时候需要传一个数字进去
        //但是数字属于基本数字类型,而doSome()方法参数的类型是object。
        //可见doSome()方法无法接收基本数据类型的数字。可以传一个数字对应的包类进去。

        //把100这个数字经过构造方法包装成对象。
        MyInt myInt = new MyInt(100);
        //doSome()虽然不能直接传数字100,但是可以传一个100对应的包装类型。
        doSome(myInt);

    }
    public static void doSome(Object obj){
        //System.out.println(obj);//javase2.integer.MyInt@50cbc42f
        System.out.println(obj);//100
    }
}

3、8种基本数据类型对应的包装类型名

基本数据类型包装类型
bytejava.lang.Byte(父类Number)
shortjava.lang.Short(父类Number)
intjava.lang.Integer(父类Number)
longjava.lang.Long(父类Number)
floatjava.lang.Float(父类Number)
doublejava.lang.Double(父类Number)
booleanjava.lang.Boolean(父类Object)
charjava.lang.Character(父类Object)

Number是一个抽象类,无法实例化对象

public class IntergerTest02 {
    public static void main(String[] args) {
        //123这个基本数据类型,进行构造方法的包装,达到了基本数据类型向引用数据类型的转换。
        //基本数据类型转换为引用数据类型。(装箱)
        Integer i = new Integer(123);

        //引用数据类型转换为基本数据类型。(拆箱)
        float f = i.floatValue();
        System.out.println(f);//123.0
    }
}

在JDK1.5之后,支持自动拆箱和装箱
自动装箱:基本数据类型自动转换成包装类
自动拆箱:包装类自动转换成基本数据类型
有了自动拆箱后,Number类中的方法就用不着了

public class IntegerTest03 {
    public static void main(String[] args) {
        //通过访问包装类的常量,来获取最大值和最小值
        System.out.println("int的最大值:"+ Integer.MAX_VALUE);
        System.out.println("int的最小值:"+ Integer.MIN_VALUE);

        //自动装箱
        //int类型自动装换成Integer
        Integer x = 100;

        //自动拆箱
        //Integer自动转换成int类型
        int y = x;

        Integer z = 1000;//等同于:Integer z = new Integer(1000)
        //+两边要求是基本数据类型的数字,z是包装类,不属于基本数据类型,这里会进行自动拆箱,将z转换成基本数据类型.
        System.out.println(z+1);
        Integer a = 1000;//Integer a = new Integer(1000) a是个引用,保存内存地址指向对象
        Integer b = 1000;//Integer b = new Integer(1000) b是个引用,保存内存地址指向对象
        //==比较的是对象的内存地址,a和b两个引用中保存的对象内存地址不同
        //==这个运算符不会触发自动拆箱机制。(只有+ - * / 等运算的时候才会)
        System.out.println(a == b);//false


    }
}

public class IntegerTest04 {
    public static void main(String[] args) {
        Integer a = 128;
        Integer b = 128;
        System.out.println(a == b);//false

        /*
        java中为了提高程序的执行效率,将[-128,127]之间所有的包装对象提前创建好,
        放到了一个方法区的"整数型常量池"当中了,目的是只要用这个区间的数据就不需要
        再new了,直接从整数型常量池当中取出来。
         */
        //x变量中保存的对象的内存地址和y变量中保存的对象的内存地址是一样的。
        Integer x = 127;
        Integer y = 127;
        System.out.println(x == y);//true

    }
}

4、Integer类中常用方法

public class IntegerTest05 {
    public static void main(String[] args) {
        //重点方法
        //static int parseInt(String s)
        int retValue = Integer.parseInt("123");//String-->int
        System.out.println(retValue + 100);//223

        double retValue2 = Double.parseDouble("3.14");
        System.out.println(retValue2 + 1);//4.14

        //static String toBinaryString(int i) 静态的:将十进制转换成二进制
        String binaryString = Integer.toBinaryString(3);
        System.out.println(binaryString);//"11"二进制字符串

        //static String toHexString(int i) 静态的:将十进制转换成十六进制
        //十六进制:1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a
        String hexString = Integer.toHexString(25);
        System.out.println(hexString);//"19"十六进制字符串

        //static String toOctalString(int i) 静态的:将十进制转换成八进制
        String OctalString = Integer.toOctalString(8);
        System.out.println(OctalString);//"10"二进制字符串

        //valueOf方法
        //static Integer valueOf(int i)  静态的:int-->Integer
        Integer i1 = Integer.valueOf(100);
        System.out.println(i1);
        //static Integer valueOf(String s)  静态的:String-->Integer
        Integer i2 = Integer.valueOf("100");
        System.out.println(i2);
    }
}

String-int-Integer互转
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值