程序猿食堂 发表于 2021-8-24 21:46:55

JDK8源码解析-String-修饰符及接口实现(一)

源码解析基于jdk1.8.0_261进行分析


前言
String类是java出山时,就带出来的兄弟,在1.0版本,就有String类的出现,但并没有如今的Api丰富,从jdk1.0(1996)到jdk1.8(2016)用了18年的时间,廉颇虽老尚能战也
String是Java语言的核心类,位于rt.jar下java.lang包中,它提供了字符串的比力、查找、截取、大小写转换等操纵;Java语言为"+"连接符(字符串连接符)以及对象转换为字符串提供了特殊的支持,字符串对象可以使用”+"连接其他对象
如果饶有爱好的读者,可以看下String类注释,讲述了String的使用方式及它的作用,这里我们只讲源码.下面我们对String类源码整篇解读一下
类修饰符及接口实现
首先介绍下标记中每个关键字或接口出如今此处的意义
public:Java语言中访问限制最宽的修饰符,一般称之为"公共的"被其修饰的类、属性以及方法不但可以跨类访问,而且允许跨包(package)访问.
final 如果引用为基本数据范例,则该引用为常量,该值无法修改;
final 如果引用为引用数据范例,比如对象,数组,则该对象或数组本身可以修改,但指向该对象或数组的地点的引用不能修改;(栈中地点不可变)
final 如果引用时类的成员变量,需要在创建对象前进行赋值,否则在编译阶段就会报错.
final 修饰方法:当使用final修饰方法时,这个方法将成为终极方法,无法被子类重写,但该方法仍然可以被继承.
final 修饰类:当用final修改类时,该类成为终极类,无法被继承.即:不可派生类
java.io.Serializable:接口是一个标志性接口,在接口内部没有定义任何属性与方法.只是用于标识此接口的实现类可以被序列化与反序列化,在后期我们讲到时,会详细讲一下这个接口
java.lang.Comparable:强行对实现它的每个类的对象进行整体排序,这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比力方法,在后期我们讲到时,会详细讲一下这个接口
java.lang.CharSequence:字符序列,是一个形貌字符串结构的接口,此接口对多种不同的char访问的统一接口,CharSequence和String都可以定义字符串,但是String定义的字符串只能读,CharSequence定义的字符串是可读可写的
综上所述,总结下:

[*]String 类不可被继承
[*]String 类可在任意代码中使用
[*]String 类对象创建后不能修改
[*]String 类可针对两个字符串进行比力
https://p26.toutiaoimg.com/large/pgc-image/c2b76cc270d64eec8ef0ba11e4eb666b


更多好文请看:IBO-JDK8源码解析-String 类(一)

富马2 发表于 2021-8-25 06:25:59

转发了
页: [1]
查看完整版本: JDK8源码解析-String-修饰符及接口实现(一)