首先了解基础类型与引用类型
值类型直接存储在栈中(基本类型)
引用类型的变量在栈存储值在堆中创建变量的引用
equals()与==的区别
“==”在Java语言中是一个二元操作符,equals()为Object类里面定义的一个方法.
“==”比较的是基础类型的值是否相等.equals()用于比较两个对象的引用否相等,String类则覆盖了equals(),在String中equals()的作用是比较引用地址的值所有字符是否相等。覆盖方法如下:
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = count; if (n == anotherString.count) { char v1[] = value; char v2[] = anotherString.value; int i = offset; int j = anotherString.offset; while (n-- != 0) { if (v1[i++] != v2[j++]) return false; } return true; } } return false; }