基本类型的包装类

本文详细介绍了Java中的包装类概念及用途,包括Integer类的API、属性、构造方法、运算和转换功能方法等内容,并探讨了自动装箱和拆箱的过程。

1、包装类概念:
将基本数据类型数据组装成引用数据类型数据。

2、包装类作用:
String使用数据类型与基本数据类型(byte,short,int,long,float…)的区别,基本数据类型只是一个取值范围,没有具体方法或者属性。String类除了有取值范围外,还包含属性和方法。sun公司想能否将每个的基本数据类型都提供一个引用类型,从而能否具有属性和方法,方便程序使用。所以推出包装类。

3、包装类分类
在这里插入图片描述
4、Integer类
(1)API介绍
在这里插入图片描述
(2)属性
在这里插入图片描述

public class Demo7_Integer {

    public static void main(String[] args) {
        int bytes = Integer.BYTES;
        System.out.println(bytes);//4,一个int占4个字节(byte)

        int maxValue = Integer.MAX_VALUE;
        System.out.println(maxValue);//2147483647,int类型能取的最大值
        //byte 127~-128
        int minValue = Integer.MIN_VALUE;
        System.out.println(minValue);//-2147483648,int类型能取的最小值

        int size = Integer.SIZE;
        System.out.println(size);//32,一个int占32个比特(bit)
    }
}

(3)构造方法
在这里插入图片描述

public class Demo7_Integer {

    public static void main(String[] args) {

        //构造防范
        //Integer(int)
        Integer i = new Integer(10);
        System.out.println(i);//10

        //Integer(String)
        Integer ii = new Integer("10");
        System.out.println(ii);//10

        //作用:用于区分字符串的内容是否是数字
        Integer iii = new Integer("abc");//java.lang.NumberFormatException: For input string: "abc"
        System.out.println(iii);
        //method_属性();
    }
}

(4)运算功能方法
在这里插入图片描述

public class Demo7_Integer {

    public static void main(String[] args) {
        //运算方法
        int max = Integer.max(10, 20);
        System.out.println(max);//20

        int min = Integer.min(2, 6);
        System.out.println(min);//2

        int sum = Integer.sum(8, 9);
        System.out.println(sum);//17
        //method_构造方法();
        //method_属性();
    }
}

(5)转换功能方法
在这里插入图片描述

package day11;

public class Demo7_Integer {

    public static void main(String[] args) {

        //转换方法
        //1、int转Integer
        int n = 10;
        Integer i = new Integer(n);
        System.out.println(i.toString());//10
        i = Integer.valueOf(n);
        System.out.println(i.toString());//10

        //2、Integer转int
        int n1 = i.intValue();
        System.out.println(n1 - 8);//2

        //3、String转Integer
        String s = "675";
        Integer ii = new Integer(s);
        System.out.println(ii.toString());//675
        ii = Integer.valueOf(s);
        System.out.println(ii.toString());//675

        //4、Integer转String
        Integer iii = new Integer(10);
        String ss = iii.toString();
        System.out.println(ss + 1);
        ss = String.valueOf(iii);
        System.out.println(ss + 1);
        System.out.println(iii + "1");

        //5、int转String
        String sss = Integer.toString(10);
        System.out.println(sss);//10 将数字以10进制方式显示
        sss = Integer.toBinaryString(10);
        System.out.println(sss);//1010 将数字以2进制方式显示
        sss = Integer.toHexString(10);
        System.out.println(sss);//a 将数字以16进制方式显示
        sss = Integer.toOctalString(10);
        System.out.println(sss);//12 将数字以8进制方式显示

        sss = String.valueOf(10);
        System.out.println(sss);//10

        System.out.println(10 + "");//10

        //6、String转int
        int nn = Integer.parseInt("101");
        System.out.println(nn + 1);//102


        //method_运算方法();
        //method_构造方法();
        //method_属性();
    }
}

5、自动装箱和拆箱
(1)概念:基本数据类型自动转包装类型称之为自动装箱,反之包装类型自动转换成基本数据类型称之为拆箱。

public class Demo7_Integer {


    public static void main(String[] args) {

        //自动装箱和拆箱
        int n = 10;//自动装箱
        Integer i = n;
        System.out.println(i.toString());//10

        n = i;//自动拆箱
        System.out.println(n + 10);//20

        int num = i - 1;
        System.out.println(num);//9
   }
}

6、关于类型的面试题

class Test {

    int i;
}


public class Demo8_类型的面试题 {

    public static void main(String[] args) {
        int i = 888;
        change(i);
        System.out.println(i);//888

        Test test = new Test();
        test.i = 888;
        change(test);
        System.out.println(test.i);//20

        String s = "goods";
        change(s);
        System.out.println(s);//goods

        StringBuilder builder = new StringBuilder("goods");
        change(builder);
        System.out.println(builder);

        //注意
        //1、java中只有值传递,没有引用传递
        //2、基本数据类型作为参数传递,参数修改不会被保留。引用数据类型作为参数传递,参数修改会被保留。
        //3、String类虽然是引用类型,但是使用方式类似基本数据类型,所以作为参数传递时,修改不会保留
        //4、如果需要将字符串作为参数传递后,修改仍然能保留,可以使用StringBuilder代替String
    }

    public static void change(Test test) {
        test.i = 20;
    }

    public static void change(int num) {
        num = 20;
    }

    public static void change(String s){
        s = "wahaha";
    }

    public static void change(StringBuilder builder){
        builder.setLength(0);
        builder.append("wahaha");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值