0
点赞
收藏
分享

微信扫一扫

JAVA 常用类

夕颜合欢落 2022-03-17 阅读 96

一、常用类:

二、 基本数据类型的包装类

Java是面向对象的语言,但并不是“纯面向对象”的,因为我们经常用到的基本数据类型就不是对象。但是我们在实际应用中经常需要将基本数据转化成对象,以便于操作。比如:将基本数据类型存储到Object[ ]数组或集合中的操作等等。

为了解决这个不足,Java在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class)。

包装类位于java.lang包,八种包装类和基本数据类型的对应关系:

在这八个类名中,除了IntegerCharacter类以外,其它六个类的类名和基本数据类型一致,只是类名的第一个字母大写而已。

Number类是抽象类,因此它的抽象方法,所有子类都需要提供实现。Number类提供了抽象方法:intValue()longValue()floatValue()doubleValue(),意味着所有的“数字型”包装类都可以互相转型。

/*
 *  包装类的基本用法:
 *      1. 把基本数据类型和我们 对象 的互相转化
 *      2. 在基本数据类型、包装类对象、、字符串之间提供相互转化
 *
 *  八种基本数据类型对应八种包装类
 */
public class TestInteger {

    public static void main(String[] args) {

        Integer i = new Integer(10);  // 从Java9 开始被废除
        //  将一个数字(数值)转成一个对象, 也就是包装起来
        Integer j = Integer.valueOf(50);    // 官方推荐使用 -- 将一个数转换度(包装)成对象

//        System.out.println(j+i);
        int a = j.intValue();   // 把包装类对象转换成基本数字类型
        double b = j.doubleValue();
        System.out.println(a+"   "+b);
        
        // 把字符串转成数字 -- 需要字符串是纯数字字符串才行,否则会报错
        // 例如 ("456abc") 会报异常 -- NumberFormatException  【数字格式异常】
        Integer m = Integer.valueOf("456");
//        Integer n = Integer.valueOf("345abx");// NumberFormatException (数字格式异常)
        System.out.println(Integer.MAX_VALUE);

        // 基本数据类型 和 对象之间的相互转化
        Integer a1 = Integer.valueOf(20);
        int a2 = a1.intValue();
        
//      测试自动装箱和拆箱
        Integer x = 100;  // 自动装箱--- 编译器: Integer x = Integer.valueOf(100);
        int y = x;      //自动拆箱 --- 编译器: int y = x.intValue();

//     包装类 -- 空指针异常问题
        Integer z = null;
//        int zz = z;  // 会报空指针异常 编译器:int zz = z.intValue()

//        测试缓存问题
        // 自动装箱时,[-128,127]之间的数有缓存,相当于系统已经帮你建好了转换对象,不需要重新去
        Integer x1 = 100;
        Integer x11 = Integer.valueOf(100); // 自动装箱
        Integer x2 = 100;
        Integer x3 = 1000;
        Integer x4 = 1000;

//        == 比较的是内存地址( 变量(栈)中存放的对象的(堆)内存地址)
//        而 equals 方法 比较的还是两对象的内容是否相等
        System.out.println(x1 == x2);  // true,由于缓存问题
        System.out.println(x3 == x4);
        System.out.println(x1.equals(x2));  // 比较数值(字符)
        System.out.println(x3.equals(x4));
    }
}

包装类的用途

对于包装类来说,这些类的用途主要包含两种:

  1. 作为和基本数据类型对应的类型存在,方便涉及到对象的操作,如Object[ ]、集合等的操作。
  2. 包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法(这些操作方法的作用是在基本数据类型、包装类对象、字符串之间提供相互之间的转化!)。

 三、包装类的使用

public class Test {
    /** 测试Integer的用法,其他包装类与Integer类似 */
    void testInteger() {
        // 基本类型转化成Integer对象
        Integer int1 = new Integer(10);   //已经被废弃,不推荐使用
        Integer int2 = Integer.valueOf(20); // 官方推荐这种写法
        // Integer对象转化成int
        int a = int1.intValue();
        // 字符串转化成Integer对象
        Integer int3 = Integer.parseInt("334");
        Integer int4 = new Integer("999");
        // Integer对象转化成字符串
        String str1 = int3.toString();
        // 一些常见int类型相关的常量
        System.out.println("int能表示的最大整数:" + Integer.MAX_VALUE); 
    }
    public static void main(String[ ] args) {
        Test test  = new Test();
        test.testInteger();
    }
}
举报

相关推荐

Java常用类

JAVA常用类

java常用类

Java:常用类

java - 常用API、常用类

0 条评论