摘要:
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
深沉有点事
阅读(250)
评论(0)
推荐(0)
摘要:
一、概览 一、概览 Java 的 I/O 大概可以分成以下几类: 磁盘操作:File 字节操作:InputStream 和 OutputStream 字符操作:Reader 和 Writer 对象操作:Serializable 网络操作:Socket 新的输入/输出:NIO 二、磁盘操作 二、磁盘操 阅读全文
posted @ 2018-09-09 23:44
深沉有点事
阅读(215)
评论(0)
推荐(0)
摘要:
HashMap HashMap 为了便于理解,以下源码分析以 JDK 1.7 为主。 1. 存储结构 内部包含了一个 Entry 类型的数组 table。 2. 拉链法的工作原理 新建一个 HashMap,默认大小为 16; 插入 <K1,V1> 键值对,先计算 K1 的 hashCode 为 11 阅读全文
posted @ 2018-09-09 01:08
深沉有点事
阅读(509)
评论(2)
推荐(1)
摘要:
1.1 ArrayList 1.1 ArrayList 1. 概览 实现了 RandomAccess 接口,因此支持随机访问。这是理所当然的,因为 ArrayList 是基于数组实现的。 数组的默认大小为 10。 2. 扩容 添加元素时使用 ensureCapacityInternal() 方法来保 阅读全文
posted @ 2018-09-09 01:01
深沉有点事
阅读(174)
评论(0)
推荐(0)
摘要:
一、概览 一、概览 容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。 1.1 Collection 1. Set TreeSet:基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。但是查找效率不 阅读全文
posted @ 2018-09-09 00:55
深沉有点事
阅读(110)
评论(0)
推荐(0)
摘要:
一、 运行时数据区域 一、 运行时数据区域 1.1 程序计数器 记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法则为空)。 1.2 Java 虚拟机栈 每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,就对应着一 阅读全文
posted @ 2018-09-09 00:36
深沉有点事
阅读(144)
评论(0)
推荐(0)
摘要:
垃圾收集算法 1. 标记 - 清除 将存活的对象进行标记,然后清理掉未被标记的对象。 不足: 标记和清除过程效率都不高; 会产生大量不连续的内存碎片,导致无法给大对象分配内存。 2. 标记 - 整理 让所有存活的对象都向一端移动,然后直接清理掉端边界以外的内存。 3. 复制 将内存划分为大小相等的两 阅读全文
posted @ 2018-09-09 00:30
深沉有点事
阅读(156)
评论(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
深沉有点事
阅读(148)
评论(0)
推荐(0)

浙公网安备 33010602011771号