==、equals区别 | java学习笔记

news2024/12/23 0:29:33

做一些java基础知识的记录📕

java基本类型:byte short int long float double char boolean(指向具体的数值)
java引用类型:类 接口 数组等。指向的不是具体的数值,而是指向了对象的地址。

==

用于判断基本类型的数值是否相等;
用于判断引用类型是否指向同一个地址、判断是否为同一个对象。

equals

在这里插入图片描述
在这里插入图片描述

如上图所示,为java源码。
Object类中,equals()用于判断两者地址是否相等;
Object的子类(Integer、String、Double……)中,equals()用于判断两者的值(两者的内容)是否相同。
equals方法可以重写,可自定义判断条件。

练习

public class Test {
    public static void main(String[] args) {
        int a = 1;
        int b = 1;
        int c = 2;
        System.out.println(a == b);
        System.out.println(a == c);
        System.out.println("———————.—————————");

        String astr = "1234";
        String bstr = "1234";
        String cstr = "12";
        System.out.println(astr == bstr);//关于常量,相同的赋值,则会指向同一个对象。
        System.out.println(astr == cstr);
        System.out.println("______.._________");

        Animal a1 = new Animal();
        Animal a2 = new Animal();
        Animal a3 = a1;
        System.out.println(a1 == a2);
        System.out.println(a1 == a3);
        System.out.println("________..._______");

        String str1 = "123";
        String str2 = "123";
        String str3 = "123456";
        System.out.println(str1.equals(str2));
        System.out.println(str1.equals(str3));
        System.out.println("_______-________");

        Double d1 = 1.0;
        Double d2 = 1.0;
        Double d3 = 2.0;
        System.out.println(d1.equals(d2));
        System.out.println(d1.equals(d3));
        System.out.println("________--________");

        Animal ani1 = new Animal("cat");
        Animal ani2 = new Animal("cat");
        Animal ani3 = ani1;
        Animal ani4 = new Animal("dog");
        System.out.println(ani1.equals(ani2));
        System.out.println(ani1.equals(ani3));
        System.out.println(ani1.equals(ani4));
        System.out.println("________^^__________");

        String string="123";
        System.out.println(string=="123");
        System.out.println(string=="asd");
        System.out.println(string.equals("123"));
        System.out.println(string.equals("asd"));
    }
}

class Animal {
    private String name;

    public Animal() {
        String name = "animal's name";
    }

    public Animal(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof Animal)) {
            return false;
        }
        Animal animal = (Animal) o;
        return Objects.equals(this.getName(), animal.getName());
        //this指向当前对象
    }
}

运行结果:

true
false
———————.—————————
true
false
______.._________
false
true
________..._______
true
false
_______-________
true
false
________--________
true
true
false
________^^__________
true
false
true
false

参考资料

https://blog.csdn.net/nxj_climb/article/details/113175127参考了该文章及其评论区

https://www.bilibili.com/video/BV1fh411y7R8?p=319&vd_source=07ed824bba84f399accbac1be9f9f505

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/466995.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaWeb|在IDEA中创建基于Maven的Web项目| Servlet依赖|这一篇就够了(超详细)

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:老茶icon 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,计…

【c语言】详解c语言#预处理期过程 | 宏定义前言

c语言系列专栏&#xff1a; c语言之路重点知识整合 创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持…

微信小程序php+python+nodejs+vue大学生心理健康测试职位推荐系统

心理测试开发使系统能够更加方便学生捷&#xff0c;同时也促使心理测试变的更加系统化、有序化。系统界面较友好&#xff0c;易于操作。具体在系统设计上&#xff0c;客户端使用微信开发者&#xff0c;后台也使用php技术在动态页面上进行了设计&#xff0c;Mysql数据库&#xf…

算法 DAY44 动态规划6 完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ

完全背包 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品都有无限个&#xff08;也就是可以放入背包多次&#xff09;&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 完全背包和01背包问题唯一不同…

Java每日一练(20230427)

目录 1. 螺旋矩阵 2. LRU 缓存机制 3. 解数独 &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#…

Leetcode——495. 提莫攻击

&#x1f4af;&#x1f4af;欢迎来到的热爱编程的小K的Leetcode的刷题专栏 文章目录 1、题目2、题目分析3、题解代码 1、题目 题目链接&#xff1a;Leetcode——495. 提莫攻击 在《英雄联盟》的世界中&#xff0c;有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希&…

国民技术N32G430开发笔记(1)-macos开发环境搭建

macos开发环境搭建 1、安装arm-none-eabi- 工具链 brew tap ArmMbed/homebrew-formulae brew install arm-none-eabi-gcc如果没有安装brew&#xff0c;请先安装brew。 2、安装vscode 3、安装pyocd a、python官网下载最新版的python b、pip3 install -U pyocd 我的开发板为N3…

Hadoop 1:Apache Hadoop、HDFS

