Java7源码解读之string.pdf

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java7源码解读之string

Java7源码解读之string St ring表示字符串 ,Java中所有字符串的字面值都是St ring类的实例 ,例如“A BC”。字符串是 常量 ,在定义之后不能被改变 ,字符串 冲区支持可变的字符串。因为 St ring 对象是不可变的 , 所以可以共享它们。例如 : St ring st r = abc; 相当于 char dat a[] = {a, b, c} ; St ring st r = ne St ring(dat a); 这里还有一些其他使用字符串的例子 : Syst em.o ut .print ln(abc); St ring cde = cde; Syst em.o ut .print ln(abc + cde); St ring c = abc.subst ring(2,3); St ring d = cde.subst ring(1, 2); St ring类提供了检查字符序列中单个字符的方法 ,比如有比较字符串 ,搜索字符串 ,提取子 字符串 ,创建一个字符串的副本、字符串的大小写转换等。实例映射是基于Charact er类中指定 的Unicode标准的。Java语言提供了对字符串连接运算符的特别支持 (+ ),该符号也可用于将其 他类型转换成字符串。字符串的连接实际上是通过St ringBuf f er或者St ringBuilder的append()方法 来实现的 ,字符串的转换通过t o St ring方法实现 ,该方法由 O bject 类定义 ,并可被 Java 中的所 有类继承。 除非另有说明 ,传递一个空参数在这类构造函数或方法会导致NullPo int erExcept io n 异常被抛出。St ring表示一个字符串通过UT F- 16(unicode)格式 ,补充字符通过代理对 (参 见Charact er类的 Unicode Charact er Represent at io ns 获取更多的信息 )表示。索引值参考字符 编码单元 ,所以补充字符在St ring中占两个位置。 一、定义 public f inal class St ring implement s java.io .Serializable, Co mparable, CharSequence{} 从该类的声明中我们可以看出St ring是f inal类型的 ,表示该类不能被继承 ,同时该类实现了三 个接口 :java.io .Serializable、 Co mparable、 CharSequence 二、属性 privat e f inal char value[]; 这是一个字符数组 ,并且是f inal类型 ,他用于存储字符串内容 ,从f ianl这个关键字中我们可 更多精彩攻略访问 1 以看出 ,St ring的内容一旦被初始化了是不能被更改的。 虽然有这样的例子 : St ring s = “a”; s = “b” 但是 ,这并不是对s的修改 ,而是重新指向了新的字符串 , 从这里我们也能知道 ,St ring其实 就是用char[]实现的。 privat e int hash; 存字符串的hash Code ,默认值为 0 privat e st at ic f inal lo ng serialVersio nUID = -684 97944 70754 667710L; privat e st at ic f inal O bject St reamField[] serialPersist ent Fields = ne O bject St reamField[0]; 因为St ring实现了Serializable接口 ,所以支持序列化和反序列化支持。Java的序列化机制是 通过在运行时判断类的serialVersio nUID来验证版本一致性的。在进行反序列化时 ,JV M会把传来 的字节流中的serialVersio nUID与本地相应实体 (类 )的serialVersio nUID进行比较 ,如果相同就 认为是一致的 ,可以进行反序列化 ,否则就会出现序

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档