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一般出问题的时候才会想到这个。

  • 相关阅读:
    codeforces689A
    codeforces222A
    codeforces553A
    2021牛客国庆集训派对day6 J
    SVM--支持向量机
    压缩感知
    范数
    LeNet详解
    卷积神经网络(CNN)详解
    BP算法实例—鸢尾花的分类(Python)
  • 原文地址:https://www.cnblogs.com/haerwang/p/9957973.html
Copyright © 2011-2022 走看看