写点什么

关于 Java 字符串的 5 个事实,java 语言程序设计 pdf 百度云

作者:MySQL神话
  • 2021 年 11 月 28 日
  • 本文字数:1468 字

    阅读完需:约 5 分钟

让我们使用JArchitect分析 JVM 并搜索其最受欢迎的类型。为此,我们可以使用两个指标:


类型传入耦合(TypeCa):这是使用特定类的类型数。这是根据该指标得出的所有流行类型的结果:



不出所料,Object 它是最常用的一种,但是还有另一种有趣的指标可以搜索流行类型:**TypeRank**


TypeRank 值是通过在类型的依存关系图上应用Google PageRank算法来计算的。应用中心 0.15 的均等性使其均值TypeRank 1


高类型的TypeRank 错误应进行更仔细的测试,因为此类错误可能会造成更大的灾难性后果。


这是根据TypeRank 指标得出的所有流行类型的结果:



在 JVM 代码库中TypeRank ,使用更精确的度量来搜索流行类型String 比在 Object 中流行。

3.字符串稳定

建议最流行的代码元素必须稳定,实际上任何更改都可能影响许多其他类型,让我们来看看是否是这种情况String,因为我们可以比较 2004 年 9 月 30 日发布的 JVM 5 和 JVM 7 的最新更新发布于 2013 年 10 月 15 日。

新增方法

以下是 9 年中添加的方法:


![图片 3](https://www.codeproject.com/KB/ja


《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享


va/695346/string3.png)


仅添加了 3 个构造函数和 5 个方法。

不推荐使用的方法


自 2004 年以来,仅弃用了一个构造函数。

4.设计字符串以优化内存使用率

String在 Java 中会受到特殊对待,因为它们在程序中经常使用。因此,效率(就计算和存储而言)至关重要。


有两种方法来构造一个string:通过分配string 文字或String 通过 new 运算符和构造函数显式创建对象的隐式构造。例如:


String s1 = "Hello"; // String literal


String s2 = new String("Hello"); // String object


Java 提供了一种用于保留String 文字的特殊机制,即所谓的string 公共池。如果两个string 文字的内容相同,则它们将在公共池中共享相同的存储。采用这种方法可以节省经常使用string的存储空间。另一方面,String 通过 new 运算符和构造函数创建的对象将保留在堆中。String 就像其他任何对象一样,堆中的每个对象都有自己的存储空间。即使两个String 对象具有相同的内容,也不会共享堆中的存储。

5.设计字符串以优化 CPU 使用率

我们可以列举两种 CPU 优化的情况:


  • 尽可能执行最少的代码:


让我们以该方法为例,这是其实现的第一行:


public String toLowerCase(Locale locale) {if (locale == null) {throw new NullPointerException();}……


locale ``NullPointerException 如果在方法主体的早期使用 JVM,则 JVM 会抛出 if 指针,null 并且显式抛出此异常的情况很少见。但是,许多方法String 使用这种技术来避免在异常情况下执行更多代码,这可能会最大程度地减少 CPU 使用率。


isEmpty


而不是


equals(“”): isEmpty


Java 6 中引入的,它比快


equals(“”)


,因为它只是将


string


存储在


String


对象中的对象的长度与零进行比较:


public boolean isEmpty() {return 0 == count;}


问题:当字符串需要频繁变化时,建议使用 StringBuilder ,为什么?


答:因为字符串对象是不可变对象,每当你对其进行改变时,底层是在创建新 string 对象,这极其影响性能,因此使用 Stringbuild 来减少对象的创建开销

最后

本人也收藏了一份 Java 面试核心知识点来应付面试,借着这次机会可以送给我的读者朋友们


目录:



Java 面试核心知识点


一共有 30 个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!



Java 面试核心知识点


已经有读者朋友靠着这一份 Java 面试知识点指导拿到不错的 offer 了



本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

用户头像

MySQL神话

关注

还未添加个人签名 2021.11.12 加入

还未添加个人简介

评论

发布
暂无评论
关于Java字符串的5个事实,java语言程序设计pdf百度云