摘要:
BIO:线程发起 IO 请求,不管内核是否准备好 IO 操作,从发起请求起,线程一直阻塞,直到操作完成。 NIO:线程发起 IO 请求,立即返回;内核在做好 IO 操作的准备之后,通过调用注册的回调函数通知线程做 IO 操作,线程开始阻塞,直到操作完成。 AIO:线程发起 IO 请求,立即返回;内存 阅读全文
摘要:
按数据流向:输入流和输出流 输入和输出都是从程序的角度来说的。 输入流:数据流向程序 输出流:数据从程序流出。 按处理单位:字节流和字符流 字节流:一次读入或读出是8位二进制 字符流:一次读入或读出是16位二进制 JDK 中后缀是 Stream 是字节流;后缀是 Reader,Writer 是字符流 阅读全文
摘要:
List 以索引来存取元素,元素可重复 Set 不能存放重复元素 Map 保存键值对映射,映射关系可以一对一、多对一 List 有基于数组和链表实现两种方式 Set、Map 容器有基于哈希存储和红黑树两种方式实现 Set 基于 Map 实现,Set 里的元素值就是 Map 里 key 来一道刷了进B 阅读全文
摘要:
ArrayList 和 Vector 都是使用数组存储数据 允许直接按序号索引元素 插入元素涉及数组扩容、元素移动等内存操作 根据下标找元素快,存在扩容的情况下插入慢 Vector 对元素的操作,使用了 synchronized 方法,性能比 ArrayList 差 Vector 属于遗留容器,早期 阅读全文
摘要:
HashMap、LinkedHashMap Hashtable TreeMap IdentityHashMap 来一道刷了进BAT的面试题? 阅读全文
摘要:
编码过程中,我们会遇到各种问题。 借助搜索引擎,可以解决大部分问题,但总会遇到没法解决的坑,也许它会困扰几天或者更长时间。 要解决各种疑难杂症,成为高手,就要学会查一手资料。 什么是一手资料? 最直接的一手资料就是源代码,看懂了源码,一切问题迎刃而解 官方文档与译文(大部分官方文档都是英文的,需要我 阅读全文