Java开发-面试题-0005-==和String的equals()和String的intern()方法的区别

news2024/11/27 8:40:02

Java开发-面试题-0005-==和String的equals()和String的intern()方法的区别

更多内容欢迎关注我(持续更新中,欢迎Star✨)

Github:CodeZeng1998/Java-Developer-Work-Note

技术公众号:CodeZeng1998(纯纯技术文)

生活公众号:好锅(Life is more than code)

CSDN: CodeZeng1998

其他平台:CodeZeng1998好锅

==和String的equals()和String的intern()方法的区别:

  • ==

    • 相比较的数据都是基本数据类型,比较的是数值
    • 相比较的数据都是引用数据类型(对象),比较的是两个引用是否指向内存中的同一个对象。
  • java.lang.String#equals

    • equals() 方法用于比较两个对象的内容或值。

    • 默认情况下,Object类中的equals()方法的行为类似于==(检查引用是否相等),但许多类(如StringInteger等)重写此方法以提供基于值的比较。

          // 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;
          }
      
      
      	// Integer 的 equals 方法
          public boolean equals(Object obj) {
              if (obj instanceof Integer) {
                  return value == ((Integer)obj).intValue();
              }
              return false;
          }
      
  • java.lang.String#intern

    • intern() 方法用于通过使用字符串池有效地管理内存。
    • 当在一个 String 对象上调用 intern() 方法时,它检查字符串是否已经在字符串池中。如果是,它返回池中的引用。如果不是,它将字符串添加到池中并返回新添加字符串的引用。
    • 这可以使得对具有相同内容且已被实习的字符串的后续 == 比较为真。
String str1 = new String("hello");
String str2 = new String("hello");

String str3 = str1.intern();
String str4 = str2.intern();

System.out.println(str1 == str2); // false
System.out.println(str1.equals(str2)); // true
System.out.println(str3 == str4); // true

在这里插入图片描述

上图由 RealVisXL 生成

关键词:An alien wearing sunglasses , poses a Java question

更多内容欢迎关注我(持续更新中,欢迎Star✨)

Github:CodeZeng1998/Java-Developer-Work-Note

技术公众号:CodeZeng1998(纯纯技术文)

生活公众号:好锅(Life is more than code)

CSDN: CodeZeng1998

其他平台:CodeZeng1998好锅

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

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

相关文章

算法:101. 对称二叉树

对称二叉树 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true示例 2: 输入:root [1,2,2,null,3,null,3] 输出:false提示: 树中节…

蓝桥杯--跑步计划

问题描述 小蓝计划在某天的日期中出现 11 时跑 55 千米,否则只跑 11 千米。注意日期中出现 11 不仅指年月日也指星期。 请问按照小蓝的计划,20232023 年小蓝总共会跑步锻炼多少千米?例如,55 月 11 日、11 月 1313 日、1111 月 55 日、44 月…

Dubbo 3.x源码(20)—Dubbo服务引用源码(3)

基于Dubbo 3.1,详细介绍了Dubbo服务的发布与引用的源码。 此前我们学习了调用createProxy方法,根据服务引用参数map创建服务接口代理引用对象的整体流程,我们知道会调用createInvokerForRemote方法创建远程引用Invoker,这是Dubbo …

开启数字化校园解决方案,实现教育智能化

现代社会的教育面临诸多挑战,如何提高教育质量,实现教育智能化成为了当务之急。数字化校园解决方案应运而生,为学校提供了全新的教学模式和管理方式。本文将介绍数字化校园解决方案的重要性,以及如何开启数字化校园,实…

客户案例|Zilliz Cloud 助力点石科技转型 AI 智能服务商

福建点石科技网络科技有限公司成立于2010年,是国家高新技术企业,阿里云、蚂蚁金服等大厂海内外生态合作伙伴ISV。在餐饮、零售、酒店、旅游、商圈的行业定制化服务化上有深厚积累,在境内外做了大量标杆性软件项目,如东南亚RWS圣淘…

《python程序语言设计》2018版第5章第46题均值和标准方差-上部(我又一次被作者的出题击倒)

第N次被作者打倒了&#xff0c;第5章46题解题上集的记录 计算均值的代码段 step_num 0num_c 0 pow_c 0 while step_num < 10:a eval(input("Enter number is: "))num_c apow_c pow(a, 2)step_num 1 t2 num_c / 10这个结果和书里的答案差一点。书里写的是…

容器中运行ping提示bash: ping: command not found【笔记】

容器中运行ping提示bash: ping: command not found 原因是容器中没有安装ping命令 在容器中安装ping命令&#xff0c;可以使用以下命令&#xff1a; 对于基于Debian/Ubuntu的容器&#xff0c;使用以下命令&#xff1a; apt-get update apt-get install -y iputils-ping对于基…

Docker run 命令常用参数详解

