龙空技术网

聊聊面试八股文的前世今生

Java陆总监 112

前言:

此刻兄弟们对“面试八股文是啥”大约比较珍视,朋友们都想要知道一些“面试八股文是啥”的相关内容。那么小编同时在网上搜集了一些对于“面试八股文是啥””的相关资讯,希望各位老铁们能喜欢,大家快快来学习一下吧!

聊聊八股文的前世今生和带来的误区。

面试官看我答不上来直接嘲讽我:你这Java是白学了吗?连这些源码都没看过。面试造火箭,工作拧螺丝。今天我真的是很想跟大家好好的聊聊八股文那些事。视频很长但是绝对很干,并且我会跟大家讲一下八股文到底给我们带来哪些误区。

八股文是什么时候产生的?我是2010年入行的,在我们那个年代有一份面试题叫做Java面试100题。像大家比较熟悉的servlet、生命周期、hash map、hash table有什么区别?arraylist、link list有什么区别?等等。甚至还会问一下CSS、html、JS、Jquery这些题目。

但是在我们那个年代没人觉得难,毕竟题目就那么点,不管到哪里去面试命中率都能达到百分之五六十。这种情况直到2015年我参加了一次面试,有几道题目我到现在还记忆犹新。面试官问我hashmap代码你看过吗?spring代码你看过吗?spring MVC它的流程是什么?

我当时就懵了,hashmap还代码不就是put get size迭代就行了吗?spring你会写注解@service就行了。springmvc你会写requestmapping注解就OK了。面试官看我答不上来直接嘲讽我:你这java是白学了吗?连这些底层原码都没看过。

2015年其实我也面过阿里,我跟面试官说:我们用double。面试官问我dobbo的注册发现机制你了解吗?dobbo架构你了解吗?底层原码你看过吗?dobbo你不就是配好注册中心然后打个注解向调用service,向Doll不就完事了吗?

说实话那段时间面试对我打击挺大的,我感觉我完全不会教java。为此我在很多网站、买了很多某某课堂的高阶java教程,比如某某底层原码分析、中间件原码分析、JVM调优分析,我才知道还有Concon hash map、还有JUC,下面有一堆我没有用过的东西,还有spring原码,各种各样原码,但是工作里面真的用不到,我在家足足学了大半年。

半年以后我又面了一次阿里,好像记得是3轮还是4轮技术面试,反正最后是通过了。后面因为我在南京已经买了房子,孩子也在这边上学了,所以我没有离开南京,虽然工资很诱人也很可观。至此我一直觉得技术牛的人一定是八股文很牛的人。

直到2018年我参与了我们公司集团级的一个高并发项目,我才知道良好的设计才真正能够体现一个人的能力。解决高并发问题是成熟的公式加个人经验加合理的架构设计组成的。

做完这个项目之后我一直在想,我为什么要去理解他们的原码?他们把这些中间间做出来不就是让我们不用去关注底层实现直接去用吗?你反向去学习不是本末倒置,浪费时间吗?我为什么要去了解Redis底层原理?什么一步驱动回调?我为什么要去了解kafka的0拷贝?跟技术好坏真的没有关系。

而且八股文也真的很容易给人带来误区。我举几个例子也是我最近刷视频刷到的,八股文会问你JVM怎么调优?事实上我们在生产里面大部分情况下不可能让你去调优的,绝大部分业务都是I0密集型,也就是说性能瓶颈在I0,在DB你只需要按照你服务器的配置去合理配置堆内存大小就行了。

那些所谓的性能不如你加台机器来得实在一点,风险也更低。八股文会告诉你什么缓存击穿、雪崩穿透怎么解决。但是当这些情况真的发生时候,产生的连锁反应早就导致告警了。并且因为这种情况导致DB挂了。别吹各种方案,应该去想想怎么优化sql语句。my sql的性能真的不差。

八股文会告诉你什么?分布式事务,二PC、3P、CTCC。事实上在工作场景里面,特别是大厂里面,除了金融场景没人跟你玩分布式事务。有没有本事让支付宝跟你玩个分布式事务?八股文让你把加瓦的锁背了,又背什么?同步锁、读写锁、宫廷锁、偏向锁、自选锁。事实上java自带的锁在集群环境里面根本就不能用,一定要分布式锁。

八股文告诉你MQ消息堆积了会造成什么样的问题?事实上大厂里面一个MQ消息会被几个系统订阅消费,被消费了也不会马上删除,并且大部分消息删除策略是定期删除。很多解决方案八股文不会告诉你,必须要从工作里面、从业务里面去理解。

但是说到这里八股文该不该背?还是该背?因为面试需要,因为很多面试官不会面试,所以用一刀切面八股文的方式来考察候选人。但是人家毕竟是面试官,怎么考察都无可厚非。所以同学们加油。

如果不会八股文可以看一下hollis八股文,总计有800多道题目,涵盖了面试的方方面面,并且还融合了很多实际场景。如果需要真的可以拍一下。

标签: #面试八股文是啥 #什么叫面试八股文