java基础01:==与equals

2023-11-08

Java数据类型在执行过程中存储在两种不同形式的内存中:栈和堆,它们通常由运行Java虚拟机(JVM)的底层平台维护。

基础类型是直接在栈中分配的,引用类型是引用了堆中的内存地址。

==:对比的是栈中的值,基本数据类型是变量值,引用类型是堆中内存对象的地址;

equals:object中默认也是采用==比较,通常会重写。 不重写的话是没有太大的差别.

例如:String本身已经重写了equals方法:把字符串里的每一个字符取出来看是否相等,这个被复写的equals方法其实是比较两个字符串的内容

public class stringDemo{

    public static void main (String arg[] )
    {
     String str1="keyi";//常量池
     String str2 = new String("keyi");//通过new的方式从堆中分配内存
     String str3= str2;//引用传递
     System.out.printl(str1==str2);//返回false
     System.out.printl(str1==str3);//返回false
     System.out.printl(str2==str3);//返回true
     System.out.printl(str1.euqals(str2));//返回true
     System.out.printl(str1.euqals(str3));//返回true
     System.out.printl(str2.euqals(str3));//返回true

      
     
    }
}

String中对equals重写的部分:

 public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String)anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                        return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java基础01:==与equals 的相关文章

  • 菜单未显示在应用程序中

    由于某种原因 我的操作菜单在我的 Android Studio 应用程序中消失了 我正在按照教程学习如何创建 Android 应用程序 但最终遇到了这个问题 我正在使用 atm 的教程 http www raywenderlich com
  • 如何将 Java 赋值表达式转换为 Kotlin

    java中的一些东西就像 int a 1 b 2 c 1 if a b c System out print true 现在它应该转换为 kotlin 就像 var a Int 1 var b Int 2 var c Int 1 if a
  • 我需要在 Spring 中检查每个控制器中的有效会话吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 假设在 Spring Mvc 的 Web 应用程序中 我们是否需要检查每个控制器或 jsps 中的有效会话 我该如何解决 MVC 中的
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • manifest.mf 文件的附加内容的约定?

    Java JAR 中的 MANIFEST MF 文件是否有任何超出 MANIFEST MF 约定的约定 JAR规范 http download oracle com javase 1 4 2 docs guide jar jar html
  • CXF Swagger2功能添加安全定义

    我想使用 org apache cxf jaxrs swagger Swagger2Feature 将安全定义添加到我的其余服务中 但是我看不到任何相关方法或任何有关如何执行此操作的资源 下面是我想使用 swagger2feature 生成
  • java.io.IOException: %1 不是有效的 Win32 应用程序

    我正在尝试对 XML 文档进行数字签名 为此我有两个选择 有一个由爱沙尼亚认证中心为程序员创建的库 还有一个由银行制作的运行 Java 代码的脚本 如果使用官方 认证中心 库 那么一切都会像魅力一样进行一些调整 但是当涉及到银行脚本时 它会
  • Java 页面爬行和解析之 Crawler4j 与 Jsoup

    我想获取页面的内容并提取其中的特定部分 据我所知 此类任务至少有两种解决方案 爬虫4j https github com yasserg crawler4j and Jsoup http jsoup org 它们都能够检索页面的内容并提取其
  • 无法理解 Java 地图条目集

    我正在看一个 java 刽子手游戏 https github com leleah EvilHangman blob master EvilHangman java https github com leleah EvilHangman b
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • Spring Data 与 Spring Data JPA 与 JdbcTemplate

    我有信心Spring Data and Spring Data JPA指的是相同的 但后来我在 youtube 上观看了一个关于他正在使用JdbcTemplate在那篇教程中 所以我在那里感到困惑 我想澄清一下两者之间有什么区别Spring
  • 归并排序中的递归:两次递归调用

    private void mergesort int low int high line 1 if low lt high line 2 int middle low high 2 line 3 mergesort low middle l
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 如何在 Maven 中显示消息

    如何在 Maven 中显示消息 在ant中 我们确实有 echo 来显示消息 但是在maven中 我该怎么做呢 您可以使用 antrun 插件
  • Windows 上的 Nifi 命令

    在我当前的项目中 我一直在Windows操作系统上使用apache nifi 我已经提取了nifi 0 7 0 bin zip文件输入C 现在 当我跑步时 bin run nifi bat as 管理员我在命令行上看到以下消息 但无法运行
  • Android JNI C 简单追加函数

    我想制作一个简单的函数 返回两个字符串的值 基本上 java public native String getAppendedString String name c jstring Java com example hellojni He
  • Springs 元素“beans”不能具有字符 [children],因为该类型的内容类型是仅元素

    我在 stackoverflow 中搜索了一些页面来解决这个问题 确实遵循了一些正确的答案 但不起作用 我是春天的新人 对不起 这是我的调度程序 servlet
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour
  • KeyPressed 和 KeyTyped 混淆[重复]

    这个问题在这里已经有答案了 我搜索过之间的区别KeyPressedand KeyTyped事件 但我仍然不清楚 我发现的一件事是 Keypressed 比 KeyTyped 首先被触发 请澄清一下这些事件何时被准确触发 哪个适合用于哪个目的
  • Jackson 将单个项目反序列化到列表中

    我正在尝试使用一项服务 该服务为我提供了一个带有数组字段的实体 id 23233 items name item 1 name item 2 但是 当数组包含单个项目时 将返回该项目本身 而不是包含一个元素的数组 id 43567 item

