关于 Java 字符串的 5 个事实,java 语言程序设计 pdf 百度云
让我们使用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 了
评论