3.4k 3 分钟

Object 是 Java 的基类,它的大部分方法都是 native 修饰的,标记方法是 Java 中的本地方法,一般是用 C/C++ 语言实现的。下面我们就来分析一下这个类。

registerNatives 方法将 C/C++ 种的方法映射到 Java 中的 native 方法,实现方法命名的解藕。此函数在类的静态代码块中,在类首次加载时执行。

8.8k 8 分钟

# 序列化与反序列化

Java 对象是有生命周期的,当生命周期结束它就会被回收,但是可以通过将其转换为字节序列永久保存下来或者通过网络传输给另一方。

把对象转换为字节序列的过程称为对象的序列化;把字节序列恢复为对象的过程称为对象的反序列化。

6.1k 6 分钟

抽象类 AbstractStringBuilder 实现了接口 AppendableCharSequence ,接口 Appendable 中有三个重载的 append 方法,专门来处理字符串的添加操作。

651 1 分钟

博主最近需要从一个 JSON 中取出部分数据存到数据库表中,但是却遇到了 背包小鹏 这样的字符串。博主了解到,这是 HTML 字符实体编号,使用 Java 的第三方类 org.apache.commons.lang.StringEscapeUtils 就可以对其进行解码。

1.1k 1 分钟

# 题目描述

在数组中找到第 k 大的元素。

给出数组 [9,3,2,4,8] ,第三大的元素是 4

1.8k 2 分钟

String 类被定义为 final,实现了 SerializableComparableCharSequence 接口。

String 的值是 char 类型数组。

private final char value[];

877 1 分钟

# 题目描述

设计一个算法,找出只含素因子 235 的第 n 小的数。

符合条件的数如: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12...

我们可以认为 1 也是一个丑数。

1.3k 1 分钟

# 乐观锁

乐观锁大多是基于数据版本记录机制实现,一般是给数据库表增加一个 "version" 字段。读取数据时,将此版本号一同读出,之后更新时,对此版本号加一。此时将提交数据的版本数据与数据库表对应记录的当前版本信息进行比对,如果提交的数据版本号大于数据库表当前版本号,则予以更新,否则认为是过期数据。