常用类型 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(""); } }