当前位置:首页 > 上门服务 >

字符串和常量对照表(正确的字符串常量有哪些)

来源:原点资讯(m.360kss.com)时间:2024-01-08 15:17:45作者:YD166手机阅读>>

在深入学习字符串类之前, 我们先搞懂JVM是怎样处理新生字符串的. 当你知道字符串的初始化细节后, 再去写 Strings="hello"或 Strings=newString("hello")等代码时, 就能做到心中有数。

首先得搞懂字符串常量池的概念。

常量池是Java的一项技术, 八种基础数据类型除了float和double都实现了常量池技术. 这项技术从字面上是很好理解的: 把经常用到的数据存放在某块内存中, 避免频繁的数据创建与销毁, 实现数据共享, 提高系统性能。

字符串常量池是Java常量池技术的一种实现, 在近代的JDK版本中(1.7后), 字符串常量池被实现在Java堆内存中。

下面通过三行代码让大家对字符串常量池建立初步认识:

字符串和常量对照表,正确的字符串常量有哪些(1)

我们先来看看第一行代码 Strings1="hello";干了什么.

字符串和常量对照表,正确的字符串常量有哪些(2)

对于这种直接通过双引号""声明字符串的方式, 虚拟机首先会到字符串常量池中查找该字符串是否已经存在. 如果存在会直接返回该引用, 如果不存在则会在堆内存中创建该字符串对象, 然后到字符串常量池中注册该字符串。

在本案例中虚拟机首先会到字符串常量池中查找是否有存在"hello"字符串对应的引用. 发现没有后会在堆内存创建"hello"字符串对象(内存地址0x0001), 然后到字符串常量池中注册地址为0x0001的"hello"对象, 也就是添加指向0x0001的引用. 最后把字符串对象返回给s1。

温馨提示: 图中的字符串常量池中的数据是虚构的, 由于字符串常量池底层是用HashTable实现的, 存储的是键值对, 为了方便大家理解, 示意图简化了字符串常量池对照表, 并采用了一些虚拟的数值。

下面看 Strings2=newString("hello");的示意图:

字符串和常量对照表,正确的字符串常量有哪些(3)

当我们使用new关键字创建字符串对象的时候, JVM将不会查询字符串常量池, 它将会直接在堆内存中创建一个字符串对象, 并返回给所属变量。

所以s1和s2指向的是两个完全不同的对象, 判断s1 == s2的时候会返回false。

如果上面的知识理解起来没有问题的话, 下面看些难点的.

字符串和常量对照表,正确的字符串常量有哪些(4)

栏目热文

未结束的字符串常量解决方法教程(字符串常量的正确表示方法)

未结束的字符串常量解决方法教程(字符串常量的正确表示方法)

第二章第六节:字符串常量。下表C语言中的常用转义字符。·字符形式功能:ASCIl码(十进制形式)。→\t水平制表(横向跳...

2024-01-08 15:19:08查看全文 >>

未结束的字符串常量怎么解决(怎么解决未结束的字符串常量)

未结束的字符串常量怎么解决(怎么解决未结束的字符串常量)

字符常量是由一对单撇号括起来的单个字符,如 'a'、'D'、'?'、&...

2024-01-08 15:11:10查看全文 >>

明日之后直楼梯怎么放地板(明日之后弧形楼梯怎么放不了地板)

明日之后直楼梯怎么放地板(明日之后弧形楼梯怎么放不了地板)

明明在巡逻的过程中,总是喜欢观察营地里大佬们的建筑。那么,在营地那么多的建筑中,怎样才能让你的庄园成为最闪亮的星,脱颖而...

2024-01-08 15:41:25查看全文 >>

明日之后房子怎么做旋转楼梯(明日之后旋转楼梯怎么建)

明日之后房子怎么做旋转楼梯(明日之后旋转楼梯怎么建)

今天给大家邀请了来自多贝雪山服务器的建筑大师@虞虞,为大家讲解一下最近很流行,并且超级容易模仿的小猫庄园的设计。一起来看...

2024-01-08 15:37:14查看全文 >>

博人传现在剧情(博人传最近的剧情)

博人传现在剧情(博人传最近的剧情)

博人传漫画38集已经更新了!先别着急看今天的剧情,我先要好好的吹一波我自己,在一个月前,我曾经猜测了一下!这之后的故事发...

2024-01-08 15:22:36查看全文 >>

未结束的字符串常量怎么解决视频(脚本未结束的字符串常量)

未结束的字符串常量怎么解决视频(脚本未结束的字符串常量)

作者 l Hollis来源 l Hollis(ID:hollischuang)关于String有没有长度限制的问题,我之...

2024-01-08 15:42:12查看全文 >>

字符串常量的长度怎么判断(正确的字符串常量怎么判断)

字符串常量的长度怎么判断(正确的字符串常量怎么判断)

作者 l Hollis 来源 l Hollis关于String有没有长度限制的问题,我之前单独写过一篇文章分析过,最近我...

2024-01-08 14:54:40查看全文 >>

字符串常量长度怎样判断(怎么求字符串常量的长度)

字符串常量长度怎样判断(怎么求字符串常量的长度)

在C语言中,字符串是一种常见的数据类型,用于存储文本和字符序列。字符串大小和长度是在处理字符串时经常遇到的问题。然而,由...

2024-01-08 15:15:39查看全文 >>

我的世界螺旋箭指令(我的世界自动弓指令)

我的世界螺旋箭指令(我的世界自动弓指令)

螺旋线是一圈一圈往Z方向延伸,涡状线是往四周延伸,在这里介绍下螺旋线,螺旋线应用广泛,比如“瓶口螺纹”,“螺母”,“螺丝...

2024-01-08 15:04:43查看全文 >>

我的世界指令如何获得箭(我的世界指令手机版大全)

我的世界指令如何获得箭(我的世界指令手机版大全)

大家好,我是游你网的小仙女。《我的世界》中,弓箭是一类很便捷远程的武器,但是威力上并不是很出彩。如果射出去箭能爆炸,那将...

2024-01-08 15:36:39查看全文 >>

文档排行