云从科技社招Java面试经历分享

1、自我介绍

2、介绍第二个项目,项目使用了哪些框架?

3、发送的请求对象包装有哪些字段信息

4、负载均衡怎么实现的

5、如果要动态感知服务端状态变化,怎么知道服务端存在热点问题,和其他服务端比较怎么知道是热点

6、怎么知道服务端的节点变化情况,zookeeperlistenerwatcher机制,临时节点和永久节点问题

7、心跳包机制

8、Spring 注入中的循环注入A中有BB中有CC中有A,会不会出现问题(构造器会有问题,字段不会)

9、SpringAOP的两种实现机制(看源码)默认机制和cglib

10、java多线程的可重入锁,区别(ReentrantLockSynchronized

11、Synchronized增加了哪些优化(锁升级和锁粒度)

12、可重入锁的响应中断区别和功能区别

13、waitparkunpark的阻塞和synchronized未获取到锁的阻塞区别

14、countDownLatch应用场景和await机制,假如三个线程同时完成计算到0,会不会同时进行

15、waitnotify容易造成什么问题(死锁、不确定唤醒谁)

16、线程池的配置(coresize10,组赛队列为100maxsize20)各种情况

线程有哪些状态每个状态的转换

17、List有哪些实现,如果通过队列实现list会不会出现移动元素的情况

18、TreeMap怎么实现的,跳表机制知道吗,安全性怎么弄,java有没有提供相应的解决

19、树形结构实现安全性怎么弄(CuncurrentHashMap的红黑树模块)

20、垃圾回收算法

1)标记—清除算法

标记—清除算法是最基础的收集算法,它分为“标记”和“清除”两个阶段:首先标记出所需回收的对象,在标记完成后统一回收掉所有被标记的对象,它的标记过程其实就是前面的可达性分析算法中判定垃圾对象的标记过程。

2)复制算法

复制算法是针对标记—清除算法的缺点,在其基础上进行改进而得到的,它将可用内存按容量分为大小相等的两块,每次只使用其中的一块,当这一块的内存用完了,就将还存活着的对象复制到另外一块内存上面,然后再把已使用过的内存空间一次清理掉。

3)标记—整理算法

复制算法比较适合于新生代,在老年代中,对象存活率比较高,如果执行较多的复制操作,效率将会变低,所以老年代一般会选用其他算法,如标记—整理算法。该算法标记的过程与标记—清除算法中的标记过程一样,但对标记后出的垃圾对象的处理情况有所不同,它不是直接对可回收对象进行清理,而是让所有的对象都向一端移动,然后直接清理掉端边界以外的内存

#云从科技##社招##Java工程师##面经#
全部评论

相关推荐

4 16 评论
分享
牛客网
牛客企业服务