每天一道面试题之String str=“i“与 String str=new String(“i”)一样吗?

news2024/11/26 20:29:17

String str="i"与 String str=new String(“i”)一样吗?

要想知道二者是否一样,我们只需要通过==进行比较,为什么不用equals的原因,大家可以认真阅读这篇文章

测试代码如下:

 public class Test1 {
     public static void main(String[] args) {
        String str1="i";
        String str2=new String("i");
        System.out.println(str1==str2);
     }
}

运行结果如下:

在这里插入图片描述

它们的的值都是为"i",为什么结果为false呢?
原因为如下:

String str="i";是采用字符串常量的方式创建对象,在Java中,String类型的对象使用率非常高,但我们在编写程序的过程中,主要关心的是String对象的值,为了避免频繁的创建与销毁String对象,JVM为了提升性能和减少内存开销,在内存中维护了一段特殊的空间称为字符串对象池,它的工作原理是这样的,创建一个字符串时,JVM首先会检查字符串常量池中是否有值相等的字符串,如果有,则不再创建,直接返回该字符串的引用地址,若没有,则创建,然后放至字符串常量池中,并返回新创建的字符串的引用地址,但是字符串对象池只对字符串常量的方式创建字符串对象适用。

String str=new String(“i”)采用的是构造方法的方式创建字符串对象new关键字会在堆内存开辟空间,即使已经存在具有相同字符序列的字符串常量,它还是会创建一个新的字符串对象。

由于二者创建对象方式的不同导致创建出的对象,虽然值相同,但并不是同一个对象,因此它们并不一样!

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

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

相关文章

chatgpt赋能python:Python选择器:优化你的SEO

Python 选择器:优化你的SEO 介绍 随着搜索引擎优化(SEO)变得越来越重要,Web 开发人员需要采取各种措施来提高网站的搜索排名。其中之一就是通过使用正确的 HTML 标签和优秀的内容来提高搜索引擎爬虫对网站的理解。这时候 Python 选择器就变得尤为重要。…

chatgpt赋能python:Python选择函数

Python 选择函数 Python是一种流行的编程语言,是许多开发人员的首选。在Python中,有许多函数可供开发人员使用。这些函数不仅提高了开发的速度,而且还可以帮助我们更快地解决许多问题。在本文中,我们将重点介绍Python选择函数。 …

iostat详解

iostat在centOS中默认没有 安装 yum install sysstat 使用 iostat -dxk 5 rrqm/s 每秒进入队列的合并读写请求数 wrqm/sr/s每秒发送到设备的读写请求数w/srKB/s每秒读写的吞吐量,单位KBwKB/savgrq-sz 以扇区为大小的请求大小 avgqu-sz设备队列中等待的请求数await在…

HNU-电路与电子学-综合设计-模型机

写在前面: 每一年的综合设计肯定都有改动,故肯定不能照搬照抄,大家可以借鉴思路,复现成果,但要注意不同之处,以免被0分处理。 模型设计的指导书我不放在这里了,因为那是课程组老师们的成果。 …

HNU-电路与电子学-学习建议

电路与电子学我考的并不好,最后总评只有85分。 (主要是期末考太差了,只有70分,前面基本全拿满了,也无济于事) 但我自认为学的还可以,于是写下一些感想。 我姑妄言之,诸位姑妄信之…

