包装类的使用

包装类的分类:

包装类是针对基本数据类型相应的引入类型——包装类,有了类的特点,就可以调用包中的特点。

八大包装类对应八大基本数据类型。

Character类实现了Comparable和Serializable接口,继承父类Object.

Boolean类实现了Comparable和Serializable接口,继承父类Object.和Character相同。

Byte,Integer,Long,Float,Double,Short都继承与Number类实现Comparable接口。

包装类和 基本数据类型的转换:

这里以int和Integer演示

​
/**
 * 演示装箱和拆箱

 */
public class integer01 {
    public static void main(String[] args) {
        int n1=100;
        //在jdk5前是手动装箱和拆箱
        // 手动装箱  int转化-Integer
       // Integer integer=new Integer(n1);  该方法已被弃用
        Integer integer=Integer.valueOf(n1);
        //手动拆箱 Integer转化-int
       int i=integer.intValue();

        //jdk5后,自动装箱或拆箱
        int n2=200;
        Integer integer1=n2;//自动装箱,底层使用的是valueOf(n2),本质上和手动上一样
        System.out.println(integer1);
       // 自动拆箱
            int n3=300;
             n3=integer;//底层使用的是intValue()方法
        }

​

包装类和String类型的转换

public class WrapperVSString {
    public static void main(String[] args) {
        Integer i=100;
        //自动装箱
        //包装类(Integer)转换String
        //方式一
        String str=i+"";
        System.out.println(str);
        //方式二
        String str2=i.toString();
        System.out.println(str2);
        //方式三
        String str3=String.valueOf(i);
        System.out.println(str3);
        //string 转换Integer
        String str4="12345";
        Integer a=Integer.parseInt(str4);//用Integer提供的封装方法ParseInt转换
        System.out.println(a);
      //  Integer b=new Integer(str4);




    }
}
 System.out.println(Integer.MIN_VALUE);//返回最小值
        System.out.println(Integer.MAX_VALUE);//返回最大值
        System.out.println(Character.isDigit('a'));//判断是不是数子
         System.out.println(Character.isLetter('a')); //判断是不是字母
        System.out.println(Character.isUpperCase('a')); 判断是不是大写
        System.out.println(Character.isLowerCase('a'));//判断是不是小写
        System.out.println(Character.isWhitespace('a'));//判断是不是空格
         System.out.println(Character.toUpperCase('a'));//转成大写
         System.out.println(Character.toLowerCase('A'));//转成小写

部分Integer和Character常用的方法

一道题:

第一个false的原因是,==判断的是对象地址是否相等,即是否为同一个对象。

i和j显然不是,第二个Interger m=1,Interger n=1,这是自动装箱,实际上是Integer.valueOf(),追到源码查看:

 public static Integer valueOf(int i) {
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }

     意思是如果形参的数如果小于一个范围或大于一个范围,则返回一个新new 的Integer对象。

         范围是-128-127,第二个没有超过范围为true,第三个超出范围false

如果没有超出范围则从数组cache返回,超出了就返回一个新数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值