一、Java集合
- HashMap的内部结构,扩容、为什么是2的幂次方:https://www.cnblogs.com/chengxiao/p/6059914.html
- HashMap的实现原理:http://www.importnew.com/27043.html
- HashMap解决Hash冲突的方式:链表法:https://blog.csdn.net/xie_xiansheng/article/details/71747346
- HashMap在高并发下如果没有处理线程安全会有怎样的安全隐患,具体表现是什么:https://www.cnblogs.com/androidsuperman/p/9008243.html
- ConcurrentHashMap实现原理 :https://www.cnblogs.com/study-everyday/p/6430462.html:https://www.cnblogs.com/chengxiao/p/6842045.html
- HashMap,HashTable,ConcurrentHashMap的区别:https://www.cnblogs.com/heyonggang/p/9112731.html
- List 、 Set、Map 的区别:https://www.cnblogs.com/IvesHe/p/6108933.html
- List、Set 和 Map 的初始容量和加载因子:
- ArrayList 的初始容量是 10;加载因子为 0.5; 扩容增量:原容量的 0.5 倍 +1;一次扩容后长度为 16。
- Vector 初始容量为 10,加载因子是 1。扩容增量:原容量的 1 倍,如 Vector 的容量为 10,一次扩容后是容量为 20。
- HashSet,初始容量为 16,加载因子为 0.75; 扩容增量:原容量的 1 倍; 如 HashSet 的容量为 16,一次扩容后容量为 32。
- HashMap,初始容量 16,加载因子为 0.75; 扩容增量:原容量的 1 倍; 如 HashMap 的容量为 16,一次扩容后容量为 32
- Comparable 接口和 Comparator区别:https://www.cnblogs.com/szlbm/p/5504634.html
- Java中的队列:https://www.cnblogs.com/lemon-flm/p/7877898.html
- LinkedHashMap:https://www.cnblogs.com/xiaoxi/p/6170590.html
- 哪些集合类是线程安全的?:Vector:就比Arraylist多了个同步化机制(线程安全)。Hashtable:就比Hashmap多了个线程安全。ConcurrentHashMap:是一种高效但是线程安全的集合。Stack:栈,也是线程安全的,继承于Vector。
- 迭代器 Iterator:https://www.cnblogs.com/xujian2014/p/5846128.html
- Iterator和ListIterator的区别:https://www.cnblogs.com/tjudzj/p/4459443.html
- 怎么确保一个集合不能被修改:https://blog.csdn.net/timchen525/article/details/80517517
- 1
-
二、JavaIO
- Java IO体系及常用类:https://www.cnblogs.com/fysola/p/6123947.html
- 什么时候使用字节流、什么时候使用字符流:https://blog.csdn.net/wangyunpeng0319/article/details/72853592
- 同步阻塞、同步非阻塞、异步阻塞、异步非阻塞(Java目前还没有实现异步非阻塞方式):https://blog.csdn.net/caiwenfeng_for_23/article/details/8458299
- java BIO/NIO/AIO 学习:https://blog.csdn.net/u013851082/article/details/53942947/
- BIO/NIO/AIO:http://blog.sina.com.cn/s/blog_aed82f6f010194ky.html
- String 编码UTF-8 和GBK的区别:https://www.cnblogs.com/sidianshui/p/3993859.html
- 递归读取文件夹下的文件,代码怎么实现:https://blog.csdn.net/qq_27093465/article/details/52461989
- Java io使用的设计模式(装饰模式和适配器模式):https://www.cnblogs.com/wxgblogs/p/5649933.html
- 两种高能的IO设计模式(reactor和proactor模式):https://blog.csdn.net/caiwenfeng_for_23/article/details/8458299
- 2
三、Java IO值得注意的事项
1、总结IO应用场景
- FileInputStream/FileOutputStream 需要逐个字节处理原始二进制流的时候使用,效率低下
- FileReader/FileWriter 需要组个字符处理的时候使用
- StringReader/StringWriter 需要处理字符串的时候,可以将字符串保存为字符数组
- PrintStream/PrintWriter 用来包装FileOutputStream 对象,方便直接将String字符串写入文件
- Scanner 用来包装System.in流,很方便地将输入的String字符串转换成需要的数据类型
- InputStreamReader/OutputStreamReader , 字节和字符的转换桥梁,在网络通信或者处理键盘输入的时候用
- BufferedReader/BufferedWriter , BufferedInputStream/BufferedOutputStream , 缓冲流用来包装字节流后者字符流,提升IO性能,BufferedReader还可以方便地读取一行,简化编程。
四、
11
1