首页 > 编程语言 >java--equals和==用法

java--equals和==用法

时间:2022-10-07 15:44:14浏览次数:56  
标签:java -- 数据类型 equals int new 内存地址 比较

//引用类型不能用相等于==去比较,引用类型都是在堆内存,比较的是地址值,所以用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));
  }
}

标签:java,--,数据类型,equals,int,new,内存地址,比较
From: https://www.cnblogs.com/wang1999an/p/16759853.html

相关文章

  • Mongodb学习实践文档
    2020年12月目 录1MongoDB简介12Mongodb与传统关系型数据库对比13Mongodb基础运维23.1Mongodb安装33.1.1创建用户33.1.2创建目录33.1.3安装33.1.4mongod......
  • 光学系统设计相关知识点[Part.1]
    光学系统有哪些特性参数和结构参数?结构参数:曲面顶点的曲率c,基准二次曲面系数K,高次非曲面系数a4,a6,a8,a12,曲面半径r,曲面间相对位置(顶点距离)d,曲面间介质对指定波长光线......
  • 折半查找
    #include<map>#include<stdio.h>#include<iostream>usingnamespacestd;longlongbox[50];longlongpos[50];intmain(){longlongn,m;cin>>n>......
  • JavaScript 学习-49.localStorage前端保存数据
    前言localstorage在浏览器的API有两个:localStorage和sessionStorage存在于window对象中:localStorage对应window.localStorage,sessionStorage对应window.sessio......
  • ES介绍《二》
    信息输出:搜索和分析虽然你可以将Elasticsearch作为一个文档存储,并检索文档及其元数据,但真正的力量来自于能够轻松访问建立在ApacheLucene搜索引擎库上的全套搜索功能。E......
  • CentOS 7.9 安装 nginx-1.22.0
    一、CentOS7.9安装nginx-1.22.0下载地址:http://nginx.org/en/download.html2安装前的准备#操作系统内核版本uname-a#操作系统发行版本cat/etc/redhat-rel......
  • 提升能力
    要想提升能力就往前走呀,你管别人的步伐干啥,你喜欢的人不喜欢你也没啥,你还活着呀?你能变得更好,有什么可自卑的,你有时间自卑吗?今天的五公里跑了吗?今天计划的书读完了吗......
  • JDBC
    1.JDBC  API提供了Java应用程序与各种不同数据库交互的标准接口,如:Connection(连接)接口,Statement接口,ResultSet(结果集)接口,PreparedStatement接口等。开发者使用这些JDB......
  • 从0到1掌握Java全栈小程序开发,玩转微信生态
    从0到1掌握Java全栈小程序开发,玩转微信生态Java :Java基础JDBC基础Java集合Java多线程系列JUC系列JavaIO基础JavaCore:Java虚拟机系列JVM虚拟机监控及性能......
  • 博客2
    目录附件一、可行性研究报告1引言1.1编写目的1.2背景1.3定义1.4参考资料2可行性研究的前提2.1要求2.2目标2.3条件、假定和限制2.4进行可行性研究的方法2.5评......