深入探讨java常用类------包装类、BigInteger、BigDecimal、DecimalFormat、Enum枚举类(下)

目录

一、包装类

1.1 概述

1.2 常用API

二、 BigInteger类

三、 BigDecimal类

四、 DecimalFormat 类

4.1 概述

4.2 代码演示

五、Enum 类

5.1 概述

5.2 枚举的使用

语法定义

枚举变量的使用

5.3 常用API


一、包装类

1.1 概述

        Java提供了8种基本数据类型,但它们的操作功能有限。因此,Java为每种基本类型提供了对应的包装类,这些包装类都位于java.lang包下。

基本类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

1.2 常用API

  • 自动装箱与拆箱

    Java支持基本类型与其包装类之间的自动转换,称为自动装箱与拆箱。

    @Test
    public void testInteger01() {
        Integer i = 1; // 自动装箱
        System.out.println(i); // 输出:1
    }
    
    @Test
    public void testInteger02() {
        Integer i = new Integer(1);
        int i2 = i; // 自动拆箱
        System.out.println(i2); // 输出:1
    }
    

  • 字符串转基本类型

    包装类提供了parseXXX静态方法将字符串转换为对应的基本类型。

    @Test
    public void testInteger03() {
        int i = Integer.parseInt("99");
        System.out.println(i); // 输出:99
    }
    

  • 包装类转基本类型

    @Test
    public void testInteger04() {
        Integer it = new Integer(100);
        int i = it.intValue();
        System.out.println(i); // 输出:100
    }
    

二、 BigInteger类

  • 概述

    BigInteger用于处理任意精度的整数运算。

  • 常用方法

     @Test
        public void testBigInteger01() {
            // 创建两个 BigInteger 对象,b1 和 b2,初始值均为 "1000"
            BigInteger b1 = new BigInteger("1000");
            BigInteger b2 = new BigInteger("1000");
    
            // 使用 add() 方法将 b1 和 b2 相加,并输出结果
            System.out.println(b1.add(b2)); 
            // 输出:2000
            // add() 方法用于对两个 BigInteger 对象执行加法操作
            // 结果为 b1 + b2,即 1000 + 1000 = 2000
    
            // 使用 subtract() 方法将 b2 从 b1 中减去,并输出结果
            System.out.println(b1.subtract(b2)); 
            // 输出:0
            // subtract() 方法用于对两个 BigInteger 对象执行减法操作
            // 结果为 b1 - b2,即 1000 - 1000 = 0
    
            // 使用 multiply() 方法将 b1 和 b2 相乘,并输出结果
            System.out.println(b1.multiply(b2)); 
            // 输出:1000000
            // multiply() 方法用于对两个 BigInteger 对象执行乘法操作
            // 结果为 b1 * b2,即 1000 * 1000 = 1000000
    
            // 使用 divide() 方法将 b1 除以 b2,并输出结果
            System.out.println(b1.divide(b2)); 
            // 输出:1
            // divide() 方法用于对两个 BigInteger 对象执行除法操作
            // 结果为 b1 / b2,即 1000 / 1000 = 1
        }

