目录
object:
toString:
equals: 编辑
Math:编辑
System:
BigDecimal:
基本数据的包装类:编辑
object:
我们知道,所有的类都是间接或直接继承了object类。然后object里面有几个用得很多的方法。
toString:
如果我们直接调用这个方法它默认是打印对象的地址。
看这个代码:
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中
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的数组来相减,会损失一定的精确度。如:
所以这是我们就要用这个类来解决问题。
我们一般有两种方法创造方法:
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
看看构造
为什么会说以弃用呢?其实我感觉就是闲太麻烦了,有种更简单的方法
public class Test2 {
public static void main(String[] args) {
Integer int1=Integer.valueOf(1); //旧写法
Integer int2=10; //新写法
}
}
你感觉谁用着简单?
内置类型的包装类也提供了很多方法,建议去API自行查看。
比如可以用它的转二进制方法: