java--equals和==用法,4种访问修饰符权限

//引用类型不能用相等于==去比较,引用类型都是在堆内存,比较的是地址值,所以用equals

数组是引用类型,不能使用==去比较

//基本数据类型用==去比较

1、equals是object的方法

2、String类型的 equals重写了object的方法,所以此方法比较的是内容,不比较内存地址 ==比较内容和地址,

因为String也属于引用数据类型 注意:String是特殊的在声明对象时可以写new也可以不写(不写默认就是new)

(总结:==比较内存地址和内容,equals方法被重写只比较内容)

3、基本类型,如int,char,long,boolean。 没有equals方法,只有==只比较值,

因为基本数据类型存在栈里也不能new,最关键的一点是只有对象才能调方法

(总结:基本数据类型只有==进行比较,只比较值)

4、引用数据类型,如Integer,Byte,Long,Character,Boolean 引用数据类型是可以new的,

而new出来的对象都会在堆中有开辟一个内存地址空间 通常用==比较对象时,

比较的就是内存地址和内容 equals是用==判断两个对象是否相等,比较内存地址和内容,

当两者都相等时才返回真

(总结:引用数据类型除String特殊外,equals和==都比较内存地址和内容)

 

 

package learnday3;
//Array.equals(数组1,数组2);比较2个数组元素是否相等
// * @description:比较两个数组元素是否相等

import java.util.Arrays;
public class ArrayDemo02 {
  public static void main(String[] args) {
      int[] array1 = {1,2,3};
      int[] array2 = {1,2,3};
      int len1 = array1.length;
      int len2 = array2.length;
      if(len1!=len2){
          System.out.println(false);
          return;
      }
      for (int i = 0; i < len1; i++) {
          if(array1[i]!=array2[i]){
              System.out.println(false);
              return;
          }
      }
      System.out.println(true);
      System.out.println(Arrays.equals(array1,array2));
  }
}
posted @ 2022-10-07 15:40  学JAVA的旅行者  阅读(45)  评论(0)    收藏  举报