三、 BigDecimal类

  • 概述

     BigDecimal用于处理任意精度的浮点数运算。

  • 常用方法

    public static void main(String[] args) {
            // 创建两个 BigDecimal 对象,b1 和 b2
            BigDecimal b1 = new BigDecimal("1000.05");
            BigDecimal b2 = new BigDecimal("1000.05");
    
            // 使用 add() 方法将 b1 和 b2 相加,并输出结果
            System.out.println(b1.add(b2)); 
            // 输出:2000.10
            // add() 方法用于对两个 BigDecimal 对象执行加法操作
    
            // 使用 subtract() 方法将 b2 从 b1 中减去,并输出结果
            System.out.println(b1.subtract(b2)); 
            // 输出:0.00
            // subtract() 方法用于对两个 BigDecimal 对象执行减法操作
            // 在这个例子中,b1 和 b2 的值相同,减法结果为 0.00
    
            // 使用 multiply() 方法将 b1 和 b2 相乘,并输出结果
            System.out.println(b1.multiply(b2)); 
            // 输出:1000100.0025
            // multiply() 方法用于对两个 BigDecimal 对象执行乘法操作
            // 计算结果为 1000.05 * 1000.05
    
            // 使用 divide() 方法将 b1 除以 b2,并输出结果
            System.out.println(b1.divide(b2)); 
            // 输出:1
            // divide() 方法用于对两个 BigDecimal 对象执行除法操作
            // 因为 b1 和 b2 相等,除法结果为 1
        }

    四、 DecimalFormat

    4.1 概述

      java.text.DecimalFormatNumberFormat 的一个具体子类,用于格式化十进制数字。它提供了强大的功能,可以解析和格式化任意语言环境中的数值,支持西方、阿拉伯和印度数字,能够处理整数、定点数、科学记数法、百分数和货币等多种数值类型。DecimalFormat 的灵活性使其成为格式化数字的首选工具。

    4.2 代码演示

            以下是一些DecimalFormat的典型用法示例:

    public static void main(String[] args) {
        double pi = Math.PI; // 圆周率
        // 取一位整数
        System.out.println(new DecimalFormat("0").format(pi)); // 输出: 3
        // 取一位整数和两位小数
        System.out.println(new DecimalFormat("0.00").format(pi)); // 输出: 3.14
        // 取两位整数和三位小数,整数不足部分以0填补
        System.out.println(new DecimalFormat("00.000").format(pi)); // 输出: 03.142
        // 取所有整数部分
        System.out.println(new DecimalFormat("#").format(pi)); // 输出: 3
        // 以百分比方式计数,并取两位小数
        System.out.println(new DecimalFormat("#.##%").format(pi)); // 输出: 314.16%
    
        long c = 299792458; // 光速
        // 显示为科学计数法,并取五位小数
        System.out.println(new DecimalFormat("#.#####E0").format(c)); // 输出: 2.99792E8
        // 显示为两位整数的科学计数法,并取四位小数
        System.out.println(new DecimalFormat("00.####E0").format(c)); // 输出: 29.9792E7
        // 每三位以逗号进行分隔
        System.out.println(new DecimalFormat(",###").format(c)); // 输出: 299,792,458
        // 将格式嵌入文本
        System.out.println(new DecimalFormat("光速大小为每秒,###米。").format(c)); 
        // 输出: 光速大小为每秒299,792,458米。
    }
    

            这些示例展示了DecimalFormat在不同情境下的使用方法,显示了它在数值格式化中的强大功能。

    五、Enum

    5.1 概述

            在开发过程中,经常需要处理一组有限的常量,例如星期几、月份等。在JDK1.5之前,开发者通常通过一系列静态常量来实现,但这种方法存在一些操作上的不便。为此,Java在1.5版本引入了枚举类型Enum,用来更好地处理这类需求。

    5.2 枚举的使用

    语法定义

    枚举类型的定义语法非常简单:

    enum 枚举名称 {
        枚举常量, 枚举常量, 枚举常量...
    }
    

    代码演示:

    public enum Genders {
        MALE, FEMALE;
    }
    

    在上述代码中,MALEFEMALE 是枚举常量,且默认类型为Genders

    枚举变量的使用

    定义枚举变量并为其赋值的示例:

    @Test
    public void testEnum01() {
        Genders person = Genders.MALE;
        System.out.println(person); // 输出: MALE
    }
    

    枚举不仅可以定义常量,还可以包含属性、构造方法、成员方法等。枚举的构造方法必须是private修饰的,且不能继承其它类,但可以实现接口。

    5.3 常用API

    由于枚举类型继承自Enum类,因此所有枚举类型都可以使用Enum类中的方法。常用的几个方法如下:

    @Test
    public void testEnum02() {
        Genders person = Genders.FEMALE;
        System.out.println(person.name()); // 输出: FEMALE
        System.out.println(person.ordinal()); // 输出: 1
    
        Genders p1 = Enum.valueOf(Genders.class, "MALE");
        System.out.println(p1.name()); // 输出: MALE
        System.out.println(p1.ordinal()); // 输出: 0
    }
    

            如果这篇文章对你有帮助可以给我一个免费的赞和关注,这是我持续更新的动力!

  • 23
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值