有个朋友去参加百度Java开发工程师,以下题目是一面面试题,供大家参考,个人觉得还是有一定难度的,如果这些问题大家都能流畅回答出来,进大厂应该是没有什么问题了。
-
C++、Java和Python,有什么区别?
-
Java里面有哪些框架?
-
讲一下String、StringBuffer和StringBuilder?
-
有了解哪些集合类型?
-
ArrayList和LinkedList有区别吗?
-
对于元素的查找呢?哪个时间复杂度更低呢?
-
简单说一下HashMap的存储结构吗?
-
红黑树什么时候转换为链表?
-
HashMap红黑树和链表转换,为什么一个是8,一个是6?
-
简单说一下HashMap的get过程?
-
HashMap的get如果查找的地方有链表,不会有了解过红黑树吗?
-
还知道其他地方用到红黑树?
-
有去了解过哪些map是有序的吗?
-
有了解过线程安全吗?
-
有哪些线程安全的集合?
-
ConcurrentHashMap如何实现线程安全?
-
ConcurrentHashMap锁的大小如何设计?
-
有去实现过多线程吗?
-
简单说一下线程的状态?
-
创建线程的方式?
-
Thread和Runnable的区别?
-
有了解线程池吗?简单介绍一下创建线程池的参数?
-
如果初始化核心线程池是5,最大是10,阻塞是4,简单介绍线程的提交过程?
-
如果线程数目达到最大线程,线程池里面的线程什么时候会被销毁呢?如果很长时间都没有线程进来,那线程池的线程数目会变成0吗?
-
还有去了解其他的线程池吗?
-
几种线程池的底层实现?