如何查看源代码及一些代码的解释

如何查看源代码及一些代码的解释

前言

今天学姐教我们有关如何查看源代码的基本知识,我受益匪浅,接下来请允许我做一个陈述。

如何查看源代码

首先,打开你的IDEA,点击上方的“文件”,选择“项目结构”,点击“SDK”,你可以看到这些文件的具体路径。那么根据这些路径找到这些文件,再用IDEA打开。

还有一种,你可以在你安装IDEA的文件夹内,找到名为“lib”的文件夹,打开后即可看到名为“src.zip”的压缩包,可以将其解压,会出现名为“src”的文件夹,将其用IDEA打开,即可看到源代码。

一些代码的解释

有关源代码的解释,我的理解能力尚且不足,因此我只在能力范围内,尽量将其列举出来,仅供参考,还有一些是搜索后加上我的个人语言糅杂而成,如有错误,还请指出并谅解。(有些我其实闻所未闻,都是从其他大佬处照抄下来的,但好歹也能增长我的知识量)

public final class String

implements java.io.Serializable, Comparable, CharSequence,

Constable, ConstantDesc {

[String 类表示字符串。 Java 程序中的所有字符串文字,例如“abc”,都是作为此类的实例实现的。字符串是常量;它们的值在创建后无法更改。字符串缓冲区支持可变字符串。因为 String 对象是不可变的,所以它们可以被共享。]

final决定了String类是不可继承的且对象是不可变的

实现了java.io.Serializable、Comparable和CharSequence共3个接口

String实现了序列化的接口Serializable,也就是说String是支持序列化和反序列化的。

Comparable这个接口只有一个compareTo(T 0)接口,用于对两个实例化对象比较大小。

CharSequence这个接口是一个只读的字符序列。包括length(), charAt(int index), subSequence(int start, int end)这几个API接口,值得一提的是,StringBuffer和StringBuild也是实现了改接口。

@Stable

private final byte[] value;

[该值用来字符串存储]

是final修饰的数组,说明在创建后就不可更改

(以前是char[]型的,现在则用byte数组存储数据)

private final byte coder;

[用于对值中的字节进行编码的编码标识符。此实现中支持的值为 LATIN1 UTF16]

因为使用byte数组来存储数据,所以需要指定字符串的编码

private int hash;

[缓存字符串的哈希码]

private boolean hashIsZero;

[如果哈希值被计算为实际上为零,则缓存,使我们能够避免重新计算它。]

public String(char[] value, int offset, int count) {

this(value, offset, count, rangeCheck(value, offset, count));

}

[分配一个新字符串,该字符串包含来自字符数组参数的子数组的字符。 offset 参数是子数组第一个字符的索引,count 参数指定子数组的长度。子数组的内容被复制;随后对字符数组的修改不会影响新创建的字符串。]

String的一个构造方法

rangeCheck就是检查了一下越界的问题

String类的源码有些多,也有些难(至少对于我这个层次来说),因此我仅列举以上几个,更多的我还要去更深入的看看。

此博文到此结束,谢谢。

相关推荐

处方类型及处方内容具体分别包括哪些?
365bet注册送钱

处方类型及处方内容具体分别包括哪些?

📅 07-03 👁️ 3764
苹果公司9月10日发布新款iPhone,并对可穿戴设备进行重大升级
下载旧版本彩票365软件

苹果公司9月10日发布新款iPhone,并对可穿戴设备进行重大升级

📅 07-01 👁️ 9947