Hadoop核心组件 Hadoop HDFS&#xff08;分布式文件存储系统&#xff09;&#xff1a;解决海量数据存储 Hadoop YARN&#xff08;集群资源管理和任务调度框架&#xff09;&#xff1a;解决资源任务调度 Hadoop MapReduce&#xff08;分布式计算框架&#xff09;&#xff1a;解决…

MyBatis的代理开发方式、动态sql语句和typeHandlers和plugins标签实战

文章目录 Mybatis的Dao层实现传统开发方式编写UserDao接口编写UserDaoImpl实现mapper文件测试传统方式 代理开发方式代理开发方式介绍编写UserMapper接口测试代理方式 MyBatis映射文件深入动态sql语句动态sql语句概述动态 SQL 之<if>动态 SQL 之<foreach>SQL片段抽…

信号处理的本质是什么?

信号处理的宗旨是“将信号中蕴涵的信息变得显然”&#xff0c;从数学角度分析, 信号即是某个物理量x的函数f(x), 信号所蕴含的信息需要通过此类函数予以揭示. 自然地可将f(x)投影到其所在空间中的一组基函数上, 由投影系数或加权系数来构成函数f(x)在变换域上的表示。在一定条件…

Nginx基本配置

文章目录 准备环境安装NginxNginx配置初始配置信息配置详解1. 全局块2. events 块3. http 块3.1 http 全局块3.2 server 块3.2.1 全局 server 块3.2.2 location 块 启动Nginx 参考资料 本教程讲述Nginx的基本配置和操作。首先需要安装 Nginx&#xff0c;关关于具体的安装方式&a…

输入网址url到网页显示,期间发生了什么?

当我们在浏览器输入一个网址后&#xff0c;知道网页显示在我们眼前&#xff0c;这一期间是如何发生的&#xff0c;接下来就将详细介绍在这期间发生的过程及使用的协议栈 1、浏览器解析URL并生产HTTP请求消息 URL是我们输入的网址信息&#xff0c;比如 https://www.taobao.com …

JavaScript 知识总结下篇(更新版)

91.实现一个 promise 参考链接&#xff1a;实现一个完美符合Promise/A规范的Promise Issue #4 forthealllight/blog GitHub function myPromise(constructor) {let self this;self.status "pending" // 定义状态改变前的初始状态self.value undefined;// 定义状…

c++调用java方法详解

当我们使用 Java程序调用C程序时&#xff0c;我们可以使用JAVA_HOME类来访问 Java虚拟机中的类&#xff0c;并使用其提供的方法来调用 Java方法。 使用JAVA_HOME类调用 Java方法时&#xff0c;可以在 JVM中直接操作 Java虚拟机。这个方法称为“直接访问”&#xff08;Direct Ac…

华为交换机配置telnet登录图文教程

一、配置交换机管理vlan和地址&#xff0c;配置交换机接口 1.关闭多余的信息提示&#xff1a; [Huawei]undo in en Info: Information center is disabled. [Huawei] 2.交换机配置 在工作中通过Telnet方式登录交换机进行设备登录管理能更加便利&#xff0c;不需要到机房里…

7.参数校验

在controller和service进行前端传参校验&#xff0c;保证存到数据库的数据是正确的 1.引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>这里无需…

科技云报道:生成式AI大模型,或将撼动云服务市场格局

科技云报道原创。 随着ChatGPT、GPT-4、BARD等生成式AI大模型的爆火&#xff0c;云服务商围绕生成式AI的竞争日趋激烈。 微软将Azure的企业级功能与OpenAI的生成式AI模型功能相结合&#xff0c;发布了Azure OpenAI服务&#xff1b; 紧随其后&#xff0c;谷歌开放了AI大模型Pa…

File类知识梳理(包含输入输出流的使用)

前言 学习的思维导图 目录 1. File类是什么? 2. 关于文件系统的操作 3. 关于文件内容的操作 3.1 文本文件 3.2 二进制文件 4. 案例实现练习 5.拓展:try with resources 操作 1. File类是什么? ● 概念 它的实例化对象是对硬盘上文件或目录的抽象表示.文件存储在硬盘…

【Java实战篇】Day15.在线教育网课平台--持续集成

文章目录 一、Devops1、什么是Devops2、什么是CI/CD3、Devops方案参考 二、人工部署1、项目打jar包2、生成镜像、创建容器 三、自动化部署1、代码提交到git2、修改pom.xml文件3、前端部署 一、Devops 1、什么是Devops 一个软件的生命周期包括&#xff1a;需求分析阶、设计、开…

如何利用AI技术提升拍卖小程序开发的用户体验

作为一名拍卖小程序开发者&#xff0c;提供一个优质的用户体验&#xff0c;以吸引更多的用户是我们的目标。然而&#xff0c;如何实现这一目标呢&#xff1f;在本文中&#xff0c;我们将介绍如何利用AI技术来提升拍卖小程序开发的用户体验。 了解用户需求 在开始开发拍卖小程…