包装类(wrapper)

在这里插入图片描述
在这里插入图片描述

包装类和基本数据类型间的转换(Interger演示)

public class WrapperType01 {
    public static void main(String[] args) {
        int a = 10;
        // 手动封箱,
        Integer integer = Integer.valueOf(a);
        System.out.println(integer);
        // 手动拆箱
        int i = integer.intValue();
        System.out.println(i);

        // 自动封箱
        Integer integer2 = a;
        // 自动拆箱
        int i2 = integer2;
        System.out.println(integer2 + " i2 " + i2);
    }
}

1、jdk5之前为手动装箱和拆箱的方式。

装箱:基本类型→ 包装类型 拆箱: 包装类型 → 基本类型

2、jdk5之后为自动装箱和封箱

3、自动装箱调用的为valueOf,拆箱调用的为,intValue

其他的包装类与基本类型的转换方法相同

测试

在这里插入图片描述
在这里插入图片描述

包装类型和String类型间的转换方法:

public class WrapperType03 {
    public static void main(String[] args) {
        // Integer  -> String
        Integer i = 10;  // 注意声明的类型为 Integer
        // 方式一
        String s = String.valueOf(i);
        // 方式二
        String s2 = i + "";
        // 方式三
        String s3 = i.toString();

        // String -> Integer
        // 方式一
        String s01 = "1235";
        // 方式二
        int i1 = Integer.parseInt(s01);
        System.out.println(i1);
    }
}

包装类常用的用法:

// 整数最大值
System.out.println(Integer.MAX_VALUE);
// 整数最小值
System.out.println(Integer.MIN_VALUE);
// 判断是不是数字
System.out.println(Character.isDigit(10));
System.out.println(Character.isLetter('s'));

// 判断是不是小写字母
System.out.println(Character.isLowerCase('d'));
// 判断是不是大写字母   注意是对字符进行判断
System.out.println(Character.isUpperCase('F'));
// 是不是空格
System.out.println(Character.isWhitespace(' '));
// 转大写
System.out.println(Character.toUpperCase('s'));
// 转小写
System.out.println(Character.toLowerCase('s'));
String name = "zhang";
System.out.println(name.toUpperCase());

面试题

public class WrapperType04 {
    public static void main(String[] args) {
        // 自动调用了Integer.valueOf(128);
        // 既然要比较是否相等,其实看地址是不是相同,
        // 看源码,有没有new一个对象。
        Integer a = 128;   
        Integer b = 128;
        System.out.println(a == b);   // false

        Integer a1 = 1;
        Integer b1 = 1;
        System.out.println(a1 == b1);  // true
    }
}
// 范围在-128 到 127之间
public static Integer valueOf(int i) {
    if (i >= IntegerCache.low && i <= IntegerCache.high)
        return IntegerCache.cache[i + (-IntegerCache.low)];
    return new Integer(i);
}

注意:

只要有基本数据类型,那么 == ,就是判断的值是否相等。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