摘要: JDK 1.8 中 HashMap 的 hash 算法和寻址算法 HashMap 源码 hash() 方法 表示 h 是 key 对象的 hashCode 返回值; 是 h 右移 16 位,因为 int 是 4 字节,32 位,所以右移 16 位后变成:左边 16 个 0 + 右边原 h 的高 16 阅读全文
posted @ 2019-12-10 10:48 eycuii 阅读(4378) 评论(0) 推荐(0) 编辑
摘要: HTTP 是什么? HTTP 解决了什么?为什么出现? 假设只有 TCP,没有应用层: 客户端、服务器开发人员制定接口需要定好发送、接收数据的格式。比如服务器执行成功返回 1,执行失败返回 0 等。但是其他服务器的接口格式不一定就是这样,可能返回的执行结果是字符串。所以客户端针对每个系统的接口都需要 阅读全文
posted @ 2019-12-03 07:55 eycuii 阅读(421) 评论(0) 推荐(0) 编辑
摘要: TCP 为什么做三次握手、四次挥手? TCP 是为了解决可靠传输出现的。为了实现可靠性,TCP 做了流量控制、拥塞控制,并且在建立、关闭连接前做些机制:三次握手、四次挥手。 三次握手是为了让客户端、服务器在建立连接前能保证相互可以发送、接收报文; 四次挥手也一样,客户端、服务器保证相互都得知要关闭时 阅读全文
posted @ 2019-11-30 06:49 eycuii 阅读(527) 评论(0) 推荐(0) 编辑
摘要: 偏向锁 偏向 第一个 拿到锁的线程。 即第一个拿到锁的线程,锁会在对象头 Mark Word 中通过 CAS 记录该线程 ID ,该线程以后每次拿锁时都 不需要进行 CAS (指轻量级锁)。 如果该线程正在执行同步代码块时有其他线程在 竞争 (指其他线程尝试 CAS 让 Mark Word 设置自己 阅读全文
posted @ 2019-09-22 21:41 eycuii 阅读(2823) 评论(0) 推荐(0) 编辑
摘要: @sun.misc.Contended 介绍 @sun.misc.Contended 是 Java 8 新增的一个注解,对某字段加上该注解则表示该字段会单独占用一个 缓存行 (Cache Line)。 这里的缓存行是指 CPU 缓存(L1、L2、L3)的存储单元,常见的缓存行大小为 64 字节。 ( 阅读全文
posted @ 2019-09-15 23:48 eycuii 阅读(4063) 评论(0) 推荐(0) 编辑
摘要: "Understanding Java Memory Management IBM" Java Native Interface (JNI) Objects and Code Java Native Interface code can directly allocate native memory 阅读全文
posted @ 2019-09-08 14:40 eycuii 阅读(321) 评论(0) 推荐(0) 编辑
摘要: http://blog.jamesdbloom.com/JVMInternals.html (基于 Java 7) 阅读全文
posted @ 2019-09-08 12:23 eycuii 阅读(116) 评论(0) 推荐(0) 编辑
摘要: (Java 普通对象。不包括数组、Class 对象等。) ​ 对象创建过程 类加载 遇到 new 指令时,获取对应的符号引用,并检查该符号引用代表的类是否已被初始化。如果没有就进行类加载。 分配内存 从堆中找到一块空间划分给对象。 分配时,为了避免并发问题,JVM 会通过 CAS + TLAB 来保 阅读全文
posted @ 2019-09-06 19:47 eycuii 阅读(457) 评论(0) 推荐(0) 编辑
摘要: Class 常量池 Constant Pool 存在于编译生成的 Class 文件中。用于存在各种字面量、符号引用。 ​ 方法区 方法区在 JVM 启动时创建,里面包含运行时常量池、字符串常量池、静态变量、方法的代码等。 方法区是堆的 逻辑 组成部分,但其实现要看具体 JVM 是存放到哪的,而且也没 阅读全文
posted @ 2019-09-06 12:57 eycuii 阅读(410) 评论(0) 推荐(0) 编辑
摘要: switch 支持的类型 在 Java 语言规范里中,有说明 switch 支持的类型有:char、byte、short、int、Character、Byte、Short、Integer、String、enum。 ​ 为什么不支持 long ? 为什么只支持上面几种?int、String 都可以,为 阅读全文
posted @ 2019-09-06 09:07 eycuii 阅读(2671) 评论(1) 推荐(0) 编辑