目录
[equals: 编辑](#equals: 编辑)
object:
我们知道,所有的类都是间接或直接继承了object类。然后object里面有几个用得很多的方法。
toString:
![](https://file.jishuzhan.net/article/1793259109278027778/159ea4975d4d18d7d4eb0da6c23c62c2.webp)
如果我们直接调用这个方法它默认是打印对象的地址。
看这个代码:
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());
}
}
![](https://file.jishuzhan.net/article/1793259109278027778/ff8df1e06107fdb5804f29ceb54aec97.webp)
打印的是路径加上十六进制的地址哈希值。这里我们一般都叫地址。
然后我们可以让编译帮我们重写方法:
在类里右键点击生成
![](https://file.jishuzhan.net/article/1793259109278027778/91274a655921433c0c41db9dc42c301e.webp)
再点击toString
![](https://file.jishuzhan.net/article/1793259109278027778/7275b2a7f10fb37284ebcfdedc985384.webp)
我们就可以生成一个可以打印有效信息的方法,非常好用:
我们再次执行程序,就会打印我们声明的变量,非常好用:
equals:
![](https://file.jishuzhan.net/article/1793259109278027778/f82c71b101196445b25383ad4302eede.webp)
参数是一个object父类,意思是所有的对象都可以比较,但默认是比的地址值。所以编译器又给我们了一个重写模板,我们直接用就行了。
![](https://file.jishuzhan.net/article/1793259109278027778/04665a382083b04c5f35ed3a7d16ce96.webp)
非常好用,但是请想一个问题,如果我们的对象是一个null,调用了此方法肯定会报错。
所以就有了我们,objects.equals,这个方法很好的解决了空指针问题。
![](https://file.jishuzhan.net/article/1793259109278027778/f6bf666fd949bf58d1364affd636004b.webp)
我们看看这个方法的源码,非常的喵~
![](https://file.jishuzhan.net/article/1793259109278027778/73adee3efcc674b239a2c7493b134233.webp)
请自行分析。
Math:
![](https://file.jishuzhan.net/article/1793259109278027778/8eb7e92567eb75569dba01ef5d8c9bfe.webp)
可见他是一个方法类,我们不需要背,直接上api查就行了。
System:
这也是一个方法类,直接用不用new对象,System类里边有个拷贝数组函数非常好用。
![](https://file.jishuzhan.net/article/1793259109278027778/e894847722a00ef1a3ec46d0bb489af6.webp)
比如这个代码就将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]);
}
}
}
![](https://file.jishuzhan.net/article/1793259109278027778/307e35c9fedf30469d17a4f294384ed8.webp)
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)); //相减的方法
}
}
我们一般用这两种方法来创建对象
运行:
基本数据的包装类:![](https://file.jishuzhan.net/article/1793259109278027778/1483bf7d609c335a2e2982a44db95b97.webp)
我在这只简单讲一下Integer
看看构造
![](https://file.jishuzhan.net/article/1793259109278027778/edd6a120210b52b61dae41243ee0b9f3.webp)
为什么会说以弃用呢?其实我感觉就是闲太麻烦了,有种更简单的方法
java
public class Test2 {
public static void main(String[] args) {
Integer int1=Integer.valueOf(1); //旧写法
Integer int2=10; //新写法
}
}
你感觉谁用着简单?
内置类型的包装类也提供了很多方法,建议去API自行查看。
比如可以用它的转二进制方法:
![](https://file.jishuzhan.net/article/1793259109278027778/302cbd5d137e3be8e437ebc75f4fd9d5.webp)