面试题-Java集合、IO

一、Java集合

  1. HashMap的内部结构,扩容、为什么是2的幂次方:https://www.cnblogs.com/chengxiao/p/6059914.html 
  2. HashMap的实现原理:http://www.importnew.com/27043.html
  3. HashMap解决Hash冲突的方式:链表法:https://blog.csdn.net/xie_xiansheng/article/details/71747346
  4. HashMap在高并发下如果没有处理线程安全会有怎样的安全隐患,具体表现是什么:https://www.cnblogs.com/androidsuperman/p/9008243.html
  5. ConcurrentHashMap实现原理 :https://www.cnblogs.com/study-everyday/p/6430462.htmlhttps://www.cnblogs.com/chengxiao/p/6842045.html
  6. HashMap,HashTable,ConcurrentHashMap的区别:https://www.cnblogs.com/heyonggang/p/9112731.html
  7. List 、 Set、Map 的区别:https://www.cnblogs.com/IvesHe/p/6108933.html
  8. List、Set 和 Map 的初始容量和加载因子:
  9. ArrayList 的初始容量是 10;加载因子为 0.5; 扩容增量:原容量的 0.5 倍 +1;一次扩容后长度为 16。
  10. Vector 初始容量为 10,加载因子是 1。扩容增量:原容量的 1 倍,如 Vector 的容量为 10,一次扩容后是容量为 20。
  11. HashSet,初始容量为 16,加载因子为 0.75; 扩容增量:原容量的 1 倍; 如 HashSet 的容量为 16,一次扩容后容量为 32。
  12. HashMap,初始容量 16,加载因子为 0.75; 扩容增量:原容量的 1 倍; 如 HashMap 的容量为 16,一次扩容后容量为 32
  13. Comparable 接口和 Comparator区别:https://www.cnblogs.com/szlbm/p/5504634.html
  14. Java中的队列:https://www.cnblogs.com/lemon-flm/p/7877898.html
  15. LinkedHashMap:https://www.cnblogs.com/xiaoxi/p/6170590.html
  16. 哪些集合类是线程安全的?:Vector:就比Arraylist多了个同步化机制(线程安全)。Hashtable:就比Hashmap多了个线程安全。ConcurrentHashMap:是一种高效但是线程安全的集合。Stack:栈,也是线程安全的,继承于Vector。
  17. 迭代器 Iterator:https://www.cnblogs.com/xujian2014/p/5846128.html
  18. Iterator和ListIterator的区别:https://www.cnblogs.com/tjudzj/p/4459443.html
  19. 怎么确保一个集合不能被修改:https://blog.csdn.net/timchen525/article/details/80517517
  20. 1
  21.  

二、JavaIO

  1. Java IO体系及常用类:https://www.cnblogs.com/fysola/p/6123947.html
  2. 什么时候使用字节流、什么时候使用字符流https://blog.csdn.net/wangyunpeng0319/article/details/72853592
  3. 同步阻塞、同步非阻塞、异步阻塞、异步非阻塞(Java目前还没有实现异步非阻塞方式):https://blog.csdn.net/caiwenfeng_for_23/article/details/8458299
  4. java BIO/NIO/AIO 学习https://blog.csdn.net/u013851082/article/details/53942947/
  5. BIO/NIO/AIO:http://blog.sina.com.cn/s/blog_aed82f6f010194ky.html
  6. String 编码UTF-8 和GBK的区别:https://www.cnblogs.com/sidianshui/p/3993859.html
  7. 递归读取文件夹下的文件,代码怎么实现:https://blog.csdn.net/qq_27093465/article/details/52461989
  8. Java io使用的设计模式(装饰模式和适配器模式):https://www.cnblogs.com/wxgblogs/p/5649933.html
  9. 两种高能的IO设计模式(reactor和proactor模式):https://blog.csdn.net/caiwenfeng_for_23/article/details/8458299
  10. 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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值