Java 源码--Object
Object 是 Java 的基类,它的大部分方法都是 native 修饰的,标记方法是 Java 中的本地方法,一般是用 C/C++ 语言实现的。下面我们就来分析一下这个类。
registerNatives 方法将 C/C++ 种的方法映射到 Java 中的 native 方法,实现方法命名的解藕。此函数在类的静态代码块中,在类首次加载时执行。
Object 是 Java 的基类,它的大部分方法都是 native 修饰的,标记方法是 Java 中的本地方法,一般是用 C/C++ 语言实现的。下面我们就来分析一下这个类。
registerNatives 方法将 C/C++ 种的方法映射到 Java 中的 native 方法,实现方法命名的解藕。此函数在类的静态代码块中,在类首次加载时执行。
Java 对象是有生命周期的,当生命周期结束它就会被回收,但是可以通过将其转换为字节序列永久保存下来或者通过网络传输给另一方。
把对象转换为字节序列的过程称为对象的序列化;把字节序列恢复为对象的过程称为对象的反序列化。
抽象类 AbstractStringBuilder
实现了接口 Appendable
和 CharSequence
,接口 Appendable
中有三个重载的 append
方法,专门来处理字符串的添加操作。
StringBuffer
和 StringBuilder
的类关系图如下,可以看出,两者都继承了序列化接口 Serializable
,都实现了抽象类 AbstractStringBuilder
。
String
类被定义为 final,实现了 Serializable
、 Comparable
和 CharSequence
接口。
String
的值是 char
类型数组。
private final char value[]; |
乐观锁大多是基于数据版本记录机制实现,一般是给数据库表增加一个 "version" 字段。读取数据时,将此版本号一同读出,之后更新时,对此版本号加一。此时将提交数据的版本数据与数据库表对应记录的当前版本信息进行比对,如果提交的数据版本号大于数据库表当前版本号,则予以更新,否则认为是过期数据。
Mybatis 逆向生成工具可以自动生成数据库表对应的实体类、mapper 接口以及对应的 xml 文件。