2025-11-20 05:51:51
爱好者的话就是容器能不能多人同时用不卡死。比如Vector、List、Stack、Queue这些容器在多人用的时候不会出乱子,而HashMap、HashSet这些得加锁或者用特殊版本才安全。
爱好者再细说说为啥这样分。Vector和List是数组实现的,内部有扩容机制,JDK文档说并发修改会抛ConcurrentModificationException,所以得用同步块。Stack虽然用Vector,但Java官方不建议用,反而推荐Deque。Queue和ArrayDeque是线程安全的,像LinkedBlockingQueue这种阻塞队列自带锁,JDK8起并发处理效率比同步容器高30%以上。HashMap默认线程不安全,但ConcurrentHashMap用CAS+分片,性能比同步Map高5倍。比如用Vector存1000条数据,10个线程同时增删会崩溃,但换成ConcurrentHashMap增删10万条都没问题。
本题链接: