有赞一面

1. HashMap的数据结构可以说一下吗?默认的初始化容量是多少
答:其底层数据结构是一个数组+链表的形式。其中当链表长度超过8时,会自动转化成红黑树。默认初始容量是16
2. 那什么时候不会变成红黑树?
答:**HashMap中的数组长度小于64时,是会直接进行resize,而不会转成红黑树的**
3. 有没有线程安全的hashMap?
答:ConcurrentHashMap与HashTable是线程安全的,其中ConcurrentHashMap效率高于HashTable
4. concurrentHashMap最多能有几个线程进行并发?put方法实现过程?
答: 依赖于创建table数组的数量,因为JDK1.8相较于JDK1.7取消了分段锁;
5. Java的锁有了解过吗?可重入锁说一下?内部实现
答 可重入锁和读写; 可重入锁是指,线程可以重复获取某一锁; 首先先判断state状态,如果state状态为0,则使用CAS将state置1,否则判断获取该锁的线程是否是当前线程,来进行重入
6. JVM运行时区域有哪些?JMM了解吗
答Java堆、方法区、程序计数器、虚拟机栈;JMM定义了一个线程与主存之间的抽象关系,使得程序员不需要了解底层缓存的复杂性
7. 多个线程同时对一个int变量进行加1操作?如何保证int合法性
答使用synchronize锁,线程每次在读取该int变量时强制去共享内存读取,写入后刷新到共享内存
8. GC 与 垃圾回收器
答为了提高垃圾回收机制的策略,JAVA堆分为新生代与老年代。新生代主流标记复制,老年代;标记清除与标记整理。 垃圾回收器有新生代,Serial、ParNew、Parallel Scavenge;老年代有CMS、Serial Old、Parallel Old (这里不会)
9. 常用设计模式?观察者模式
10. Java线程的状态? 线程调用Thread.sleep()经历了什么过程?
答新建状态、就绪状态、运行中状态、阻塞状态、等待状态、结束状态?  线程首先进行阻塞,然后被计时器唤醒,进入就绪状态,然后再获得cpu资源后进行运行状态,最终进入结束状态
11. 线程池参数介绍?介绍下参数如何工作?拒绝策略有哪些?
12. !!!Spring IOC底层存储结构  不会
13  Spring Controller 中 @RequestMapping 如何实现映射 不会
14. Spring 中 @Configuration 有什么用 不会
15. Spring中 Bean的生命周期 不会
16. Mysql中B+树索引介绍
17. Innodb中定义一个联合索引(a,b,c)    select *** from  table where a=x and c=x 是否需要回表
18. Redis的哨兵机制说一说  忘了。。。
19. 分布锁说一说
20.智力题   A点有1000吨煤,一辆卡车从A出发到B点 (A与B相距500),每开一公里会浪费一吨煤  (最多装500吨)。最多能运多少吨煤到B点

补充:负载均衡的算法有哪些? 在nginx上是如何使用的
#有赞##面经##校招##Java工程师#
全部评论
老哥,地平线到有赞,让我看到了今年有多难
点赞 回复 分享
发布于 2019-08-28 21:43
关于HashMap链表转红黑树的阈值有个问题,到底是大于8还是大于等于8 putVal方法中 if (binCount >= TREEIFY_THRESHOLD - 1) // -1 for 1st treeifyBin(tab, hash); static final int TREEIFY_THRESHOLD = 8;
点赞 回复 分享
发布于 2019-08-31 23:34
智力题求解
点赞 回复 分享
发布于 2019-08-28 21:30
老铁是什么岗位
点赞 回复 分享
发布于 2019-08-28 21:31
当hashmap的表长度小于64,就算冲突那条超过8也不会变成红黑树,直接resize
点赞 回复 分享
发布于 2019-08-28 21:38
地平线不能转正吗大佬
点赞 回复 分享
发布于 2019-08-28 22:40
还行
点赞 回复 分享
发布于 2019-08-28 23:25
这面经 挺基础的
点赞 回复 分享
发布于 2019-08-28 23:30
请问楼主是秋招正式批吗?
点赞 回复 分享
发布于 2019-08-29 10:28

相关推荐

vegetable_more_exercise:1-1.5万,没错啊,最少是1人民币,在区间内
点赞 评论 收藏
分享
评论
2
72
分享
牛客网
牛客企业服务