Object类
ToString方法
类定义
package 高级.demo01_Object类;
import java.util.Objects;
public class demo02_Person类 {
private String name;
private int age;
public String getName() {
return name;
}
// 重写Object类的toString方法
@Override
public boolean equals(Object o) {
if (this == o) return true;
// getClass() 使用 反射,等效于instanceof()
if (o == null || getClass() != o.getClass()) return false;
demo02_Person类 that = (demo02_Person类) o;
return age == that.age && Objects.equals(name, that.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public String toString() {
return "demo02_Person类{" +
"name='" + name + ''' +
", age=" + age +
'}';
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public demo02_Person类(String name, int age) {
this.name = name;
this.age = age;
}
public demo02_Person类() {
}
}
类使用
package 高级.demo01_Object类;
public class demo01_ToString方法 {
public static void main(String[] args) {
demo02_Person类 p = new demo02_Person类("张三",20);
String s = p.toString();
System.out.println(s);
System.out.println(p); // 获取对象的地址值
}
}
Equals方法
package 高级.demo01_Object类;
public class demo03_Equals方法 {
public static void main(String[] args) {
demo02_Person类 p1 = new demo02_Person类("Jack",21);
demo02_Person类 p2 = new demo02_Person类("Rose",19);
boolean b = p1.equals(p2);
System.out.println(b); // false
}
}
Objects工具类
package 高级.demo01_Object类;
import java.util.Objects;
public class demo04_Objects工具类 {
public static void main(String[] args) {
String s1 = null;
String s2 = "abc";
// boolean b = s1.equals(s2); 空指针异常,null不能调用方法 NullPointerException
// System.out.println(b);
boolean b = Objects.equals(s1 ,s2);
System.out.println(b); // 不报错,容忍空指针,防止空指针异常
// 源码:
// public static boolean equals(Object a, Object b) {
// return (a == b) || (a != null && a.equals(b));
// }
}
}
System类
package 高级.demo02_System类;
import java.util.Arrays;
public class demo01_System类 {
public static void main(String[] args) {
long s = System.currentTimeMillis();
for (int i = 0; i < 9999; i++) {
System.out.println(i);
}
System.out.println(System.currentTimeMillis()-s);
int[] src = {1,2,3,4,5};
int[] dest = {6,7,8,9,10};
System.arraycopy(src,0,dest,0,3);
System.out.println(Arrays.toString(dest)); //[1, 2, 3, 9, 10]
}
}