添砖Java(十一)——常见类的使用Object,Math,System,BigDeciaml,包装类

目录

object:

toString:

[equals: ​编辑](#equals: 编辑)

Math:​编辑

System:

BigDecimal:

基本数据的包装类:​编辑


object:

我们知道,所有的类都是间接或直接继承了object类。然后object里面有几个用得很多的方法。

toString:

如果我们直接调用这个方法它默认是打印对象的地址。

看这个代码:

java 复制代码
class student
{
    int age=18;
    String name="张三";

}

public class Test2 {
    public static void main(String[] args) {
        student s1=new student();
        System.out.println(s1.toString());
    }
}

打印的是路径加上十六进制的地址哈希值。这里我们一般都叫地址。

然后我们可以让编译帮我们重写方法:

在类里右键点击生成

再点击toString

我们就可以生成一个可以打印有效信息的方法,非常好用:

我们再次执行程序,就会打印我们声明的变量,非常好用:

equals:

参数是一个object父类,意思是所有的对象都可以比较,但默认是比的地址值。所以编译器又给我们了一个重写模板,我们直接用就行了。

非常好用,但是请想一个问题,如果我们的对象是一个null,调用了此方法肯定会报错。

所以就有了我们,objects.equals,这个方法很好的解决了空指针问题。

我们看看这个方法的源码,非常的喵~

请自行分析。

Math:

可见他是一个方法类,我们不需要背,直接上api查就行了。

System:

这也是一个方法类,直接用不用new对象,System类里边有个拷贝数组函数非常好用。

比如这个代码就将arr1的内容拷贝到了arr2中

java 复制代码
public class Test2 {
    public static void main(String[] args) {
       int arr1[]={1,2,3};
       int arr2[]={0,0,0};
       System.arraycopy(arr1,0,arr2,0,3);
        for (int i = 0; i < arr2.length; i++) {
            System.out.println(arr2[i]);
        }
    }
}

BigDecimal:

我么要知道,直接用两个double的数组来相减,会损失一定的精确度。如:

所以这是我们就要用这个类来解决问题。

我们一般有两种方法创造方法:

java 复制代码
public class Test2 {
    public static void main(String[] args) {
        BigDecimal b1=new BigDecimal("1");     //通过字符构造对象
       BigDecimal b2=BigDecimal.valueOf(1.1);//通过这个方法传入double类型数,据静态方法不用new
        System.out.println(b2.subtract(b1));   //相减的方法
    }
}

我们一般用这两种方法来创建对象

运行:

基本数据的包装类:

我在这只简单讲一下Integer

看看构造

为什么会说以弃用呢?其实我感觉就是闲太麻烦了,有种更简单的方法

java 复制代码
public class Test2 {
    public static void main(String[] args) {
        Integer int1=Integer.valueOf(1); //旧写法
        Integer int2=10;                 //新写法
    }
}

你感觉谁用着简单?

内置类型的包装类也提供了很多方法,建议去API自行查看。

比如可以用它的转二进制方法:

相关推荐
yaoxin52112313 分钟前
279. Java Stream API - Stream 拼接的两种方式:concat() vs flatMap()
java·开发语言
@小码农15 分钟前
202512 电子学会 Scratch图形化编程等级考试三级真题(附答案)
服务器·开发语言·数据结构·数据库·算法
坚持学习前端日记28 分钟前
2025年的个人和学习年度总结以及未来期望
java·学习·程序人生·职场和发展·创业创新
Cosmoshhhyyy29 分钟前
《Effective Java》解读第29条:优先考虑泛型
java·开发语言
一路往蓝-Anbo32 分钟前
C语言从句柄到对象 (六) —— 继承与 HAL:父类指针访问子类数据
c语言·开发语言·stm32·嵌入式硬件·物联网
北冥有一鲲35 分钟前
A2A协议与LangChain.js实战:构建微型软件工厂
开发语言·javascript·langchain
Chen不旧42 分钟前
java基于reentrantlock/condition/queue实现阻塞队列
java·开发语言·signal·reentrantlock·await·condition
laplace01231 小时前
Part 3:模型调用、记忆管理与工具调用流程(LangChain 1.0)笔记(Markdown)
开发语言·人工智能·笔记·python·langchain·prompt
寒水馨1 小时前
com.github.oshi : oshi-core 中文文档(中英对照·API·接口·操作手册·全版本)以6.4.0为例,含Maven依赖、jar包、源码
java·后端
0和1的舞者1 小时前
SpringBoot日志框架全解析
java·学习·springboot·日志·打印·lombok