`
yuyiming1986
  • 浏览: 62098 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

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指向同一个字符串了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics