常用类型 Object String 8个包装类型 Math Class反射
Object类
-
java.lang包 根基类型,所有的对象都拥有Object中的方法
-
JDK提供好的常用类型;
1,toString()方法
/**
* toString方法 返回 对象的字符串形式:对这个对象的一个描述
*/
private static void method1() {
Student stu1 = new Student(2001, "t2");
// toString方法 返回 对象的字符串形式:对这个对象的一个描述
System.out.println(stu1.toString());
//直接打印对象名 默认去调用 toString方法
System.out.println(stu1);
String str = "java";
System.out.println(str);
Object ob2 = "java2";
System.out.println(ob2.toString());
}
2,equals方法
/**
* equals方法 用来比较两个对象是否相等
*/
private static void method2() {
Student stu1 = new Student(2001, "t2");
Student stu2 = stu1;
// 两个引用如果使用双等号比较 比较的是两个引用是否指向同一个对象;
System.out.println(stu1 == stu2);
//equals方法用来比较两个对象是否相等;
System.out.println(stu1.equals(stu2));
String str1 = new String("java");
String str2 = new String("Java");
System.out.println("str1==str2: " + (str1 == str2));
//String的equals方法只比较字符内容 是否一一相等
System.out.println("equals: " + str1.equals(str2));
Student stu3 = new Student(2001, "t2");
Student stu4 = new Student(2002, "t2");
System.out.println(stu3 == stu4);
System.out.println(stu3.equals("java"));
}
3,hashCode方法
/**
* hashCode方法,返回对象的哈希值
* native修饰的方法是本地方法 本地方法的实现由本地语言C,C++语言实现
*/
private static void method3() {
//哈希值:一个对象的哈希值 好像对象的身份证号 具有唯一性
//不同的对象 应该具有不同的哈希值 ;
// 相同的对象 应该具有相同的哈希值 ;
Student stu1 = new Student(2001, "t2");
Student stu2 = new Student(2001, "t3");
System.out.println(stu1.hashCode());
System.out.println(stu1.hashCode());
//相等
System.out.println(stu1.equals(stu2));
System.out.println(stu2.hashCode());
}
4,clone方法
// Cloneable标记接口 告诉JVM可以被克隆
public class Dog implements Cloneable {
private int id;
private String name;
public Dog() {
}
public Dog(int id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "Dog{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
public Object getNewDog() {
try {
return this.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return null;
}
}
测试代码
/**
* 测试克隆
*/
private static void method4() {
Dog dog = new Dog(101, "dog1");
Object newDog = dog.getNewDog();
System.out.println(newDog);
}
5,工具类
/**
* Objects工具类
*/
private static void method6() {
//Objects是 给Object提供的工具类,为了优化空指针异常的情况
Objects obj;
Student stu1 = new Student(2001, "t2");
Student stu2 = new Student(2001, "t3");
/* if (stu1 != null) {
System.out.println(stu1.equals(stu2));
}*/
System.out.println(stu1.hashCode());
System.out.println(Objects.equals(stu1, stu2));
System.out.println(Objects.hashCode(stu1));
}
private static void method5(String str) {
// requireNonNull 用来做 非空校验
Objects.requireNonNull(str);
//对参数的有效性校验
if (str == null) {
throw new NullPointerException("");
}
}
本文介绍了Java中Object类的基础用法,包括toString(),equals(),hashCode(),clone()以及Objects工具类的运用,展示了如何比较对象相等性和进行对象复制,同时提及了空指针异常的处理。
157

被折叠的 条评论
为什么被折叠?



