new String和直接赋值的一些问题

分析1

我们先看以下代码:

String str1 = "abc";  // 在常量池中String str2 = new String("abc"); // 在堆上System.out.println(str1 == str2)

以上结果的输出是什么?

输出:false

前置知识:

  • 在JVM中,对象的创建默认在堆中。

  • 字符串常量池(String Pool):Java中有一个特殊的区域称为字符串常量池。这个区域用来存储字符串常量,可以帮助节省内存,因为它确保所有相同的字符串常量都共享同一份内存。如果常量池中已经存在相同的字符串,就不会再创建新的相同字符串。

分析如下:

Java为了提高访问效率,当你 对一个字符串直接赋值时, 也就是执行第一句语句的时候,它会在方法区的字符串常量池中生成一个对应的字符串, 把该地址传递给 str1。当你 new 一个新的字符串时,它首先会检查 方法区中字符串常量池 中是否有对应的字符串,如果没有,则会持续生成一份。接着会在 JVM堆 中生成一个新的对象,把该对象在堆的引用传递给 str2。所以他们两个是不相等的。

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/298c5ea9c64c482aa7c394c0ef4f9eb0.png

分析2

String str1 = "abc";  // 在常量池中String str2 = "abc"; // 在堆上System.out.println(str1 == str2)

以上结果的输出是什么?

输出 true

通过以上的分析你应该知道,第二个str2 会直接去字符串常量池中查找有无对应的字符串,如果有,直接返回该地址,所以str1和str2指向的是同一个地址空间,答案为true。

分析3

String str1 = "abc";  // 在常量池中String str2 = "abc"; // 在堆上System.out.println(str1.equals(str2)

以上结果的输出是什么?

输出 true

String 类重写了 equals方法,它不是比较地址,是直接比较字符串的内容是否相等。

参考:参考1

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

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

相关文章

电脑怎么拖动文件到想要的位置?电脑上拖拽没了的文件怎么找回

在日常的办公和学习中,电脑文件拖拽操作是每位用户都不可或缺的技能。然而,有时在拖动文件时,可能会因为误操作或其他原因,导致文件消失或移至未知位置。本文将详细解析如何在电脑上轻松拖动文件到指定位置,并为您提供…

【前端必看】10年资深前端工程师,聊点行业现状与自我突破!

作为一名拥有10年前端开发经验的资深工程师,曾在蚂蚁金服等一线大厂历练,现在则在一家上市公司享受较为宽松的工作节奏。今天,我想和大家聊聊前端开发的就业现状,以及如何在这个竞争激烈的市场中突出重围。 感兴趣的可以看看这个…

GaussDB轻量化运维管理工具介绍

前言 本期课程将从管理平台的架构出发,结合平台的实例管理、实例升级、容灾管理和监控告警的功能和操作介绍,全面覆盖日常运维操作,带您理解并熟练运用GaussDB运维平台完成运维工作。 一、GaussDB 运维管理平台简介 开放生态层 友好Web界面…

OWASP发布十大开源软件安全风险及应对指南

​ 最近爆发的XZ后门事件,尽管未酿成Log4j那样的灾难性后果,但它再次敲响了警钟:软件供应链严重依赖开源软件,导致现代数字生态系统极其脆弱。面对层出不穷的安全漏洞,我们需要关注开源软件 (OSS)风险 ,改进…

通过代理IP实现匿名网上冲浪

目录 前言 一、代理IP的原理 1.1 什么是代理IP? 1.2 代理IP的工作原理 二、使用代理IP实现匿名网上冲浪的代码示例 三、如何获取代理IP 四、使用代理IP的注意事项 五、总结 前言 在互联网上冲浪是我们生活中常见的一项活动,然而,在某…

XiaodiSec day017 Learn Note 小迪安全学习笔记

XiaodiSec day017 Learn Note 小迪安全学习笔记 记录得比较凌乱,不尽详细 day 17 主要内容: php 框架 thinkPHPyiilaravel 使用 fofa 搜索 thinkphp 市面上 thinkphp5 版本较多 url 结构 域名/.php(文件名)/index(目录)/index(函数名)模块名-控…

XL7015输出12V电源设计

描述 XL7015是一款高效、高压降压型DC-DC转换器,固定150KHz开关频率,可提供最高0.8A输出电流能力,低纹波,出色的线性调整率与负载调整率。XL7015内置固定频率振荡器与频率补偿电路,简化了电路设计。PWM控 制 环 路 可 …

Android 组件提供的状态保存(saveInstanceState)与恢复(restoreInstanceState)

