读书人

Java基础知识4

发布时间: 2012-10-11 10:16:10 作者: rapoo

Java基础知识四
1.关于equals(),所有的类都继承了Object类,继承的hashcode(),toString(),equals()方法
在Object类的源码中:

public boolean equals(Object obj){
return (this == obj);


}

也就是说如果没有override掉对象的equals()方法,就调用对象的equals()实际上还是比较两个对象引用是否是同一个对象,比较的不是对象的内容。

public boolean equals(Object obj){

if(this == obj)
return true;

if(!(obj instanceof A))
return false;

A a = (A)obj;

if(a.name.equals(this.name))
return true;

return false;

}


2.Object中的toString()方法

public String toString() {

return getClass().getName() + "@" + Integer.toHexString(hashCode());

}

那么定义一个类时,可以override掉Object类的toString()方法.


3.String和StringBuffer
String对象每次使用"+"改变它的内容时都会生成一个新的String对象
而StringBuffer使用append()来append字符串,但是并不会生成新的StringBuffer.

String a = "abc";
String b = "abc";

String的实现采用了类似于字符串池的概念,如果String a定义的变量只是指向字符串池中的某个字符串,那么也就可知,如果两个变量所赋值的字符串相同,如a,b;那么其实只需要在字符串池中存储一个"abc"就行了,此时也就可知a,b指向同一个字符串了。

读书人网 >编程

热点推荐