Java 常用类

发布时间:2024年01月17日

一、包装类

特点

  • 针对八种基本数据类型相应的引用类型
  • 有了类的特点,就可以调用类中的方法
  • 除了Boolean、Character 直接继承自 Object,其它的都先继承自Number,Number再继承Object

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

装箱和拆箱、手动和自动

public class Integer01 {
    public static void main(String[] args) {
        //演示 int <--> Integer 的装箱和拆箱
        //1.jdk5 前是手动装箱和拆箱
        //手动装箱 int->Integer
        int n1 = 100;
        Integer integer = new Integer(n1);
        Integer integer1 = Integer.valueOf(n1);
        //手动拆箱 Integer -> int
        int i = integer.intValue();

        //2.jdk5 后,就可以自动装箱和自动拆箱
        int n2 = 200;
        //自动装箱 int->Integer
        Integer integer2 = n2;      //底层使用的是 Integer.valueOf(n2)
        //自动拆箱 Integer->int
        int n3 = integer2;          //底层仍然使用的是 intValue()方法
    }
}

三元运算符会自动转成表达式1和表达式2中容量最大的类型!!!

2.包装类和 String 的转换

public class WrapperVSString {
    public static void main(String[] args) {
        //包装类 Integer->String
        Integer i = 100;       //自动装箱
        //方式 1
        String str1 = i + "";
        //方式 2
        String str2 = i.toString();
        //方式 3
        String str3 = String.valueOf(i);
        
        //String -> 包装类 Integer
        String str4 = "12345";
        //方式 1
        Integer i2 = Integer.parseInt(str4);   //使用到自动装箱
        //方式 2
        Integer i3 = new Integer(str4);        //构造器
        System.out.println("ok~~");
    }
}

3.Integer 类和 Character 类的常用方法

public class WrapperMethod {
    public static void main(String[] args) {
        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'));//转成小写
    }
}

4.Integer 类面试题

public class WrapperExercise02 {
    public static void main(String[] args) {
        //题 1
        Integer i = new Integer(1);
        Integer j = new Integer(1);
        System.out.println(i == j);//两个对象的引用地址,False

        //题 2
        Integer m = 1;  //底层自动装箱 Integer.valueOf(1);
        Integer n = 1;  //底层自动装箱 Integer.valueOf(1);
        System.out.println(m == n); //True,必须阅读Integer.valueOf()源码
        /*源码
            IntegerCache.low = -128;
            IntegerCache.high = 127;

            public static Integer valueOf(int i) {
                if (i >= IntegerCache.low && i <= IntegerCache.high)
                    return IntegerCache.cache[i + (-IntegerCache.low)];
            return new Integer(i);
            }
        //1. 如果 i 在 -128~127,就直接从数组返回
        //2. 如果不在 -128~127,就直接 new Integer(i)
        */

        //题 3
        Integer x = 128;//底层 Integer.valueOf(1);
        Integer y = 128;//底层 Integer.valueOf(1);
        System.out.println(x == y); //False,同上述

        //示例一
        Integer i1 = new Integer(127);
        Integer i2 = new Integer(127);
        System.out.println(i1 == i2);//F
        //示例二
        Integer i3 = new Integer(128);
        Integer i4 = new Integer(128);
        System.out.println(i3 == i4);//F
        //示例三
        Integer i5 = 127;    //底层 Integer.valueOf(127)
        Integer i6 = 127;    //-128~127
        System.out.println(i5 == i6); //T
        //示例四
        Integer i7 = 128;
        Integer i8 = 128;
        System.out.println(i7 == i8);//F
        //示例五
        Integer i9 = 127;    //Integer.valueOf(127)
        Integer i10 = new Integer(127);
        System.out.println(i9 == i10);//F
        //示例六
        Integer i11=127;
        int i12=127;
        //只有有基本数据类型,判断的是 值是否相同
        System.out.println(i11==i12); //T
        //示例七
        Integer i13=128;
        int i14=128;
        System.out.println(i13==i14);//T
    }
}

二、String类

?

文章来源:https://blog.csdn.net/weixin_68074170/article/details/135635969
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。