最近技术群的一个问题,引起了我的思考:
今年,还存在金三银四吗?
大家都知道程序员涨薪主要还是要靠跳槽来完成!但是我们都知道,无论是考试,还是求职,这个难度,参加人数是影响难度的一个很大因数(当然特别牛逼的大佬可以忽略这句话)。
每年高考、考研人数都在增加,这求职人数也必然是每年都会增加的,因此,就算完全不出新技术,求职的难度也会越来越大。
最近和不少出去面试的朋友闲聊,都发现,两年前面试高级开发,会JUC、JVM相关的知识点都是加分项,现在反而成了基本要求,不会这些,面试都是被吊起来打!
两年前,JVM会一些理论知识,比如垃圾回收算法的概念,优缺点,适用场景等都已经能达到及格水平。现在人多了,这个筛选难度也大了,现在都开始问,你有没有做过哪些JVM调优?
大家都知道,公司开发的人数比较多,就算有JVM问题,那么参与调优的人数也是有限的。公司不可能像大学一样,让每个人都能在实验室,然后每个同学都能在亲自做实验,然后老师再打分之类。
现实是,很多同学的公司,根本没有JVM调优场景,就算有,你也没有机会参与解决,现在的面试情况就是,你不会,很可能就被“误杀”。
一面50min
- 自我介绍
- Java集合
- LinkedList与ArrayList
- fail-fast
- CAS
- reentrantlock
- synchronized
- 线程池
- mysql引擎
- 事务隔离级别
- 索引
- B树与B+树,为什么用B+树
- mvcc
- redis的一些命令(了解的不多,因为都是用lettuce来操作)
- 合并有序数组
有一些忘记了,记得不太全,顺利通过了,然后过一会二面
二面50min
- 自我介绍
(面试官发现他想问的上一面问过了) - AtomicInteger在什么情景下使用(并发多线程,举例线程池、锁)
- 建立一个数据库,存储抢课的情景
- 根据上面的数据库写sql
- 自己实现一个栈
- 遍历一个路径下文件大小最大的文件路径(写伪代码即可,因为我们都忘了相关的api)
- 手写一个单例(我写了双重检测)
(忘了用static修饰),然后顺便说了下为什么要用static修饰 - 为什么synchronized要写在两个if中间
- 其他的一些非技术的问题
应该是通过了,我看到昨晚有人接到三面的安排以为我凉了,没想到hr说因为今天安排不过来了 😂
总结
无论是哪家公司,都很重视高并发高可用的技术,重视基础,重视JVM。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。
最后,如果有想要我整理的面试资料的,可以**戳这里免费领取**,我整理了一些面试真题资料,技术知识点剖析教程,还有和广大同仁一起交流学习共同进步,还有一些职业经验的分享。
交流学习共同进步,还有一些职业经验的分享。
[外链图片转存中…(img-28c7MBJV-1619423135595)]