Java 两个String构造方法的区别

Java 两个String构造方法在本质上,没有什么不同。两者的调用逻辑最终都是通过CharsetDecoder类的 decode 方法来实现的。调用的顺序是 String -> StringCoding -> CharsetDecoder。charsetName 作为参数的构造方法里面,会在 StringCoding 使用一个 StringDecoder 作为中转的辅助,而且这个 StringCoding.StringDecoder 是有缓存机制的。

Java 两个String构造方法的区别-Worktile社区

charsetName 作为参数的构造方法里面,会在 StringCoding 使用一个 StringDecoder 作为中转的辅助,而且这个 StringCoding.StringDecoder 是有缓存机制的。多次使用相同的 casrsetName 可能用用到相同的缓存的 StringCoding.StringDecoder;Charset当作参数的里面是直接创建 CharsetDecoder 的 decode 方法的。

在创建String对象时,通常来讲,有两种方式,一是new型:String s = new String(“abc”);另一种是双引号型:String s = “abc”;那么这两种方式有什么区别呢?

答:这两种方法生成的字符串对象,在内存中的存取机制不同。

Java为String类型提供了缓冲池机制,当使用双引号定义对象时,Java环境首先去字符串缓冲池寻找相同内容的字符串,如果存在就直接拿出来应用,如果不存在则创建一个新的字符串放在缓冲池中。示例代码如下:

String a = “tom”;

String b = “tom”;

在上诉代码中,变量a和b使用的是缓冲区中的同一个存储对象。

在使用String构造方法定义对象时,Java环境会和创建其他类型的对象一样,每次调用时,都会去创建一个新的对象。示例代码如下:

String a = new String(“tom”);

String b = new String(“tom”);

在上述代码中,变量a 和b 使用的是两个不同的存储对象,只是对象中的内容相同。

结束语,String s = new String(“abc”)和String s = “abc”都可以定义String类型对象,但需要注意两者的区别。一般情况下,建议使用String s = “abc”方式,因为该方式采用的是字符串缓冲池机制,效率更高。

延伸阅读:

什么是String?

string是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。 C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。

String就是C++、java、VB等编程语言中的字符串,用双引号引起来的几个字符,如”Abc”,”一天”.

String类是不可变(final)的,对String类的任何改变,都是返回一个新的String类对象。这样的话把String类的引用传递给一个方法,该方法对String的任何改变,对原引用指向的对象没有任何影响,这一点和基本数据类型相似。

字符串数据类型,可包含单一字元或字符串的变数型态。需要注意的是在NoahWeb中要指定字符串给字符串变量,要在头尾加上单引号 (例如: ‘中国’)。

文章标题:Java 两个String构造方法的区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37870

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年2月12日 下午4:57
下一篇 2023年2月13日 上午2:07

相关推荐

  • 开发的需求文档怎么写

    开发的需求文档写法:1、简介;2、系统要求和功能要求;3、外部接口要求;4、非功能性需求。简介包括产品范围、产品价值、目标受众、预期用途、定义和缩略语、目录等内容。简介将成为需求文档其余部分的指南。 一、开发的需求文档写法 1、简介 在撰写需求文档时,请描述产品的目的、目标受众以及受众将如何使用它。…

    2023年4月14日
    6700
  • oa办公系统和sap系统的区别

    区别有:一、功能定位;二、适用范围;三、数据处理;四、实现方式;五、用户群体;六、维护成本。OA系统是一种协同办公、流程管理和文档管理系统。SAP系统是一种企业资源计划系统,它的主要功能包括:供应链管理、销售管理和采购管理等。 一、功能定位 OA系统是一种协同办公、流程管理和文档管理系统。它的主要功…

    2023年5月28日
    300
  • 如何实现高效的团队合作

    实现高效的团队合作要做到:1、架构合理,分工科学;2、业务规范,流程体系;3、精准考核,合理回报;4、合作共赢,集体荣誉;5、以身作则,不断进化。架构合理是因为组织架构属于部门顶,基于部门定位及职责,设置相应岗位及配置人数。 1、架构合理,分工科学 架构合理是根本:组织架构属于部门顶层设计,基于部门…

    2023年1月6日
    10900
  • 知识库怎么建立

    建立知识库的步骤:一、明确知识库的目的和范围;二、选择适合的知识库工具;三、制定知识库管理规范和流程;四、收集和整理知识库内容;六、推广和使用知识库。在建立知识库之前,需要确定知识库的建立目的和覆盖范围。 一、明确知识库的目的和范围 在建立知识库之前,需要确定知识库的建立目的和覆盖范围。比如需要为团…

    2023年4月30日
    1800
  • 怎么去理解量子计算机的「量子」与传统计算机有什么区别

    区别是:量子计算机的硬件基于量子电路,计算机运行的算法是量子算法,传统计算机是由数字电路组成,数字电路则是由许多的逻辑门组成。量子是指利用量子比特,使计算机可以同时处在多个状态,而不像传统计算机那样只能处于0或1的二进制状态。 量子是指利用量子比特,使计算机可以同时处在多个状态,而不像传统计算机那样…

    2023年2月14日
    7400
  • 进度图用什么软件

    常用的进度图软件有:1. Microsoft Project;2. GanttProject;3. Smartsheet;4. Trello。Microsoft Project是一个专业的进度图软件,它被广泛用于项目管理中。它提供了一个强大的工具集,可以帮助用户创建和调整进度图,识别和管理风险,并与…

    2023年2月26日
    9400
  • chatGPT升级为chatGPT Plus会员详细教程

    ChatGPT PLUS付费充值方法详解。ChatGPT Plus详细注册教程。Chatgpt plus 升级经验分享。ChatGPT Plus订阅指南:快速升级为高级版用户的正确姿势。

    2023年3月30日
    4.9K00
  • Web1、Web2、Web3有什么区别

    Web1、Web2、Web3有什么区别:Web1、Web2和Web3的区别在于其技术水平、交互性、社交性、数据集中化程度、去中心化程度等方面的不同。Web1是指Web的早期发展阶段,这个阶段主要以静态网页为主。 一、Web1 Web1是指Web的早期发展阶段,这个阶段主要以静态网页为主,用户只能通过…

    2023年5月13日
    1500
  • 燃尽图的作用是什么

    燃尽图的主要作用有:1、燃尽图可以在不同的时间周期下被使用。2、燃尽图中使用的指标可能是短期指标。3、市场运行中会有很多特殊情况,并且不同时期内的行情走势会不同。4、燃尽图可以用于预测趋势中的时间周期。 1、燃尽图可以在不同的时间周期下被使用 我个人是建议大家在不同的时间周期使用燃尽图,因为它在不同…

    2022年11月30日
    22100
  • 文科生想学编程,零基础,应该怎么学起

    应该做到:1、基本功很重要;2、反复练习很重要;3、要参考不同的学习资料;4、找一位“导师”;5、接纳失败或者处理挫折的能力;6、养成良好编码风格的重要性;7、跨界的重要性;8、不要给自己设限;9、遇事先分析方法;10、开始行动比完美更重要。 1、基本功很重要 以学英语为例,读英语新闻之前,如果不认…

    2023年2月22日
    3500

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部