公司概况:已上市·1000-9999人·计算机软件
1. 你在项目里主要做什么?
项目二期,迭代开发,主要做的方向是信息安全管控。
主要包括XXXX、XXXX、XXXX。
2. XXXX是干什么的?
把业务讲清楚。
3. XXXX涉及到分库分表,你们是怎么做的?
把设计方案讲清楚。
4. 穿插在业务中,问了一些数据库优化的问题。
1) 为什么你们很少做多表联查?
互联网公司一般都采用 单表查询+代码层组装 的方式。
● 单表查询SQL的复用率较高,缓存利用率也较高;
● 联表查询情况下,表结构变动导致查询SQL需要同步修改的可能性更高;
● 两个大表联查的效率可能很低。
2) 有什么其他的调优方式?
使用索引,不使用 * 通配符;
反范式设计;
数据库隔离级别选读已提交;
冷热分离:把大表拆分成一张主表和一张扩展表,把不常修改的信息存储到扩展表当中;
使用JSON格式存储可变表单的数据;
一次最多修改200条数据。
3) 为什么你们用MySQL不用其他数据库?
大部分互联网公司以MySQL为主。
● 免费;
● 可以满足需要。
5. 处理过什么线上问题?
先讲了一个,面试官觉得是业务层面的问题,问有没有技术层面的,于是又讲了一个。
1. 你知道哪些垃圾收集器?
ParNew - CMS:新生代采取标记-复制算法,老年代采取标记-清除算法。
G1(单独使用):面向局部收集、基于Region,采取标记-复制算法。
2. 讲下G1收集器的工作原理。
3. 哪些对象可以被回收?
可达性分析。
GC Roots。
1. 你了解AOP吗?知道什么说什么。
对标OOP,Aspect对标Class,Advice对标Method,Pointcut对标引用。
织入器Weaver将Aspect织入系统的连接点Joinpoint。
动态代理。
2. 你们系统中用AOP实现了哪些功能?
日志。
3. Spring配置为什么写在XML文件里?
统一写在XML文件里的可读性比较好(面试官的看法)。
也可以做全注解开发。
1. 讲一下线程池的工作原理。
围绕线程池的7个参数讲清楚。
2. 线程池的核心线程数和最大线程数是怎么设置的?
CPU密集型:N+1;
IO密集型:2N。
1. 讲一下快速排序。
从数列中挑出一个元素,称为 "基准"(pivot);
重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作;
递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。
大约四分之三的时间都在讲项目。吸取了上次面试的教训,项目讲得还算可以。
整体感觉挺顺利的。
离职原因。
1. 简历上时间最早的项目。
1) 项目是干什么的?你在其中是干什么的?
2) 系统有哪些页面?系统是怎么运转的?
应该是确认下这个项目是不是编造的。
2. 简历上时间第二早的项目。
项目是干什么的?你在其中是干什么的?
3. 简历上最新的项目(我简历上一共3个项目)。
项目是干什么的?你在其中是干什么的?
1. 说出自己的三个缺点。
最终抓住了我领导力比较差的缺点。
2. 你不能带团队,那你有什么价值?
(答得不好,复盘一下)
一个成熟的团队中既要有PL也要有SE,SE主要负责技术方面的指导工作。
程序员可以根据自己的性格,选择一条适合自己的发展路线,我的努力方向就是偏技术一些。
团队负责人也应该明白,并不是每一个人都适合做管理。
3. 听起来你只是比新人更熟练而已。
1) 事实上,经验本身就是有价值的。
在编程上有什么问题是真的难以解决的呢?就只是闻道有先后,术业有专攻而已。那些解决不了的问题,都在实验室里。
新人和老兵的区别就在于经验,觉得我比新人更熟练,就是肯定了我是不能被新人替代的。
冷知识:一个月薪5w的程序员的工作,交给10个月薪5k的程序员是完不成的。
2) 我的成长并不完全是由工作带来的。
如果随便谁做个三五年都能与我的技术水平相当,那么我的学习就没有任何意义。
3) 新人的成长是有代价的(杀手锏)。
每个新人在成长起来之前,写出来的糟糕代码,对系统是有伤害的。
所以比较新人和老兵的代码,不是一个写得一般、一个写得好的区别,而是一个谁写得危害极大、一个写得危害轻微的问题。
4. 你说你更懂产品,证据呢?
那我肯定是没产品经理懂了,但是这个问题是拿我和新人比,不在话下。
经常参加需求评审、跟业务方讨论需求、实现功能,总是会对产品的好坏有一些直觉上的判断,如果有个从来没有做过这些事情的新人天生拥有这些直觉,那我觉得输给天才也不丢人。
前边聊工作经历和项目经历还好,后面面试官开始盯着他发现的我的缺点下手,就把我完全压制了。
这方面的准备确实不足,我需要整理一套自己的价值观,去和面试官碰撞,不能只是被动地接收面试官的想法。
不要附和,如果碰撞以后发现有无法调节的矛盾,那么这个岗位就不是你应该呆的地方。