1)equals()方法与“==”的区别
(1)对于字符串变量以及基本数据类型的包装类型来说:“==”比较两变量的引用是否相等,即变量在内存的首地址是否相等。“equals()”比较实体(内存空间)的内容是否相等,因为String类中重新定义了equals()方法,并且是用来比较其值得而不是内存地址。注意:如果 StringBuffer s1=new StringBuffer(“a”); StringBuffer s2=new StringBuffer(“a”); s1.equals(s2);为false,因为StringBuffer类中没有重新定义的equals()方法,因此equals()方法来自于Object类,而Object类的equals()方法是用来比较地址的,所以为false。
(2)对于非字符串变量来说:“==”和“equals()”的作用是相同的,都是用来比较对象在堆内存中的首地址,即用来比较两个引用变量是否指向同一个实体(内存空间)。注意:(1)如果是基本数据类型比较只能用“==”不能用“equals()”。(2)对于基本数据类型的包装类型“==”比较的是实体的引用,“equals()”比较的是实体的内容。
2)是否可以继承String类?
String类是final类故不可以继承。
3)构造器Constructor是否可被override?
构造器Constructor不能被继承,因此不能被override(重写),但可以被overload(重载)。
|
|