zzh

zzh

Java equals

我们这里主要介绍 java8 版本前的 String.equals 函数
源码如下所示:
image
非常简单,首先判断两个字符串对象的地址是否相同,相同就返回 true;其次,由于 java 8 中使用 char [] 数组存储串值,因此会依次取出对应的 char 值并判断是否相同。

注意

在 Java 8 及之前的版本中,字符串内部使用 char 数组来存储字符数据,并使用额外的 int 型字段记录字符串的偏移量和长度。这种表示方式在包含大量 ASCII 字符的字符串中会造成空间浪费,因为每个字符仍然占用 2 个字节的存储空间。
Java 9 引入了 Compact Strings 的概念,对于仅包含 Latin-1 字符集(即 Unicode 编码范围在 U+0000 至 U+00FF 之间)的字符串,使用字节数组存储数据,每个字符只占用 1 个字节。这样可以大大减少这类字符串的内存占用。对于包含非 Latin-1 字符的字符串,仍然使用 char 数组存储数据,每个字符占用 2 个字节。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。