十年前的面试:
java有几种基本数据类型?
重写和重载分别是什么含义?
StringBuffer和StringBuilder有什么区别?
说说你对抽象类和接口的理解?
HashMap是线程安全的吗?
MySQL中的数据类型char和varchar有什么区别?
。。。。。。
现在的面试:
如何设计一个秒杀系统?
你在项目中用过分布式锁吗?是怎么实现的?
读过哪些开源项目的源码?请说说你的理解
如果CPU突然升至100%,如何排查?
如何保证数据库和缓存的数据一致性?
使用消息队列你都遇到了哪些坑?是如何解决的?
什么是缓存穿透、缓存雪崩?
JVM原理,以及做过哪些优化?
MySQL中的MVCC和ReadView是什么?
分布式事务的解决方案
。。。。。。
可以看出,跟十年前的面试题相比,现在问的问题要难得多,换句话说,程序员这个职业现在也是越来越卷了,以前,只要掌握一些基本的知识,有一些实际的项目经验,就可以找到较为不错的工作,而且跟当前的物价比,工资还算比较高。
现在真是不一样了,即使面试一个普通的开发工程师,也要问各种原理、各种架构、各种设计,其实过了面试以后,在日常工作中,还是做一些拧螺丝的工作。