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

关于String常量池的理解

1:

String s1="abc";

当我们写这样的表达式的时候,在编译时 “abc”就会在常量池中创建,s1指向的是常量池中“abc”的引用。

2:

String s2 = new String("abcd")

当我们写这样的表达式的时候,在编译时 “abcd”就会在常量池中创建,但是运行时仍然会在堆中创建一个字符串对象。s2引用为堆中的地址。以下的输出为false,因为s2为堆中的地址,“abcd”为常量池中的地址。

3:intern方法的理解

当调用某个字符串对象的intern方法时,首先会到常量池中检查是否存在和该字符串相等(通过equal方法判断)的字符串A(起个名字叫字符串A),如果存在则返回字符串A在常量池的地址。如果不存在,则复制该字符串对象的引用到常量池,然后返回该引用。

第一种使用情况:

第一条语句会在常量池中创建字符串“abc”,s1为常量池中的地址。

第二条语句首先会判断s1代表的字符串是不是在常量池中存在,判断结果为存在,则返回常量池中的地址给s2

第三条语句,s1和s2都指向常量池中的同一个地址,所以返回true。

第二种情况:每一条语句的注释后面已经写说明了,这里不再赘述。

第三种情况:为第二种情况的变种,上面加了一行。但是结果会很不相同。具体结果为false,true,false。具体解释欢迎大家在评论里留言讨论。

相关文章:

  • java中lambda表达式双冒号::的使用
  • java web 解决cors 跨域问题
  • java lambda 对list实现分组(groubby);并将对象的部分属性作为List对象,然后返回list中的第一个值
  • win10 mysql 主从复制(异步复制)配置
  • TCC java 案例
  • spring-cloud-sleuth链路信息中增加自定义属性
  • spring 替换字符串中的配置信息
  • dolphinscheduler1.3版本源码分析---API模块
  • dolphinscheduler1.3版本源码分析---MASTER模块
  • gradle 作为编译工具 lombok 死活不生效解决
  • java lambda groupingby 结果的value为对象的一个属性
  • class.getTypeParameters()方法
  • flatmap使用
  • mybatis-plus QueryWrapper 添加limit
  • linux ls ll命令中文乱码
  • 【Leetcode】101. 对称二叉树
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • gops —— Go 程序诊断分析工具
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • node和express搭建代理服务器(源码)
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • python3 使用 asyncio 代替线程
  • React Transition Group -- Transition 组件
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • 漂亮刷新控件-iOS
  • 白色的风信子
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​TypeScript都不会用,也敢说会前端?
  • ​决定德拉瓦州地区版图的关键历史事件
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (4.10~4.16)
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (function(){})()的分步解析
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (翻译)terry crowley: 写给程序员
  • (离散数学)逻辑连接词
  • (四)linux文件内容查看
  • .net CHARTING图表控件下载地址
  • .net 使用ajax控件后如何调用前端脚本
  • .net 提取注释生成API文档 帮助文档
  • /etc/sudoer文件配置简析
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • @SpringBootApplication 包含的三个注解及其含义
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [2016.7.Test1] T1 三进制异或
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [Android View] 可绘制形状 (Shape Xml)
  • [CF494C]Helping People
  • [English]英语积累本