Java细节(第二遍复习)

1.细谈"=="与 equals() 方法的不同之处?

  1. ” == “ : 是一个运算符号
    (1)可以使用在进本数据类型变量和引用数据类型变量中;
    (2)如果比较的是基本数据类型变量,比较两个变量保存的数据是否相等。(不一定类型要相同)
    (3)如果比较的是引用数据类型变量,比较两个对象的地址值是否相同。即两个引用是否指向同一个对象实体。
  2. equals():是一个方法,而非运算符号
    (1)只能使用于引用数据类型。
    (2)Object类中equals()的定义:public boolean equals(Object obj){return (this == obj);}说明:Object类中定义的equals() 和 == 作用是相同的,比较两个对象的地址值是否相同。
    (3)像String、Date、File、包装类等都重写了Object类中的equals() 方法。重写以后,比较的不再是两个引用的地址是否相同,而是比较两个对象的“实体内容”是否相同。

2.重载的灵活介绍:

有一个特别的例子来说明说明是重载:System.out.println();中底层println() 方法中里面的参数有:
Java细节(第二遍复习)_第1张图片
如果你定义一个char 数组:char[] c = new char[]{'a','b','c'};,然后输出:System.out.println(c);,正常都会觉得输出的是地址值,但是并不是,输出的是abc。因为有char[]参数。

你可能感兴趣的:(Java细节(第二遍复习))