JDK源代码之String类

本文详细解析了 Java 中 String 类的定义与特性,包括其实现序列化接口 Serializable、可比较接口 Comparable 和字符序列接口 CharSequence 的原理。探讨了序列化、自然排序及字符操作的相关概念与应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. String类的定义

    public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence

可以看到String类被final修饰,因此不能被继承。String类还实现了序列化接口Serializable、可比较的接口Comparable并指定范型为String,该接口必须要实现int compareTo(T o)   方法。最后还实现了字符序列CharSequence接口。如下图所示:

String类

(1)Serializable接口:

什么是序列化?

将对象的状态信息转换为可以存储或传输的形式的过程,在序列化期间,对象将其当前状态写入到临时存储区或持久性存储区,之后,便可以通过从存储区中读取或反序列化对象的状态信息,来重新创建该对象

什么情况下需要序列化?

a)当你想把的内存中的对象状态保存到一个文件中或者数据库中,以便可以在以后重新创建精确的副本;

b)当你想用套接字在网络上传送对象的时候(从一个应用程序域发送到另一个应用程序域中);

c)当你想通过RMI传输对象的时候;

 

(2)Comparable接口

此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo方法被称为它的自然比较方法 。实现此接口的对象列表(和数组)可以通过 Collections.sort(和 Arrays.sort )进行自动排序。实现此接口的对象可以用作有序映射表中的键或有序集合中的元素,无需指定比较器。 

需要实现的方法:int compareTo(T o)

比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。

PS:Java中实现对象的比较方法有两种:Comparable接口和Comparator接口

与上面的Comparable接口不同的是:

①、Comparator位于包java.util下,而Comparable位于包java.lang下。

②、Comparable接口将比较代码嵌入需要进行比较的类的自身代码中,而Comparator接口在一个独立的类中实现比较。

③、如果前期类的设计没有考虑到类的Compare问题而没有实现Comparable接口,后期可以通过Comparator接口来实现比较算法进行排序,并且为了使用不同的排序标准做准备,比如:升序、降序。

④、Comparable接口强制进行自然排序,而Comparator接口不强制进行自然排序,可以指定排序顺序。

 

(3)CharSequence接口

是一个字符 char 序列,实现了该接口的类:CharBuffer,String,StringBuffer(线程安全),StringBuilder(线程不安全)

方法:

charAt(int index),返回指定索引处的字符

toString(),   返回一个包含此序列中字符的字符串,该字符串与此序列的顺序相同。字符串的长度就是此序列的长度。

length(),  返回该字符序列的长度

subSequence(),  返回一个新的charsequence子序列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值