上一页 1 2 3 4 5 6 7 ··· 9 下一页
摘要: 一、线程状态转换 一、线程状态转换 1.1 新建(New) 1.1 新建(New) 创建后尚未启动。 1.2 可运行(Runnable) 1.2 可运行(Runnable) 可能正在运行,也可能正在等待 CPU 时间片。 包含了操作系统线程状态中的 Running 和 Ready。 1.3 阻塞(B 阅读全文
posted @ 2018-09-10 00:01 深沉有点事 阅读(222) 评论(0) 推荐(0) 编辑
摘要: NIO 新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的,弥补了原来的 I/O 的不足,提供了高速的、面向块的 I/O。 1.1 流与块 1.1 流与块 I/O 与 NIO 最重要的区别是数据打包和传输的方式,I/O 以流的方式处理数据,而 NIO 以块的方式处理数据。 面向流的 I/O 阅读全文
posted @ 2018-09-09 23:53 深沉有点事 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 一、概览 一、概览 Java 的 I/O 大概可以分成以下几类: 磁盘操作:File 字节操作:InputStream 和 OutputStream 字符操作:Reader 和 Writer 对象操作:Serializable 网络操作:Socket 新的输入/输出:NIO 二、磁盘操作 二、磁盘操 阅读全文
posted @ 2018-09-09 23:44 深沉有点事 阅读(203) 评论(0) 推荐(0) 编辑
摘要: HashMap HashMap 为了便于理解,以下源码分析以 JDK 1.7 为主。 1. 存储结构 内部包含了一个 Entry 类型的数组 table。 2. 拉链法的工作原理 新建一个 HashMap,默认大小为 16; 插入 <K1,V1> 键值对,先计算 K1 的 hashCode 为 11 阅读全文
posted @ 2018-09-09 01:08 深沉有点事 阅读(495) 评论(2) 推荐(1) 编辑
摘要: 1.1 ArrayList 1.1 ArrayList 1. 概览 实现了 RandomAccess 接口,因此支持随机访问。这是理所当然的,因为 ArrayList 是基于数组实现的。 数组的默认大小为 10。 2. 扩容 添加元素时使用 ensureCapacityInternal() 方法来保 阅读全文
posted @ 2018-09-09 01:01 深沉有点事 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 一、概览 一、概览 容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。 1.1 Collection 1. Set TreeSet:基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。但是查找效率不 阅读全文
posted @ 2018-09-09 00:55 深沉有点事 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 一、 运行时数据区域 一、 运行时数据区域 1.1 程序计数器 记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法则为空)。 1.2 Java 虚拟机栈 每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,就对应着一 阅读全文
posted @ 2018-09-09 00:36 深沉有点事 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 垃圾收集算法 1. 标记 - 清除 将存活的对象进行标记,然后清理掉未被标记的对象。 不足: 标记和清除过程效率都不高; 会产生大量不连续的内存碎片,导致无法给大对象分配内存。 2. 标记 - 整理 让所有存活的对象都向一端移动,然后直接清理掉端边界以外的内存。 3. 复制 将内存划分为大小相等的两 阅读全文
posted @ 2018-09-09 00:30 深沉有点事 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 三、内存分配与回收策略 三、内存分配与回收策略 1.1 Minor GC 和 Full GC 1.1 Minor GC 和 Full GC Minor GC:发生在新生代上,因为新生代对象存活时间很短,因此 Minor GC 会频繁执行,执行的速度一般也会比较快。 Full GC:发生在老年代上,老 阅读全文
posted @ 2018-09-09 00:05 深沉有点事 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 类加载机制 类是在运行期间第一次使用时动态加载的,而不是编译时期一次性加载。因为如果在编译时期一次性加载,那么会占用很多的内存。 1.1 类的生命周期 包括以下 7 个阶段: 加载(Loading) 验证(Verification) 准备(Preparation) 解析(Resolution) 初始 阅读全文
posted @ 2018-09-08 23:50 深沉有点事 阅读(215) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 9 下一页