我相信很多人后很多人都面临着跳槽找工作之路,我也不例外。下面我就一起和大家一起看下JAVA面试的时候会问到的问题。
-
谈谈你在工作中用到的java集合以及他们的应用
大家在工作中大多数就是存储对象ArrayList, 有时候封装参数的时候就是HashMap(尤其是在对象第三方接口的时候,存储传递的参数),存储没有重复的对象用HashSet(比如你要统计那些人下了订单, 这时候从数据查询出来的可能就会出现,一个人下多次订单的。这时候就需要用Set结合),先进后出用Stock(一般用到算法里面),排队用Queue(这个可能就会经常用了,在高并发的时候,存储对象),排序用Collections(java集合排序吧)等。
-
你用过java.util.concurrent里面的哪些类以及应用
ReentrantLock : 这个是锁,它有重要的2个方法。lock和unlock,在多线程环境下可以起到控制。
ArrayBlockQueue: 阻塞队列,在生产者-消费者环境中用到。
Executor: 线程池,它可以控制启动多个线程。
java.util.concurrent.atomic包下面: 各数据类型原子性操作。 -
Set是如何实现插入的不重复的key值的
hashCode()和equals的重载,保证每个key对象的唯一性。
-
哪些集合是线程完全的, 哪些集合又不是线程安全的
- 线程安全
- vector
- hashtable
- stock
- enumeration
非线程安全: 集合中不包含在线程安全之内的。
- 线程安全
-
HashMap的工作原理是什么
采用数组 + 链表的形式实现。
各个相似框架的区别