在Android的组件Activity中,有这样一对方法: onSaveInstanceeState 和 onRestoreInstanceState 这两对方法,可以让我在Activiy被异常销毁时,保存状态;以及在Activity重建时,恢复状态。 比如:当我们在输入…

只有IP没有域名怎么实现HTTPS访问

只有IP地址没有域名可以实现HTTPS访问?虽然通常情况下SSL证书是与域名关联并颁发的,但确实存在针对IP地址发放的SSL证书。这种类型的证书允许服务器通过HTTPS协议为其公网IP地址提供安全的Web服务。这意味着用户可以直接在浏览器中输入服务器的IP地址&am…

免翻!全球最大免费书库Zlibrary最新镜像,国内可直接访问,赶紧下书

刚刚,“知识大航海”群里,有位群友分享了一个Zlibrary镜像地址,感谢这位群友的热心分享,这个地址国内可以直接访问! 在“王不留”GZ号,写“zlib”四个字母,有Zlibrary镜像网址、官方网址&#x…

搜维尔科技:如何选择最佳的xsens动作捕捉设备

xsens介绍 如何选择最佳的xsens动作捕捉设备 选择最佳的 Xsens 动作捕捉设置并不总是像我们希望的那样简单。根据每个人的情况,会有不同的选择、要求和挑战。 这就是我们创建此博客的原因:帮助您做出最适合您的决定。 您已经决定继续使用 Xsens 了吗…

神经网络进阶

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号&#xf…

19 使用MapReduce编程统计超市1月商品被购买的次数

首先将1月份的订单数据上传到HDFS上&#xff0c;订单数据格式 ID Goods两个数据字段构成 将订单数据保存在order.txt中&#xff0c;&#xff08;上传前记得启动集群&#xff09;。 打开Idea创建项目 修改pom.xml&#xff0c;添加依赖 <dependencies><dependency>…

微软发布Phi-3 Mini,性能媲美GPT-3.5、Llama-3,可在手机端运行

前言 微软发布了最新版的Phi系列小型语言模型(SLM) - Phi-3。这个系列包括3个不同参数规模的版本&#xff1a;Phi-3 Mini (38亿参数)、Phi-3 Small (70亿参数)和Phi-3 Medium (140亿参数)。 Phi系列模型是微软研究团队开发的小规模参数语言模型。从第一代Phi-1到第二代Phi-2&…

想把MP3音频转换成OGG格式需要什么工具?四种你不知道的音频转换工具在这里

​一&#xff0c;引言 随着数字音乐的发展&#xff0c;音频格式的种类也日益增多。MP3和OGG是其中两种常见的音频格式&#xff0c;它们各有优缺点&#xff0c;适用于不同的场景。有时&#xff0c;我们可能需要将MP3格式的音频转换为OGG格式&#xff0c;以满足特定的需求。本文…

JavaEE初阶——多线程(六)——线程池

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 小比特 大梦想 此篇文章与大家分享多线程的第六篇文章,关于线程池 如果有不足的或者错误的请您指出! 目录 3.线程池3.1标准库的线程池3.2 标准库自己提供的几个工厂类3.3自己实现一个线程池完成大体框架接下来完…

LangChain的核心模块和实战

主要模型 LLM:对话模型, 输入和输出都是文本Chat Model: 输入输出都是数据结构 模型IO设计 Format: 将提示词模版格式化Predict: langchain就是通过predict的方式调用不同的模型, 两个模型的区别不大, Chat Model 是以LLM为基础的.Parese: langchain还可以对结果进行干预, 得…

解决Oracle锁表的方法

在实际工作中&#xff0c;并发量比较大的项目&#xff0c;经常会出现锁表的问题&#xff0c;下面我将复现这个问题&#xff0c;并给出解决方法。 一、问题复现 1、session1修改aabb表的B字段为迪迦奥特曼&#xff0c;但是不提交该事务。 2、session2也修改这行的这个字段。 发…

Prompt-to-Prompt Image Editing with Cross Attention Control

Prompt-to-Prompt Image Editing with Cross Attention Control TL; DR&#xff1a;prompt2prompt 提出通过替换 UNet 中的交叉注意力图&#xff0c;在图像编辑过程中根据新的 prompt 语义生图的同时&#xff0c;保持图像整体布局结构不变。从而实现了基于纯文本&#xff08;不…

终于有人把“Linux云计算路线”整理出来了,收藏起来,随时查看

一&#xff0c;计算机硬件 二&#xff0c;计算机网络 三&#xff0c;Linux系统管理 四&#xff0c;构建Linux服务系统&#xff0c;数据库&#xff0c;程序及Web服务 五&#xff0c;消息队列&#xff0c;web集群&#xff0c;系统及软件优化&#xff0c;智能化监控&#xff0c;海…