面试公司:深圳兆日科技股份有限公司
面试岗位:Java开发
面试形式:电话面试,外包,外派驻北京银行-和平里支行。
面试问题:
问题1:简单说一下你负责的项目
答:我负责的是一个交友类项目,主要功能是登录注册,小视频功能。
问题2:redis的在项目中作用
答:做验证码缓存,token续签
问题3:redis分布式锁了解吗
答:使用setnx去设置分布式锁,需要给锁加一个时间防止死锁。
问题4:spring的bean的生命周期。
问题5:synchronized和lock区别
主要就是一个是关键字,一个是java类,synchronized可以自动释放锁,lock需要finally去手动释放锁,多个线程下使用synchronized的话,线程1得到锁,线程2会等待,lock不会等待
问题6:数组和集合的区别
答:数组主要是存相同的基本数据类型,集合的话是存对象,集合的底层是数组或者链表
问题7:线程池核心参数
答:最大个数,线程池大小,存活时间,时间单位,对垒,饱和策略,创建线程的工程类(没说上来)
问题8:jdk堆内存结构知道吗
答:有个年轻代,老年代,元数据区(1.8以前好像是叫元空间)
年轻代有个8:1:1的比例是eden:s0:s1
问题9:索引失效知道吗
答:有一个最左匹配原则,索引需要放在最左边,不要使用运算,or等
问题10:springcloud常用组件有哪些
答:注册中心,负载均衡,熔断器,网管,配置中心
问题11:熔断器的原理知道吗
答:主要是有服务降级和熔断。具体的原理。。。。。。(当时说的有点乱),
问题12:消息中间件使用的是什么,作用
答:使用的rocketmq,作用主要是消息通知。
问题13:注册中心使用的是什么,怎么知道它服务是否存在
答:使用的是阿里的nocas,有一个类似于心跳机制的存在。
问题14:Spring的事务传播行为
答:直接照着面试宝典说的