Docker run 命令提供了丰富的参数选项&#xff0c;用于配置容器的各种设置。以下是docker run命令的主要参数详解&#xff0c; 主要参数详解 后台运行与前台交互 -d, --detach: 在后台运行容器&#xff0c;并返回容器ID。-it: 分配一个伪终端&#xff08;pseudo-TTY&#xff0…

如何做好电子内窥镜的网络安全管理?

电子内窥镜作为一种常用的医疗器械&#xff0c;其网络安全管理对于保护患者隐私和医疗数据的安全至关重要。以下是一些基本原则和步骤&#xff0c;用于确保电子内窥镜的网络安全&#xff1a; 1. 数据加密 为了防止数据泄露&#xff0c;电子内窥镜在传输患者图像数据时应采取有…

解决!word转pdf时,怎样保持图片不失真

#今天用word写了期末设计报告&#xff0c;里面有很多过程的截图&#xff0c;要打印出来&#xff0c;想到pdf图片不会错位&#xff0c;就转成了pdf&#xff0c;发现图片都成高糊了&#xff0c;找了好多方法&#xff0c;再不下载其他软件和插件的情况下&#xff0c;导出拥有清晰的…

cf 欧几里得距离

说明&#xff1a;欧几里得距离本质就是两点间距离 distancesqrt( sum(ai-bi)2 ) Problem - F - Codeforces 代码

下载安装Thonny并烧录MicroPython固件至ESP32

Thonny介绍 一、Thonny的基本特点 面向初学者&#xff1a;Thonny的设计初衷是为了帮助Python初学者更轻松、更快速地入门编程。它提供了直观易懂的用户界面和丰富的功能&#xff0c;降低了编程的门槛。轻量级&#xff1a;作为一款轻量级的IDE&#xff0c;Thonny不会占用过多的…

Zookeeper高频面试题整理(入门到精通)

文章目录 1、什么是Zookeeper&#xff1f;2、ZooKeeper的基本数据结构是什么&#xff1f;3、Zookeeper的节点类型有哪些&#xff1f;4、Zookeeper的特点5、ZooKeeper如何保证数据一致性&#xff1f;6、什么是ZAB协议&#xff1f;7、Zookeeper的ACL机制是什么&#xff1f;8、Zoo…

读书笔记:左耳听风

程序员如何用技术变现 我完全没有必要通过打工听人安排而活着&#xff0c;而是反过来通过在公司工作提高自己的技能&#xff0c;让自己可以更为独立和自由地生活。 因而&#xff0c;在工作当中&#xff0c;对于那些没什么技术含量的工作&#xff0c;我基本上就像是在学生时代那…

github异常问题总结

问题1&#xff1a; gitgitlab.gz.cvte.cn: Permission denied (publickey). fatal: Could not read from remote repository.Please make sure you have the correct access rights and the repository exists.解决方法&#xff1a; 这个错误表示 GitLab 服务器拒绝了你的 SSH…

数据结构严蔚敏版精简版-栈和队列以及c语言代码实现

1栈的定义和特权 栈(stack)是限定仅在表尾进行插入或删除操作的线性表。 注&#xff1a;虽然说栈的实现就是一端插入和删除&#xff0c;但不一定是在“表尾”&#xff0c;这个“表尾”是广义的。 头插法实现链栈 尾插法实现链栈 因此&#xff0c;对栈来说&#xff0c;表尾…

理解数仓建模

​​​在数仓建设的过程中&#xff0c;由于未能完全按照规范操作&#xff0c; 从而导致数据仓库建设比较混乱&#xff0c;常见有以下问题&#xff1a; 数仓常见问题 ● 数仓分层不清晰&#xff1a;数仓的分层没有明确的逻辑&#xff0c;难以管理和维护。 ● 数据域划分不明确…

刷代码随想录有感(97):动态规划——斐波那契数列

题干&#xff1a; 代码&#xff1a; class Solution { public:int fib(int n) {if(n < 1)return n;vector<int> dp(n 1);dp[0] 0;dp[1] 1;for(int i 2; i < n; i){dp[i] dp[i - 1] dp[i - 2];}return dp[n];} }; 动态规划五部曲&#xff1a; 1.dp数组的定…

静态IP代理服务对比:哪些提供商值得信赖?静态ip代理哪家好用?

当涉及选择静态IP代理时&#xff0c;许多人可能会感到困惑&#xff0c;因为市场上存在着各种各样的选项。本文旨在为您提供一些关键指导&#xff0c;帮助您确定哪种静态IP代理是最适合您需求的。在这个过程中&#xff0c;我们将介绍一个备受推崇的解决方案——太阳HTTP。 1.高速…

8. 正则表达式

正则表达式 在处理字符串时&#xff0c;需要查找符合某些复杂规则的字符串&#xff0c;正则表达式就是用于描述这些规则的工具 一、正则表达式语法 行定位符&#xff1a;用来描述字符串的边界 -->用来匹配一整行 符号匹配位置^行的开始$行的结尾 ^tm : 可以匹配行 tm equa…