目录
离职跳槽
已从用友离职4天了。算是和平分手吧,公司不想养活新人了,而我也追求个人发展去了一个纯正的互联网公司。
离职的前一天晚上,有点失眠,当时心里真的是五味杂陈。用友是我毕业后加入的第一个公司,部门同事之间的关系也非常的融洽,很照顾新人。在这样一个互帮互助团结有爱的团队中,短时间内我没想过主动离职。不幸的是,所在的部门在2018年的编制大幅减少,部门面临着变相裁员,而我就是其中之一。
清楚地记得,3月5号是个周一,开发例会结束后,部门老大找我谈话,晦涩隐晦的言语之间透露出劝我离开的意思,并内推我去用友子公司去面试。听到这个毫无预兆的消息,我一时都没有反应过来,还以为老大真的要给我介绍一个更好的发展机会。因为前一天晚上我还在加班加点测试功能,确保周一能够圆满完成任务。明白谈话的真实意图后,当时真的很沮丧,以为自己不够努力,是被淘汰的哪一个。当天下午,我很明确的表态:不想去用友的其他子公司,想去外面找工作,拿到offer后主动离职。就此,给自己争取了一个月的时间去找工作。这几乎已经是宣布我的第一份工作已结束,接下来部门不会再给我布置任何的开发任务。
3月6号,我写了一版简历,并在boss直聘和拉勾上注册账号。走上了“投简历-复习-面试”单曲循环的路。在此要非常感谢张永超同学给我的简历提了很多修改建议,真的非常感谢。
接下来我几乎每天都在投简历,几乎每天都能收到面试的邀约。由于急于想拿offer,没有系统的复习就匆忙去参加了一个个面试。陆续死在了恒昌利通、网易、碧有信、众荟信息、瓜子二手车、纵横文学等公司的一面上。张勇哥提醒我:别着急参加面试,你这样找offer完全是浪费时间和机会,先复习复习吧,反正你只要不离职就有工资,并把他的书籍借给我复习。在此也要非常的感谢他。
听了勇哥的劝,也仔细总结了失败的原因,收拾一下焦虑的心,我制定了为期一周的复习计划。针对前段时间面试时不会的知识点进行了复习。先后泛读的书有《redis实战》《maven实战》《mybatis从入门到精通》《java编程思想》《Java并发编程的艺术》《深入理解jvm虚拟机》《sql必知必会》等。初步复习一轮后,又陆续参加了京东、每日优鲜、中科院自动化所、360、苏宁、饿了么、今日头条、百度等公司面试。此时的我已经可以更自信、清晰的表达对技术的理解,差不多都能顺利通过了一面;进入了二面和HR面后,因为缺乏必要的准备,也错过了一些好机会。
直到4月9号,我参加完百度的面试,我意识到以目前的知识储备和项目经历,已经不可以找到更好的offer了。就此在4月10号办理了离职,搬家去了望京南,准备就职每日优鲜。
这段经历让我明白:离开只代表不合适;对技术的热爱是我的初心,也是我坚持下去的动力。
面试总结
一个多月的面试经历让我成长了很多。一些遇到的面试题总结如下:
一、java相关
序号 | 题目 |
---|---|
1 | synchronized关键字的用法、底层实现 |
2 | volatile关键字是否了解、什么时候用 |
3 | synchronized和Lock接口的区别?Lock接口有哪些实现(百度) |
4 | 乐观锁和悲观锁是什么? |
5 | 说下java中的异常的继承体系 |
6 | 笔试题考察String类的intern()函数(网易) |
7 | 笔试题考察Integer缓冲池IntegerCache(网易) |
8 | 笔试题考察java.util.List中subList方法(携程) |
9 | java的多态表现形势有哪几种 |
10 | 用过哪些设计模式,手写一个线程安全的单例模式。(有信、网易) |
11 | Spring中用到了哪些设计模式? |
12 | 动态代理的实现方式。jdk、cglib方式 |
13 | wait和sleep的区别 |
14 | HashMap是否线程安全、底层实现、如何扩容和高并发时存在的问题; |
15 | HashMap 与 TreeMap的区别 |
16 | ConcurrentHashMap的底层实现 |
17 | HashMap和Hashtable的区别 |
18 | 粗略画一画java集合的继承体系结构图(百度) |
19 | IO和NIO了解吗,把你知道的动笔写一写(百度) |
20 | Java中Comparable和Comparator区别 |
21 | ThreadLocal用过吗(纵横文学) |
22 | 是否有JVM调优的经历(网易) |
23 | java的垃圾回收机制 |
24 | java的内存模型 |
25 | java的内存区域有哪些 |
26 | 类加载的机制、分哪些阶段? |
27 | java为什么采用双亲委派模型(恒昌利通、今日头条) |
28 | 开启多线程后,如何判断所有线程都已经执行完毕?(网易) |
29 | 如何查找java线程中最耗CPU资源的哪个线程(网易) |
30 | java高并发包里的类你用过哪些 |
31 | 画一画线程状态图(百度) |
32 | 项目中用过java线程池吧?项目中你们把核心池、最大池、阻塞队列设置多大? |
33 | ThreadPoolExecutor执行execute方法的执行流程? |
二、算法设计题
- 请用java语言实现一个线程安全的,基于LRU回收算法的内存cache系统。(纵横文学)
- 有三个线程ID分别是A、B、C,请用多线程实现在屏幕上循环打印10次ABCABC。(注意:实现中不要用sleep)(纵横文学)
- 两个链表生成相加链表。(今日头条)
两个链表,分别表示2个整数,每个链表的节点含有数值0-9
比如9->3->7 和 6->3 相加,得到1->0->0->0 - 写一个程序,模拟5个人赛跑,并输出每个人的成绩。(关键点是如何让5人同时起跑)(有信)
- 请实现一个链表。
三、框架
- 看你在项目中使用过Spring,你对AOP了解多吗?(问spring必问aop)
- Spring MVC的执行流程
- DispatcherServlet你知道吧?它用来干嘛的
- 画一画dubbo的架构图,dubbo节点之间的长链接有哪些,dubbo协议了解吗
- Mybatis中#{}和${}传参的区别
mybatis的作用域(Scope) - zookeeper的选主过程了解吗
- 是否动手实现过分布式锁
- redis和memcache的区别;
- redis是如何持久化的:rdb和aof。(京东)
- redis有哪些数据类型;
- redis为什么设计成单线程模型?
- maven的jar版本冲突如何解决
四、数据库相关(mysql)
- 有没有msyql优化经验?(苏宁)
- mysql的索引分类:
- 唯一索引、主键索引的区别?(苏宁)
聚簇索引和非聚簇索引的区别?(携程) - mysql的存储引擎有哪些,区别是什么;
- 说说事务的特性和隔离级别(MySQL默认的隔离级别是?)(饿了么)
- 你们的项目中,是怎么控制事务的?
- 左外连接、右外连接、全连接;自然连接、内连接等概念。(饿了么)
- 如何确定SQL是否走了索引?
- 不走索引的情况有哪些,索引失效。(苏宁、饿了么)
- 动手写几个简单的sql语句(涉及到分组、排序、聚集函数等)
- MySQL使用自增ID主键和UUID主键的比较
- 数据库连接池你们用的哪种,为什么采用该连接池?
五、Linux
- 服务器端如何定位问题?
- 说几个常用的Linux命令。
六、介绍项目
1、你在项目中踩过的坑有哪些,举例说明。
2、你刚才介绍的项目里是用什么手段解决高并发?(网易)
3、你们数据库数据量是什么量级的?
4、你刚才介绍的这个项目部署在几台机器上?
5、你们的项目中如何记录错误日志?
6、你刚才的项目说到了反射,反射的优缺点你知道吗
7、你们项目中的定时任务是怎么做的?(答:定时任务不是我做的)
8、你们的redis数据库占多大磁盘空间?
9、有没有解决过一些线上的bug
七、其他方面
- servlet的两种主要的跳转方式forward和redirect区别
- 一维坐标轴上分布着10个点。确定一个坐标,让10个点到该点的距离和最小。
- 画一画tcp三次握手,四次挥手示意图。
- 你有什么想问的问题吗?