JDK源码学习系列01----String

本文是JDK源码学习系列的第一部分,专注于java.lang.String类。文章介绍了String的成员变量、构造函数和常用方法,如charAt、replace、compareToIgnoreCase和valueOf。作者通过源码分析强调了编程习惯和代码重用的重要性,并探讨了方法的设计思想。
摘要由CSDN通过智能技术生成

                                                 JDK源码学习系列01----String

写在最前面:

      这是我JDK源码学习系列的第一篇博文,我知道源码学习这条路很难坚持,但是我始终相信,不积跬步无以至千里。当然啦,兴趣和方法可以让这条路变得很是happy。初步计划是每天早上晨会前看一个类的源码,因为还在实习初期,所以任务不是那么滴繁重,更何况,时间就像那个,挤挤总是有的嘛~~晚上回来写写博文,一是加深理解二来也加深记忆方便以后查阅。学习的步骤当然是先从自己已经用的非常熟练的类入手。

     期待这一路的繁花盛景,哈哈~~~


java.lang.String

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence
String 是静态类,不可以被继承,可以被序列化,实现了Comparable接口

1.成员变量

private final char value[];
    private final char value[];
    private final int offset;//偏移量
    private final int count;
    private int hash; 
String是以字符数组的形式实现的,变量定义为final,说明String一旦初始化后就不可变,这也是与StringBuffer的最大区别。

2.构造函数

3.常用方法

   1.char charAt(int index) 

    源码很简单,注意参数的判断,养成编程的好习惯,注意细节。

public char charAt(int index) {
        if ((index < 0) || (index >= count)) {//养成好习惯,参数的判断!
            throw new StringIndexOutOfBoundsException(index);
        }
        return value[index + offset];
    }
  2.boolean equals(Object anObject)

   原本传入的参数是object型,惭愧自己平时连这个都没有注意,因为源码中已经对问题进行了处理。个人绝对源码中的while(n--!=0)以及if(v1[i++]!=v2[j++])写的很好啊,让总是for的我掩面而过啊~~学习源码的编程风格~

public boolean equals(Object anObject) {
	if (this == anObject) { 
	    return true;
	}
	if (anObject instance
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值