学习日记(常用类之 Object、Objects、StringBuilder、Math、System、BigDecimal)

学习日记(常用类之 Object、Objects、StringBuilder、Math、System、BigDecimal)

一、Object 类

  • 一个类要么默认继承了 Object 类,要么间接继承了 Object 类,Object 类是 java 中的祖宗类
  • Object 类的方法是一切子类都可以直接使用的,所以要学习 Object 类的方法。
方法名说明
toString()默认返回当前对象在堆内存中的地址信息:类的全限名@地址信息,返回值类型为 String 类型
equals(Object o)默认比较当前对象与另一对象的地址是否相同,返回值类型为 boolean 型

1. toString 方法

开发中输出对象变量,更多的是希望看到对象的内容数据而不是地址,因此 toString 方法存在的意义就是为了被子类重写(快捷键:Alt + Insert),以便返回对象的内容信息。

2. equals 方法

父类 equals 方法存在的意义就是为了被子类重写(快捷键:Alt + Insert),以便子类来自己制定规则。


二、Objects 类

Objects 类与 Object 类还是继承关系,Objects 类是从 JDK1.7 开始之后才有的。Objects 类的 equals 方法更安全

方法名说明
equals(Object a, Object b)比较两个对象内容是否相等,会先进行非空判断,static 方法,返回值为 boolean 类型
isNull(Object obj)判断变量是否为 null,static 方法,返回值为 boolean 类型

1. equals 方法

2. isNull 方法


三、StringBuilder 类

  • StringBuilder 是一个可变的字符串类,我们可以把它看成是一个对象容器。
  • 作用:提高字符串的操作效率,如拼接、修改等。
方法名说明
append(任意类型)添加数据,返回值类型为 StringBuilder 类型(支持链式编程
reverse()将对象的内容反转,返回值类型为 StringBuilder 类型(支持链式编程
length()返回对象内容长度,返回值类型为 int 类型
toString()将 StringBuilder 类型转换为 String 类型,返回值类型为 String 类型

1. 各种方法演示

2. 案例:打印整形数组内容

需求:设计一个方法用于输出任意整形数组的内容,需要输出以下格式:“该数组内容为:[11, 22, 33, 44, 55]”。

运行结果

更优美的代码

package com.residue.manyclass;

public class StringBuilderDemo04 {

    public static void main(String[] args) {

        int[] array = {11, 22, 33, 44, 55};

        String result = new StringBuilderDemo04().printIntArray(array);

        System.out.println(result);

    }

    public String printIntArray(int[] array) {
        if (array != null) {
            StringBuilder s = new StringBuilder();
            s.append("该数组内容为:[");
            for (int i = 0; i < array.length; i++) {
                s.append(array[i]).append(i == (array.length - 1) ? "" : ", ");
            }
            s.append("]");

            return s.toString();
        } else {
            return null;
        }
    }
}

四、Math 类

  • 包含执行基本数字运算的方法,Math 类没有提供公开的构造器。
  • 通过类名可以直接调用静态方法。
常用方法名说明
abs(int a)获取绝对值,返回值为 int 类型
ceil(double a)向上取整,返回值为 double 类型
floor(double a)向下取整,返回值为 double 类型
round(float a)四舍五入,返回值为 int 类型
max(int a, int b)获取最大值,返回值为 int 类型
pow(double a, double b)返回 a 的 b 次幂,,返回值为 double 类型
random()返回一个范围为 [0.0, 1.0) 的随机数(左闭右开),返回值为 double 类型


五、System 类

System 类的功能是通用的,都是直接用类名调用即可,所以 System 不能被实例化。

方法名说明
exit(int status)终止当前运行的 java 虚拟机,status 非零表示异常终止
currentTimeMillis()返回当前系统的时间毫秒值形式,返回值为 long 类型
arraycopy(数组源数组,起始索引,目的地数组,起始索引,拷贝个数)数组拷贝

1. exit 方法

2. currentTimeMillis 方法

3. arraycopy 方法(了解)


六、BigDecimal 类

用于解决浮点型数据运算精度失真的问题。包装浮点型数据成为大数据对象方法

  • 入参为 String 的构造方法:BigDecimal a = new BigDecimal("0.1");
  • 最好)使用 BigDecimal 的 valueOf 方法:BigDecimal a = BigDecimal.valueOf(0.1);

方法名说明
valueOf()包装各种数据成为大数据对象
add(BigDecimal b)加法,返回值类型为 BigDecimal 类型
subtract(BigDecimal b)减法,返回值类型为 BigDecimal 类型
multiply(BigDecimal b)乘法,返回值类型为 BigDecimal 类型
divide(BigDecimal b)除法,返回值类型为 BigDecimal 类型
divide(另一个 BigDecimal 对象,精确几位,舍入模式)除法,返回值类型为 BigDecimal 类型
doubleValue()把大数据类型转换为 double 类型

1. 各种方法演示

注意:BigDecimal 一定是要精度运算的!

2. 把大数据类型转换为 double 或 int 类型


注意:

  1. 比较对象内容时建议使用 Objects 提供的 equals 方法,原因:比较结果相同,但更安全。
  2. 拼接、反转字符串建议用 StringBuilder,因为 String 类内容不可变、拼接字符串性能差;StringBuilder 类内容可变、拼接字符串性能好、代码优雅。但是,要注意,StringBuilder 类是提高效率的手段,String 类是目的,最后仍要把 StringBuilder 类转换为 String 类。
  3. BigDecimal 类型可以解决浮点型数据运算精度失真的问题,但是 BigDecimal 只是手段,最后还要转化为 int 类型或 double 类型。
  4. BigDecimal 一定是要精度运算的,否则如下所示。

  1. 重要的是理解
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sun 3285

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值