1.equals方法和==的区别
首先equals()并不等价与==,==是检查同一性,不是相等性。两个同样的变量(指向相同对象)可以证明它们是相等的,则反之不成立。
String s1 ="hello";
String s2 ="hello";
String s3 = new String("hell");
if(s1==s2)
System.out.println("s1==s2");
else
System.out.println("s1!=s2");
if(s1.equals(s3))
System.out.println("s1 equals s3");
else
System.out.println("s1 not equals s3");
2. hashcode()
散列码一般是根据对象的内容生成的,对于包含不同数据的类的实例,其散列码往往是不同的,对于通过equals()方法比较为“相等”的实例,其散列码一般则是相同的。
3 .复制对象clone()
clone()是Object类(Object类差不多是所有类的父类)的一个方法,但是这种功能在默认情况下是关闭的。如果一个类需要使用clone()方法,那么需要实现Cloneable接口。
4 反射
Java 反射API(Java Reflection API)
方法:getField()将返回一个Field对象数组,它表示一个类的全部公共变量,包括继承得到的公共变量;
getDeclaredField()将返回一个Field对象数组,它表示一个类的全部变量,不论是公共的还是其他修饰符修饰的变量,但是不包括继承得到的变量;
getMethod(),getConstructors(),功能与上面方法类似,并且都有相似的第二个方法。