【华为OD机试】投骰子【2023 B卷|200分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 骰子是一个立方体,每个面一个数字,初始为左1,右2,前3(观察者方向),后4,上5,下6, 用123456表示这个状态,放置在平面上, 可以向左翻转(用L表示向左翻转1次), 可以向右翻转(用…

C Primer Plus第九章编程练习答案

学完C语言之后,我就去阅读《C Primer Plus》这本经典的C语言书籍,对每一章的编程练习题都做了相关的解答,仅仅代表着我个人的解答思路,如有错误,请各位大佬帮忙点出! 1.设计一个函数min(x, y),…

【利用AI让知识体系化】5种创建型模式

文章目录 创建型模式简介工厂模式抽象工厂模式单例模式建造者模式原型模式 创建型模式 简介 创建型模式,顾名思义,是用来创建对象的模式。在软件开发中,对象的创建往往比一般的编程任务更为复杂,可能涉及到一些琐碎、复杂的过程…

Boosting以及代表算法(Adaboost、GBDT)介绍

一、Boosting介绍 1.什么是Boosting Boosting(提升)是一种集成学习方法,通过组合多个弱学习器来构建一个强学习器。与Bagging不同,Boosting采用了序列化的方式构建模型,每个弱学习器都是在前一个弱学习器的基础上进行…

Linux-0.11 文件系统exec.c详解

Linux-0.11 文件系统exec.c详解 模块简介 该模块实现了二进制可执行文件和shell脚本文件的加载和执行。 函数详解 create_tables static unsigned long * create_tables(char * p,int argc,int envc)该函数的作用是建立参数和环境变量指针表。 create_table的作用就是建立…

玄子Share - IDEA 2023.1 自定义 代码模板(Servlet)

玄子Share - IDEA 2023.1 自定义 代码模板(Servlet) 23版 IDEA 内取消了自动生成 Servlet 模板类,不过我们可以自己定义一个 Servlet 模板 步骤 第一步打开 IDEA 设置界面,编辑器 -> 文件和代码模板 -> 点击加号新建模板…

chatgpt赋能python:Python补齐0,让你在编程中更得心应手

Python 补齐0,让你在编程中更得心应手 在Python编程中,我们经常会遇到数字需要补齐0的情况。比如说我们要制作一个日期格式的字符串,例如“2022-02-22”,但是当天数只有一位数时,需要在前面补0,即“2022-0…

chatgpt赋能python:Python转换器——将数据转换为所需格式的工具

Python 转换器——将数据转换为所需格式的工具 Python 是一种功能强大的编程语言,因为它具有处理和分析数据的能力,因此被广泛使用。然而,在现代互联网时代,数据的格式和大小通常不相同,因此经常需要将数据从一种格式…

chatgpt赋能python:Python词形还原:一种优化搜索引擎排名的方法

Python词形还原:一种优化搜索引擎排名的方法 什么是词形还原? 词形还原是自然语言处理(NLP)中的一种重要技术。它是将单词转化为其最基本的形式的过程,例如动词的原形或名词的单数形式。这个过程旨在帮助计算机更好地…

openGauss 3.1企业版升级至5.0

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

什么是SOME/IP?

本文是SOME/IP 官方文档的翻译。原文地址:https://www.autosar.org/fileadmin/standards/R22-11/FO/AUTOSAR_RS_SOMEIPProtocol.pdf 1.引言和概览 2. 协议要求 3. 缩略语和术语 术语/缩略语描述Byte Order Mark字节顺序标记(byte order mark, BOM)是一个Unicode字…

Spring学习记录

目录 工厂模式的三种形态 简单工厂模式 代码: 运行结果: 总结: 工厂模式 代码: 运行结果: 总结: 抽象工厂模式 代码: 运行结果: 总结: bean的单例与多例 设置 …

chatgpt赋能python:Python父类调用子类:多态性的核心思想

Python父类调用子类:多态性的核心思想 多态性是面向对象编程(OOP)的核心思想之一,它允许不同的对象在调用同一个方法时产生不同的行为。Python是一门支持多态性的编程语言。在Python中,使用父类调用子类的方法是实现多态性的关键之一。 什么…

考研C语言第五章

5.2 数组基础知识 注意要点: 1.下标0开始 2.没有定义的地方是0 5.3 数组访问越界与数组传递 访问越界,定义超过前面定义的数组长度,占据了后面定义数据的地方 非常危险! 在循环里面往往容易造成越界 数组传递 1.函数引用时…

AI一键抠图

前言 由于需要批量抠图,原本是想用MODNet的,可惜最新的模型官方不开源,旧模型扣的人物边缘有白边。最后发现了PP飞桨。 飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,集深度学习核心训…