zoukankan      html  css  js  c++  java
  • java源码分析-String

    重要指数:满星,慢慢品。

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

    首先类的声明

    没有显式继承 Object  ,但是jvm在加载类的时候发现没有父类,自动引入Object 父类。

    final   不能继承 (方法种没有set方法)

    java.io.Serializable   这篇博客写的很好 https://blog.csdn.net/dreamtdp/article/details/15378329 

    至于如何实现的后面有机会再说。至于为什么String实现序列化呢,,我想基本类型对应的几个类应该都会继承(其他还没看),因为你要序列化一个自定义类,类中的变量是String,Integer,,所以,,,

    Comparable<T> 泛型实现,,后面会单独写泛型的,就是为了实现compareTo<String>

    CharSequence  接口,,,应该是响应 抽象 的特征 ,,作为String  StringBuilder  StringBuffer的共同抽象体。顾名思义这三个都是 基于字符数组的。

    成员变量

    private final char value[];//数据仓库

    private int hash; //数据hash

    private static final long serialVersionUID = -6849794470754667710L;//序列化的

    private static final ObjectStreamField[] serialPersistentFields = new ObjectStreamField[0];//应该是序列化相关的,

    方法

    前四个没啥说的,,特殊点就是  用到了 Arrays.copyOf(value, value.length);   Arrays.copyOfRange(value, offset, offset+count); 平常写代码可以多用,

     

    看下这个,入参是 int[] codePoints,,关于codePoint 引入了  java使用utf-16编码的,,https://www.cnblogs.com/simple-huang/p/8643799.html

    其他都是为了方便使用者,大牛们封装的方法。

    值得深究的是 format  可单独详细说明一下。

    format 中涉及到的Local一般出问题的时候才会想到这个。

  • 相关阅读:
    判断qq浏览器和uc浏览器?
    做前端能避免的错误总结
    css布局
    border-radius后面写px/rem与百分比有什么区别?
    vertical-align
    localstorage和cookie的设置方法和获取方法
    怎么让列表的文字只显示两行,多出的出现省略号?
    avalon在公共页面里面写的功能,怎么让某些页面不引用到这个方法和html?
    小程序
    webpack
  • 原文地址:https://www.cnblogs.com/haerwang/p/9957973.html
Copyright © 2011-2022 走看看