Java基础知识四_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java基础知识四

Java基础知识四

 2011/11/11 16:37:42  yuyiming1986  http://yuyiming1986.iteye.com  我要评论(0)
  • 摘要:1.关于equals(),所有的类都继承了Object类,继承的hashcode(),toString(),equals()方法在Object类的源码中:publicbooleanequals(Objectobj){return(this==obj);}也就是说如果没有override掉对象的equals()方法,就调用对象的equals()实际上还是比较两个对象引用是否是同一个对象,比较的不是对象的内容。publicbooleanequals(Objectobj){if(this==obj
  • 标签:Java 基础知识 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指向同一个字符串了。

发表评论
用户名: 匿名