本文作于2019年11月19日。
昨天投递简历到广州Bigo公司,接到邮件约定今天去面试。Bigo公司环境挺高大上的,无奈二面被刷了。在此记录下面试问题,继续努力。
一面基础
到公司签到后,hr下楼带上会议室面试。
一面是一个30岁左右的年轻人,第一各问题当时是自我介绍了。介绍完进入主题。
- 为什么String是不可变的?(final?没那么简单,不懂了)
- StringBuilder和StringBuffer区别?(线程安全?继续深究)
- 我能定义一个java.lang.Object的类吗?(类加载机制)
- Map了解吗?有哪些实现?(HashMap, ConcorrentHashMap, TreeMap应该还有其他,只说了这三个)
- 上面我说到了ConcorrentHashMap,他问,分段锁是怎么实现的?JDK1.7和JDK8中ConcorrentHashMap实现的区别?
- 线程池了解吗?(了解,我看过源码,说了核心线程数、最大线程数、队列和拒绝策略)
- JVM OOM怎么排查?
- gc的过程?
- 线程不是有Idle时间吗,底层怎么做的?(懵逼)
- 来个算法题?(剑指offer原题,easy级别,牛客网原题44题,链接:反转单词顺序列)
二面项目
二面是一个30多岁的年轻大叔,首先自我介绍。然后开问。
- 挑一个简历上你熟悉的项目,画各架构图?(我画了Spring Cloud微服务那套,Nginx => Zuul => 微服务 => Mysql,外加Eureka、Feign这些)
- 看你这个这个Nginx只有一台吗,单点故障怎么解决?(用keepalived做集群)
- keepalived是怎么解决的?期间是所有的Nginx都有流量吗?(keepalived通过脚本检查健康状态,不是所有Nginx都有流量,只是主备)
- 我想多台Nginx都有流量,怎么解决?(不懂)
- Zuul的作用是什么?(网关路由)
- Zuul还有其他作用吗?(提示了限流)
- Feign是怎么进行客户端调用的?(说了集成Ribbon,Hystrix)
- Ribbon有哪些负载均衡方式?怎么实现同一个客户端转发到同一个微服务?(后者提示了Ribbon自定义策略)
- 你说Hystrix能熔断,它是怎么判断什么时候需要熔断的?
- 项目中Eureka集群怎么互相同步数据?
- 数据库、Redis、系统缓存间怎么保持数据一致?
- Reidis使用大的value会有什么问题?
- synchronzied和volatile作用?
以上,大部分回答都深究到底层,架不住啊,二面就回来等通知了。
网友评论