当前位置: 首页 > news >正文

Java:数据结构-再谈String类

字符串常量池

首先我们来思考这段代码,为什么运行结果一个是true,一个是false呢?

public class Test {public static void main(String[] args) {String s1="123";String s2="123";String s3=new String("555");String s4=new String("555");System.out.println(s1==s2);System.out.println(s3==s4);}
}

 

在Java程序中,类似于:1, 2, 3,3.14,“hello”等字面类型的常量经常频繁使用,为了使程序的运行速度更快、 更节省内存,Java为8种基本数据类型和String类都提供了常量池。

常量池的存储方法

通过用new来创建String类的对象 

public class Test {public static void main(String[] args) {char[] ch =new char[]{'a','b','c'};String s1=new String(ch);String s2="abc";System.out.println(s1==s2);}

 

intern方法

intern 是一个native方法(Native方法指:底层使用C++实现的,看不到其实现的源代码),该方法的作用是手动将创建的String对象添加到常量池中。

public class Test {public static void main(String[] args) {char[] ch =new char[]{'a','b','c'};String s1=new String(ch);s1.intern();String s2="abc";System.out.println(s1==s2);}

 

 s1.intern();调用之后,会将s1对象的引用放入到常量池中,"abc" 在常量池中存在了,s2创建时直接用常量池中"abc"的引用,所以运行的结果为true。

希望能对大家有所帮助!!!!

相关文章:

Java:数据结构-再谈String类

字符串常量池 首先我们来思考这段代码,为什么运行结果一个是true,一个是false呢? public class Test {public static void main(String[] args) {String s1"123";String s2"123";String s3new String("555")…...

斗破QT编程入门系列之二:GUI应用程序设计基础:UI文件(四星斗师)

斗破Qt目录: 斗破Qt编程入门系列之前言:认识Qt:Qt的获取与安装(四星斗师) 斗破QT编程入门系列之一:认识Qt:初步使用(四星斗师) 斗破QT编程入门系列之二:认识…...

微服务实战系列之玩转Docker(十八)

导览 前言Q:如何保障容器云环境下etcd集群的数据安全一、安全机制身份认证必学必看1. 启动参数2. 授权命令3. 开启认证 二、应用实践1. 访问容器2. 查看认证是否开启3. 查看是否已创建用户4. 创建用户5. 开启认证6. 验证是否开启7. 验证数据 结语系列回顾 前言 etc…...

Javascript 获取设备信息 工具

JS获取设备信息(操作系统信息、地理位置、UUID、横竖屏状态、设备类型、网络状态、浏览器信息、生成浏览器指纹、日期、生肖、周几等) Get Device Info Online GitHub - skillnull/DeviceJs: JS获取设备信息(操作系统信息、地理位置、UUID、横竖屏状态、设备类型、网络状态、浏…...

基于开源 AI 智能名片、S2B2C 商城小程序的用户获取成本优化分析

摘要:本文围绕用户获取成本(CAC)这一关键指标展开深入剖析,详细阐述其计算方式,并紧密结合开源 AI 智能名片与 S2B2C 商城小程序的独特性质,从多个维度探讨如何通过挖掘新的获客渠道、巧妙运用私域流量池等…...

仿真APP助力汽车零部件厂商打造核心竞争力

汽车零部件是汽车工业的基石,是构成车辆的基础元素。一辆汽车通常由上万件零部件组成,包括发动机系统、传动系统、制动系统、电子控制系统等,它们共同确保了汽车的安全、可靠性及高效运行。 在汽车产业快速发展的今天,汽车零部件…...

vue实现websocket实时短消息通知

1、原理 websocket就是通过服务器向客户端推送消息,客户端也可以主动向服务器发送消息,是真正的双向平等对话,是一种长连接,只需要通过一次请求进行初始化。 2、事件 onopen: 客户端和服务器建立连接后触发,被称为客…...

tinymce扩展功能:1、行高、段落间距、格式刷;2、视频上传进度条;3、对复制的图片设置尺寸

tinymce扩展功能:1、行高、段落间距、格式刷;2、视频上传进度条;3、对复制的图片设置尺寸 一、需求描述二、行高、段落间距、格式刷插件三、实现视频上传的进度条、对复制的图片设置尺寸 一、需求描述 使用技术: vue2 tinymce5.…...

计算机毕业设计Python+图神经网络手机推荐系统 手机价格预测 手机可视化 手机数据分析 手机爬虫 Django Flask Spark 知识图谱

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

WPF的<ContentControl>控件

在WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;<ContentControl>是一个非常有用的控件&#xff0c;它允许你将内容放入一个控件中&#xff0c;这个内容可以是任何对象。ContentControl的主要特点是它有一个Content属性&#xff0c;你可以将…...

Python并发编程——multiprocessing

目录 1. 引言1.1 并发与并行的区别 2. 多进程开发2.1 Process 类的常用方法2.2 进程的生命周期与同步 3. 进程之间的数据共享3.1 使用 Value 和 Array3.2 使用 Manager 实现高级数据共享 4. 进程锁4.1 更复杂的锁应用4.2 锁的死锁与避免4.3 信号量与条件变量 5. 进程池5.1 imap…...

智能家居的未来:AI让生活更智能还是更复杂?

内容概要 智能家居的概念源于将各种家居设备连接到互联网&#xff0c;并通过智能技术进行控制和管理。随着人工智能的迅速发展&#xff0c;这一领域也迎来了前所未有的机遇。从早期简单的遥控器到如今可以通过手机应用、语音助手甚至是环境感应进行操作的设备&#xff0c;智能…...

【物联网技术】ESP8266 WIFI模块在AP模式下作为TCP服务器与多个电脑/手机网络助手(TCP客户端)通信——TCP数据透传

前言:完成ESP8266 WIFI模块在AP模式下作为TCP服务器与多个电脑/手机网络助手(TCP客户端)通信——实现TCP数据透传 AP模式,通俗来说模块可以发出一个WIFI热点提供给电脑/手机连接。 TCP服务端,通俗来说就是模块/单片机作为服务器,可以接收多个客户通道的连接。 本…...

十五:java web(7)-- Spring Boot

目录 1. Spring Boot 简介 1.1 简介 1.2 Spring Boot 的特点 1.3 Spring Boot 和 Spring 的关系 2. Spring Boot 快速入门 2.1 创建第一个 Spring Boot 项目 3. Spring Boot 配置管理 3.1 application.properties 和 application.yml 配置 这两种都可以 好像现在更推荐…...

洛谷每日一题——P1036 [NOIP2002 普及组] 选数、P1045 [NOIP2003 普及组] 麦森数(高精度快速幂)

P1036 [NOIP2002 普及组] 选数 题目描述 [NOIP2002 普及组] 选数 - 洛谷 运行代码 #include <stdio.h> int n, k, a[25], t; int ss(int b) {int i;if (b < 2)return 0;for (i 2; i * i < b; i)if (b % i 0)return 0;return 1; } void dfs(int num, int sum, …...

OpenHarmony开源鸿蒙

OpenHarmony_百度百科 2024年4 月 1 日&#xff0c;开源鸿蒙 OpenHarmony 4.1 Release 版本于昨日发布&#xff0c;开发套件同步升级到 API 11 Release...

2024.11.4 STM32点灯和简单的数据收发

1.发送函数 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout); 参数1&#xff1a; UART 处理结构体的指针&#xff0c;该结构体包含了 UART 的所有配置参数。 参数2&#xff1a;要发送的数据指针 参数3&…...

Android Studio jcenter 停止服务,改用mavenCentral

随着jcenter在2021年2月28日停止服务&#xff0c;Android和Java开发者需寻找替代方案。推荐使用MavenCentral&#xff0c;可借助国内镜像加速。此外&#xff0c;jitpack.io也是一个选项&#xff0c;但对于大型项目&#xff0c;自建Nexus或MavenCentral更合适。迁移步骤包括更新…...

EasyPOI使用详解

EasyPOI 简介 easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 语言(熟悉的表达式语法),完成以前复杂的写法 文档&#xff1a;http://easypoi.mydoc.io/#categor…...

【云原生开发】K8S多集群资源管理平台架构设计

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

微前端进阶:WuJie + Vite + Vue3 的无界架构性能优化全攻略

1. WuJie微前端框架的核心优势 WuJie作为新一代微前端解决方案&#xff0c;最大的特点就是真正实现了"无界"体验。我在多个大型项目中实测发现&#xff0c;它完美解决了传统iframe方案存在的样式隔离、通信困难等问题。不同于single-spa这类基于路由的微前端框架&…...

终极指南:如何使用Ohm构建JavaScript解释器(10个完整步骤)

终极指南&#xff1a;如何使用Ohm构建JavaScript解释器&#xff08;10个完整步骤&#xff09; 【免费下载链接】ohm A library and language for building parsers, interpreters, compilers, etc. 项目地址: https://gitcode.com/gh_mirrors/oh/ohm Ohm是一个强大的解析…...

rk3576(5)之设备树下GPIO驱动

1、简介rk3576buildroot设备树GPIO驱动编写。个人理解设备树就相当于存在统一规则、统一管理的头文件&#xff0c;记录了开发板的设备信息。2、设备树语法2.1、dtsi 头文件设备树也支持头文件&#xff0c;设备树的头文件扩展名为.dtsi设备树文件不仅可以应用 C 语言里面的.h 头…...

方寸陶瓷藏乾坤:百能云板用陶瓷基板四大核心工艺,赋能万物互联时代

当你驾驶新能源汽车平稳穿梭在城市街巷&#xff0c;当深夜的 LED 路灯精准照亮回家的路&#xff0c;当手机人脸识别瞬间解锁生活便捷 —— 你或许不会想到&#xff0c;这些场景的背后&#xff0c;都离不开一块 “隐形基石”&#xff1a;陶瓷散热基板。作为电子设备的 “散热心脏…...

从Flash到I2C:盘点那些让你头疼的时序图符号,并教你用Python+逻辑分析仪自动解析

从Flash到I2C&#xff1a;时序图符号解析与Python自动化实战 第一次翻开某款Flash芯片的数据手册时&#xff0c;我被密密麻麻的时序图符号彻底击垮了。灰色交叉、斜坡箭头、省略号标记...这些看似简单的图形背后&#xff0c;隐藏着芯片厂商精心设计的通信规则。作为嵌入式开发者…...

如何写出高效的大模型提示词

大模型提示词编写的核心在于通过清晰、结构化的指令引导模型精准理解并执行任务。其技巧与最佳实践可归纳为明确任务目标、提供充分背景与约束、优化指令结构、以及利用先进框架与迭代优化。下表总结了关键要素与具体策略&#xff1a; 核心要素描述与目的具体实践与技巧角色 (…...

TX12 + ExpressLRS 915MHz RC链路优化与EdgeTX固件升级实战

1. 为什么选择TX12搭配ExpressLRS 915MHz系统 玩无人机的朋友都知道&#xff0c;遥控链路就像风筝线&#xff0c;距离和稳定性直接决定飞行体验。我之前用2.4GHz的RadioLink套装&#xff0c;飞到500米就开始心跳加速——信号时断时续&#xff0c;每次返航都像在赌运气。换成TX1…...

DMA固件读卡器源码:pcileech-带读卡器仿真的FPGA

DMA固件读卡器源码&#xff0c;只提供源码 pcileech-带读卡器仿真的fpga最近在折腾硬件安全研究的小伙伴们应该都听说过DMA&#xff08;直接内存访问&#xff09;读卡器的骚操作。这玩意儿不经过CPU直接跟内存对话的特性&#xff0c;在取证和漏洞挖掘领域简直是个神器。今天咱们…...

UniApp项目实战:手把手教你用云函数搞定UniPush 2.0服务端消息推送

UniPush 2.0云函数实战&#xff1a;从零构建高可用消息推送系统 在移动应用生态中&#xff0c;消息推送是维系用户活跃度的关键触达手段。UniPush 2.0作为DCloud推出的新一代推送服务&#xff0c;通过云函数与厂商通道的深度整合&#xff0c;解决了传统推送方案中离线到达率低、…...

STM32C8T6+AS608指纹模块实战:从接线到代码调试的全流程避坑指南

STM32C8T6AS608指纹模块实战&#xff1a;从接线到代码调试的全流程避坑指南 指纹识别技术正逐渐渗透到日常生活的各个角落&#xff0c;从手机解锁到门禁系统&#xff0c;这项技术为我们提供了便捷与安全的双重保障。对于嵌入式开发者而言&#xff0c;将指纹识别功能整合到自己的…...