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类源码整篇解读一下
 
 
类修饰符及接口实现
 
首先介绍下标记中每个关键字或接口出现在此处的意义
  1. public:
    1. Java语言中访问限制最宽的修饰符,一般称之为"公共的"被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问.
  2. final(final关键字可以用来修饰引用、方法和类)
    1. 修饰引用
      1. 如果引用为基本数据类型,则该引用为常量,该值无法修改;
      2. 如果引用为引用数据类型,比如对象,数组,则该对象或数组本身可以修改,但指向该对象或数组的地址的引用不能修改;(栈中地址不可变)
      3. 如果引用时类的成员变量,需要在创建对象前进行赋值,否在在编译阶段就会报错.
    2. 修饰方法
      1. 当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写,但该方法仍然可以被继承.
    3. 修饰类
      1. 当用final修改类时,该类成为最终类,无法被继承.即:不可派生类
  3. java.io.Serializable
    1. 接口是一个标志性接口,在接口内部没有定义任何属性与方法.只是用于标识此接口的实现类可以被序列化与反序列化,在后期我们讲到时,会详细讲一下这个接口
  4. java.lang.Comparable
    1. 强行对实现它的每个类的对象进行整体排序,这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法,在后期我们讲到时,会详细讲一下这个接口
  5. java.lang.CharSequence
    1. 字符序列,是一个描述字符串结构的接口,此接口对多种不同的char访问的统一接口,CharSequence和String都可以定义字符串,但是String定义的字符串只能读,CharSequence定义的字符串是可读可写的
 
综上所述,总结下:
    
  • String 类不可被继承
  • String 类可在任意代码中使用
  • String 类对象创建后不能修改
  • String 类可针对两个字符串进行比较
 
 
 
 
 
 
 
您还没有登录,请先 登录或者 注册后,添加评论