随机推荐

  • 【测试人】最全测试策略总结,这一篇足足够用了......

    目录 导读 前言 一 界面测试 二 控件测试 三 文档测试 四 兼容性测试 五 易用性测试 六 安装测试 七 总结 前言 测试策略 通俗来讲就是6个字 测什么 和 怎么测 具体来讲 就是答好和产品测试相关的六大问题 测试的对象和范围是什么
  • Js三种常用高阶函数

    高阶函数map 定义和用法 map 方法返回一个新数组 数组中的元素为原始数组元素调用函数处理后的值 map 方法按照原始数组元素顺序依次处理元素 注意 map 不会对空数组进行检测 注意 map 不会改变原始数组 高阶函数reduce 定
  • 黑马程序员Java基础视频教程-课程总结文档

    目录 基础入门 day01总结 Java快速入门 IDEA开发工具的使用 基础入门 day02总结 基础语法 基础入门 day03总结 程序流程控制 基础入门 day04总结 数组 基础入门 day05总结 方法 基础入门 day07总结
  • 47 最佳实践-性能最佳实践-PV-qspinlock

    文章目录 47 最佳实践 性能最佳实践 PV qspinlock 47 1 概述 47 2 操作指导 47 最佳实践 性能最佳实践 PV qspinlock 47 1 概述 PV qspinlock主要是针对虚拟化CPU超分场景自旋锁的优化
  • R语言3.13 绘图

    plot函数 plot 可绘制数据的散点图 曲线图等 plot x y 其中x和y是向量 生成x和y的散点图 plot x 其中x是一时间序列 生成时间序列图形 如果x是向量 则产生x关于下标的散点图 如果x是复向量 则绘出复数的实部与虚部
  • C/C++/QT中的字符串

    目录 C语言中的字符串 C 语言中的字符串 Qt中的字符串 C语言str系列库函数 sizeof strlen length 和size 字符串中含有 r n 打印时不换行问题 C语言中的字符串 C语言不存在字符串数据类型 其通过一个以 0
  • Xilinx FPGA未使用管脚上下拉状态配置(ISE和Vivado环境)

    文章目录 ISE开发环境 Vivado开发环境 方式1 XDC文件约束 方式2 生成选项配置 ISE开发环境 ISE开发环境 可在如下Bit流文件生成选项中配置 右键点击Generate Programming File 选择Process
  • windows虚拟机安装Mac OS系统(操作图解)

    背景 因为工作需要学习ios开发 但是苹果电脑申请了还没审批下来所以想着先搭建一个虚拟机来熟悉开发环境 安装环境 windows vmware 16 Pro 一 准备工作 1 vmware 16 Pro 下载 2 unlocker 下载地址
  • 隐藏WiFi信号的小技巧

    隐藏WiFi信号方法 首先用手机或电脑连上路由器的WiFi网络 在浏览器地址栏输入路由器登陆地址并打开 地址一般在路由器的底部都有标注的 输入用户名与密码 很多路由器默认的账号 密码都是admin 进入路由器管理界面找到无线设置 然后找到
  • java版本微信机器人使用教程V1.0

    大家好 我是雄雄 欢迎关注微信公众号雄雄的小课堂 现在是 2023年5月10日17 57 02 免费的云桌面 每个人都能领三个月 用来跑机器人还是很不错的 领取连接 前言 历经好多天 java版本的微信机器人终于写完了初版了 接下来开放注册
  • 面向对象课程学习

    设计一般流程 黑盒 1用例分析 白盒 2 识别类 分析阶段只identify 问题领域的类 设计阶段可能添加软件世界特有的类 或者 3 识别类之间的关系 关联 泛化 聚合 组合 依赖 4 画顺序图 结合用例图 完善类图 类图是结构设计 顺序
  • 工具使用:ImageTools图片处理 (ImageMagick)

    需要注意的是 在mac和linux上不要添加imageMagickPath 和设置 convert setSearchPath imageMagickPath public class ImageTools ImageMagick的路径 p
  • python实验1

    在pycharm中编写一个Python程序 导入数学模块math 从键盘输入一个整数 然后调用Math中的数学函数sqrt 计算该数的平方根 输出结果 第一种 a float input 请输入一个整数 x a 0 5 print x 运行
  • Vulkan是什么?和我一起完成一个简单的Vulkan应用程序

    Vulkan是什么 和我一起完成一个简单的Vulkan应用程序 在本章 你将学到 Vulkan以及它背后的基本原理 如何创建一个最简单的Vulkan应用程序 在本书其余部分将使用到的术语和概念 本章将介绍并解释Vulkan是什么 我们会介绍
  • 敲七游戏-java

    题目描述 写程序无聊 玩个游戏 从1开始喊数 数到含7或者是7的倍数的要拍键盘 那么问题来了 请你 输出7和7的倍数 还有包含7的数字例如 17 27 37 70 71 72 73 输入 一个整数N N不大于30000 输出 统计出不大于N
  • 蓝库云|一文搞懂什么是MES(制造执行系统),制造业该如何选择

    MES Manufacturing Execution System 是一种将制造过程可视化并为工人提供指导和支持的系统 它的优势在于可以优化人员 机器和设备等资源 消除制造对个人技能的依赖 在本文中 蓝库云将以通俗易懂的方式说明MES的概
  • 【CV】扩散模型(Diffusion Models)

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Apple(苹果)忘记安全问题答案怎么办?

    方法一 通过 救援电子邮件 找回 其实 针对 忘记Apple ID安全提示问题的答案 这个问题 苹果官方有一个专门的指导页面 http support apple com kb HT6170 viewlocale zh CN 里面有非常详细
  • buuctf-misc(部分)

    爱因斯坦 附件下载下来是一张图片 先用winhex看下 典型的压缩文件形式 binwalk 分离前先把上次的output文件夹删除 老一套 加密的文件 但这次题目没有给我们具体的提示 先猜测一手题目名爱因斯坦是4位 先尝试一下4位数纯数字密
  • java基础01:==与equals

    Java数据类型在执行过程中存储在两种不同形式的内存中 栈和堆 它们通常由运行Java虚拟机 JVM 的底层平台维护 基础类型是直接在栈中分配的 引用类型是引用了堆中的内存地址 对比的是栈中的值 基本数据类型是变量值 引用类型是堆中内存对象