String为什么是不可变的?

原因一、String字符串类型的数据结构

        字符串在String类的内部是用一个char[]数组表示的,而这个数组使用final关键字修饰的,所以不能修改。

举例说明:

String ip="127.0.0.1";
String ret=ip.replace(".","#");
System.out.println(ip);
System.out.println(ret);

输出结果:

127.0.0.1
127#0#0#1 

原因二、每次修改,都会产生一个新的字符串

//邮箱地址
String email="12345@qq.com";
//截取用户名
int endIndex=email.indexOf("@");
String id=email.substring(0,endIndex);
System.out.println(id);

输出结果:12345

        看了上述代码,可能会想,id是把email截取过后赋值给他自己吗?那么email变了吗?我们可以通过String类的源代码得知,当我们输入的参数是合法参数时,会new一个新的字符串对象,即截取后的“12345”,将其赋值给id,当我们输出email时,就会发现email的值并没有改变,还是截取前的"12345@qq.com"。

        在我们通过string类的其他方法改变它的值时,都是通过产生一个新的字符串对象,将修改过后的值赋给这个新的字符串对象,原字符串从始至终都没有改变

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

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

相关文章

spring通过类名称获取名字

在Spring中,可以使用反射来根据类的全限定名获取其对应的Bean名称。 下面是示例代码: import org.springframework.beans.factory.BeanFactory; import org.springframework.context.support.ClassPathXmlApplicationContext;public class Main {publi…

BUGKU-WEB 留言板1

题目描述 题目截图如下: 进入场景看看: 解题思路 之间写过一题类似的,所以这题应该是有什么不同的那就按照之前的思路进行测试试试提示说:需要xss平台接收flag,这个和之前说的提示一样 相关工具 xss平台&#xf…

银河麒麟操作系统自动同步时间更新

1、银河麒麟操作系统基于Centos8的,因centos8取消了ntp服务器,所以导致之前使用ntpdate命令无法同步时间 2、centos默认使用chrony模块来进行同步时间 3、修改chrony配置同步时间服务器 vim /etc/chrony.conf 4、目前使用的是阿里云的时间服务器&…

Postgresql源码(122)Listen / Notify与事务的联动机制

前言 Notify和Listen是Postgresql提供的不同会话间异步消息通信功能,例子: LISTEN virtual; NOTIFY virtual; Asynchronous notification "virtual" received from server process with PID 8448. NOTIFY virtual, This is the payload; Asy…

Unity笔记:数据持久化的几种方式

正文 主要方法: ScriptableObjectPlayerPrefsJSONXML数据库(如Sqlite) 1. PlayerPerfs PlayerPrefs 存储的数据是全局共享的,它们存储在用户设备的本地存储中,并且可以被应用程序的所有部分访问。这意味着&#xf…

深入浅出熟悉OpenAI最新大作Sora文生视频大模型

蠢蠢欲动,惴惴不安,朋友们我又来了,这个春节真的过的是像过山车,Gemini1.5 PRO还没过劲,OpenAI又放大招,人类真的要认输了吗,让我忍不住想要再探究竟,到底是什么让文生视频发生了质的…

头歌C++语言之选择排序练习题

目录 第1关:第二统计数字 任务描述 相关知识 数组声明: 初始化数组: 访问数组元素 选择排序 编程要求 第2关:运动会排名 任务描述 相关知识 多维数组 访问二维数组 编程要求 第3关:单词排序 任务描述 相关知识 strcmp()函数 编程要求

流星蝴蝶剑之七夜听雪中文版下载

软件介绍: 中文名称: 流星蝴蝶剑七夜听雪 英文名称: Meteor 游戏类型: 3D武侠格斗 发行时间: 2002年08月 制作发行: 流星江湖悠悠客栈 语言 :中文 配置要求: 操作系统:Windows 95 / 98 / Me / 2000 / XP 最低配置 CPU:Pentium II 450MHz 以上…

记录 | git win C://User/Administrator/.ssh下没有id_rsa.pub找不到

在用 ssh-keygen -t rsa -C "xxx163.com”生成后,在 C://User/Administrator/.ssh 下找不到 id_rsa.pub 文件 在这个下面找找: C:\Users\Administrator\AppData\Roaming\SPB_Data\.ssh 或者直接看 ssh-keygen 生成的终端日志,上面有说…

单向/双向V2G环境下分布式电源与电动汽车充电站联合配置方法(matlab代码)

目录 1 主要内容 目标函数 电动汽车负荷建模 算例系统图 程序亮点 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序复现博士文章《互动环境下分布式电源与电动汽车充电站的优化配置方法研究》第五章《单向/双向V2G环境下分布式电源与电动汽车充电站联合配置方法》…

0206-1-网络层

第 4 章 网络层 网络层提供的两种服务 虚电路服务 数据报服务 概要: 虚电路服务与数据报服务的对比 网际协议 IP 网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。与 IP 协议配套使用的还有四个协议: 地址解析协议 ARP (Address Resolution Protocol)逆地…

【鸿蒙系统学习笔记】TypeScript开发语言

一、背景 HarmonyOS 应用的主要开发语言是 ArkTS,它由 TypeScript(简称TS)扩展而来,在继承TypeScript语法的基础上进行了一系列优化,使开发者能够以更简洁、更自然的方式开发应用。值得注意的是,TypeScrip…

34、商城系统(十五):认证服务,短信验证码,密码加盐,OAuth2.0社交登录,SpringSession认证功能,单点登录

目录 一、新建认证服务 1.后端项目启动 2.前端页面复制 3.配置域名 4.配置gateway

在 CentOS 上安装 JDK 1.8

要在 CentOS 上安装 JDK 1.8,您可以按照以下步骤进行操作: 打开终端(命令行界面)。 检查您的系统是否已经配置了正确的软件源。可以执行以下命令来更新软件包索引: sudo yum update使用以下命令安装 OpenJDK 1.8&…

Spring整合Mybatis之DAO层、Service层开发

3. Spring整合Mybatis编程DAO层开发 1. 项目引入相关依赖spring mybatis mysql mybatis-spring druid2. 编写spring.xml整合&#xff1a;spring 接管 mybatis 中 SqlSessionFactory对象的创建<!--创建DataSource--><bean class"com.alibaba.druid.pool.…

8、内网安全-横向移动RDPKerberos攻击SPN扫描WinRMWinRS

用途&#xff1a;个人学习笔记&#xff0c;有所借鉴&#xff0c;欢迎指正 目录 一、域横向移动-RDP-明文&NTLM 1.探针服务&#xff1a; 2.探针连接&#xff1a; 3.连接执行&#xff1a; 二、域横向移动-WinRM&WinRS-明文&NTLM 1.探针可用&#xff1a; 2.连接…

【PyQt】14-绘图-QPainter

文章目录 前言一、QPainter二、绘制文本-drawTextQt里面的文本对齐方式 运行结果 三、像素点总结 前言 1、学会画图方法 一、QPainter 通常可以绘制文本、各种图形&#xff08;点、线、椭圆、弧、扇形、多边形等等&#xff09;、图像。 必须在painrEvent事件方法中绘制各种元…

Eclipse 分栏显示同一文件

Eclipse 分栏显示同一文件 1. Window -> EditorReferences 1. Window -> Editor Toggle Split Editor (Horizontal) &#xff1a;取消或设置水平分栏显示 Toggle Split Editor (Vertical) &#xff1a;取消或设置垂直分栏显示 References [1] Yongqiang Cheng, https:/…

Django后端开发——mysql数据库连接遇到的问题及解决

文章目录 参考资料问题描述情况描述解决方案step1&#xff1a;管理员权限进入mysql&#xff0c;重置root密码step2&#xff1a;重启mysql服务器 参考资料 stackflow帖子&#xff1a;https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-ro…