专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

string是什么意思(string函数的用法)

来源:小易整编  作者:小易  发布时间:2023-04-06 11:08
摘要:作者|平头哥的技术博文编辑|屠敏出品|CSDN博客字符串对象的实现字符串对象是Java中使用最频繁的对象友资源之一,所以Java公司为了提高字符串对象的性能,也在不断优化字符串对象的实现。看下图了解String对象的优化过程。...

作者|平头哥的技术博文

string是什么意思(string函数的用法)

编辑|屠敏

出品| CSDN博客

字符串对象的实现

字符串对象是Java中使用最频繁的对象友资源 *** 之一,所以Java公司为了提高字符串对象的性能,也在不断优化字符串对象的实现。看下图了解String对象的优化过程。

1。在Java6和早期版本

String是封装char数组的对象,有四个成员变量:char数组、偏移量、字符数和hash值hash。

目标是定位char数组,并通过offset和count属性获取字符串。这样可以高效快速的共享数组对象,同时节省内存空,但是这种方法很可能会导致内存泄漏。

2。从Java版本7到Java版本8

从Java版本7开始,Java对String类做了一些修改。String类中不再有offset和count变量。这样做的好处是String对象占用的内存少一点,String.substring方法不再共享char,解决了使用该方法可能导致的内存泄漏问题。

3。来自Java9版本

将字符数组更改为字节数组。为什么需要这么做?我们知道char是两个字节。如果用来存储一个字节的字符有点浪费,为了节省空时间,Java公司把它改成一个字节来存储字符串。这样就避免了存储一个字节字符的浪费。

Java9维护了一个新的属性编码器,它是编码格式的标识。在计算字符串长度或调用indexOf函数时,需要判断如何利用该字段计算字符串长度。默认情况下,coder属性有两个值:0和1,0表示Latin-1(单字节编码),1表示UTF-16编码。如果字符串判断字符串只包含Latin-1,则编码器属性的值为0,否则为1。

如何创建一个字符串对象

1。通过字符串常量

String str= "pingtouge "。当使用这个表单创建一个字符串时,JVM将首先检查该对象是否存在于字符串常量池中。如果存在,它将返回对象的引用地址。如果不存在,它将在字符串常量池中创建字符串对象并返回引用。这样创建的好处是:避免重复创建相同值的字符串,节省内存。

2、字符串构造函数的方式

String =新字符串(“pingtouge”)。以这种方式创建字符串对象的过程很复杂,可以分为两个阶段。首先,在编译时,字符串pingtouge将被添加到constant结构中,并且该字符串将在加载类时在constant池中创建。然后在调用new时,JVM会调用String的构造函数,同时会引用常量池中的pingtouge字符串,在堆内存中创建一个String对象并返回堆中的引用地址。

知道了创建String对象的两种方式,让我们分析下面的代码来加深对这两种方式的理解。以下代码中str等于str1吗?

String str = "pingtouge";String str1 = new String("pingtouge");system.out.println(str==str1)

让我们逐一分析这几行代码。首先,我们从String str = "pingtouge "开始。这里,我们使用字符串常量来创建字符串对象。在创建pingtouge string对象时,JVM会去常量池查找字符串是否存在。这里的答案肯定是否定的,所以JVM会在常量池中创建string对象,并返回对象的地址引用,所以str指向常量池中pingtouge string对象的地址引用。

然后是string str 1 = new string(“pingtouge”)代码,这里使用构造函数创建string对象。按照我们通过构造悠游资源网的函数来创建string对象的理解,str1应该是得到了平头哥string在堆中的引用地址。Str肯定不等于str1,因为str指向常量池中pingtouge字符串对象的地址引用,str1指向堆中pingtouge字符串的引用地址。

字符串对象的不变性

从我们知道字符串对象的那一刻起,我想每个人都知道字符串对象是不可变的。那怎么是不可改变的呢?Java这样做有什么好处?我们来简单讨论一下。我们先来看一段String对象的源代码:

public final class Stringimplements java.io.Serializable, Comparable

本文地址:百科知识频道 https://www.neebe.cn/zhishi/950084.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


百科知识
小编:小易整编
相关文章相关阅读
  • 过五关斩六将(过五关斩六将的意思是)

    过五关斩六将(过五关斩六将的意思是)

    夏洛的人生2023-05-01财经4今天给各位分享过五关斩六将的知识,其中也会对过五关斩六将的意思是进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!关羽过五关斩六将中的六将有哪些人?洛阳太守韩福和...

  • 歆(歆怎么读什么意思)

    歆(歆怎么读什么意思)

    推一把2023-05-01百科5今天给各位分享歆的知识,其中也会对歆怎么读什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!“歆”字读音是什么?“歆”的读音是xīn。有两种意思,第一种是喜爱...

  • 兼容性设置(兼容性设置卸载是什么意思)

    兼容性设置(兼容性设置卸载是什么意思)

    知道小编2023-05-01经验7今天给各位分享兼容性设置的知识,其中也会对兼容性设置卸载是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!Win10系统兼容性怎么设置兼容模式开启方法1、...

  • acp(acp是什么酶)

    acp(acp是什么酶)

    喜得利2023-05-01百科5今天给各位分享acp的知识,其中也会对acp是什么酶进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!acp的含义是什么?ACP的含义是敏捷管理专业人士资格认证,是英...

  • 四喜鸭子是什么地方的菜(四喜烤鸭)

    四喜鸭子是什么地方的菜(四喜烤鸭)

    毓秀1062023-05-01美食3本篇文章给大家谈谈四喜鸭子是什么地方的菜,以及四喜烤鸭对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。四喜鸭子是什么品种做的四喜鸭子一般怎么做四喜鸭子是一道特色传统名菜,属于八...

  • 过五关斩六将(过五关斩六将的意思是)

    过五关斩六将(过五关斩六将的意思是)

    夏洛的人生2023-05-01财经3今天给各位分享过五关斩六将的知识,其中也会对过五关斩六将的意思是进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!关羽过五关斩六将中的六将有哪些人?洛阳太守韩福和...

  • 瓶颈期是什么意思(减肥瓶颈期是什么意思)

    瓶颈期是什么意思(减肥瓶颈期是什么意思)

    一条大河2023-05-02知道5今天给各位分享瓶颈期是什么意思的知识,其中也会对减肥瓶颈期是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!“瓶颈期”是什么意思?释义:事物在变化发展过程...

  • 跑马的汉子(跑马的汉子呀拉索是什么歌曲)

    跑马的汉子(跑马的汉子呀拉索是什么歌曲)

    帝国单机2023-05-01影视3本篇文章给大家谈谈跑马的汉子,以及跑马的汉子呀拉索是什么歌曲对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。跑马的汉子你威武雄壮歌词歌词是什么意思跑马的汉子你威武雄壮歌词歌词是美...

  • 周排行
  • 月排行
  • 年排行

精彩推荐