From 13c13a0044d1dbc0da42b8ab9a5ea3dae5a23597 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=B3=E9=98=B3?= <260893248@qq.com> Date: Sat, 6 Jun 2020 20:14:36 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=80=E5=A4=84typo?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AA=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复一处typo,增加一个链接 --- .../Class 文件格式总览.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blogs/JVM/深入理解 Class 文件格式/Class 文件格式总览.md b/blogs/JVM/深入理解 Class 文件格式/Class 文件格式总览.md index 58af261..b268858 100644 --- a/blogs/JVM/深入理解 Class 文件格式/Class 文件格式总览.md +++ b/blogs/JVM/深入理解 Class 文件格式/Class 文件格式总览.md @@ -29,9 +29,9 @@ ClassFile{ 首先说明的是,以上的 u2 代表这个域长度为 2 个字节,u4 即代表 4 个字节。 -1. 根据规范,Class 文件前八个字节依次是 magic 魔数(取值必须是 0xCAFEBABE)、minor_version(次版本信息)和 major_version(主版本信息)。 +1. 根据[规范](https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.1),Class 文件前八个字节依次是 magic 魔数(取值必须是 0xCAFEBABE)、minor_version(次版本信息)和 major_version(主版本信息)。 2. constant_pool_count 表示常量池数组中元素的个数,而 constant_pool 是一个存储 cp_info 的数组。每一个 Class 文件都包含一个常量池。注意,cp 数组的索引从 1 开始。 -3. access_flages,标明该类的访问权限,比如 public、private 之类的信息。 +3. access_flags,标明该类的访问权限,比如 public、private 之类的信息。 4. this_class 和 super_class,存储的是指向常量池数组元素的索引。通过这两个索引可以知道当前类的类名以及父类名,只是类名,但不包含包名。 5. interfaces_count 和 interfaces,这两个成员表示该类实现了多少个接口以及接口类的类名。和 this_class 一样,这两个成员也只是常量池数组里的索引号。真正的信息需要通过解析常量池的内容才能得到。 6. fields_count 和 fields 包含了成员变量的数量以及它们的信息,成员变量信息由 field_info 结构体表示。 From ff61d2a7886f07265edac5aa28c180aa3ba42530 Mon Sep 17 00:00:00 2001 From: Omooo <869759698@qq.com> Date: Wed, 10 Jun 2020 07:42:28 +0800 Subject: [PATCH 2/2] =?UTF-8?q?Update=20=E9=9B=86=E5=90=88=E6=BA=90?= =?UTF-8?q?=E7=A0=81.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blogs/Java/口水话/集合源码.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blogs/Java/口水话/集合源码.md b/blogs/Java/口水话/集合源码.md index 928b416..1ef201b 100644 --- a/blogs/Java/口水话/集合源码.md +++ b/blogs/Java/口水话/集合源码.md @@ -62,7 +62,7 @@ HashMap 非线程安全,如果需要满足线程安全,可以用 Collections 首先这个 Hashtable 的命名就有点离谱,没有遵循驼峰命名法。它的实现是通过一个 Entry 数组来做的,put/remove/get 都加了 synchronized,是线程安全的,它的取 index 是 (hash & 0x7FFFFFFF) % tab.length,前面和 0x7FFFFFF 是为了让 hash 值变为正数,那你可能会问,为啥不用 Math.abs 呢,其实在数值溢出时,abs 也是可能会得到负值的;HashMap 的可以只有一个 key 为 null,多个 value 为 null 的,而 Hashtable 是不允许 key/value 为 null 的,不然直接抛空指针。 -Hashtable 在扩容时,是 x2 + 1 的。 +Hashtable 在扩容时,是 x2 + 1 的。Hashtable 在处理 hash冲突时,是插入到链表的头部,即头插法。 #### TreeMap