人生总是充满了机会和挑战,抓住机会,迎接挑战,是我们这一生的主旋律,所以要沉住气,努力奋斗,这一生还很长。
这篇文章大纲如下:
面试的原因
面试的一些问题
后续解决方案和安排
下面进入正文。
一 面试的原因
上周抽空出去面试了几家,为什么出去面试?原因在以下几方面:
在这家公司已经呆了三年,对于一个做技术的人来说,一家公司呆了三年,还没有晋升到管理岗,也没有拿到想要的薪水,果断走人;
公司规模,水平也不够,目前这家公司,技术团队里面没有一个大厂出身的leader,碰到问题都是百度,很难从根本上摸清问题真正的原因,每次解决了老问题,还会出现新问题;
没有一个成熟的管理体系,不管是技术还是其他,都是零零碎碎,什么东西都是自己瞎琢磨,研究,有时候百度出来的东西,可能已经是几年前的技术了,但是本着先实现功能再说的原则,还是硬着头皮上了,所以最后项目里面出现的技术参差不齐,很难受;
以上几点吧,现在看来,寻找一份工作,环境,平台最重要,薪资次之,其他再次之。
二 面试中的一些问题总结
上周一共面试了三家,三家面试的情况各有千秋,有问的特别特别细的,也有草草问结论的。 但是对我本身来讲,真正掌握了技术的核心,融汇贯通了,怎么问都好说。说到这里,先来总结一下自身发挥的一些问题:
不够沉稳,紧张,不够自信,被问到问题的时候,即使准备过的问题也是头脑闪过空白;
对知识的理解深度不够,准备面试的时候,虽然也是看了很多的视频,源码做准备,但是头看后忘,原因?对知识的理解深度不够,虽然当时看源码的时候,能够理解,但是也只是理解的很浅,有些仅仅是敲了一个demo就过去了,以为能够掌握了。事实证明,敲了demo,只是初步的了解,一旦被深问,立马GG;
对知识点的回顾复盘还不够,虽然每天晚上躺在床上都有在复盘,想想今天都做了些什么,学习到什么,但是对于要面试的岗位来说,知识点的深度还不够,基础点也太过薄弱,这点在面试的时候,尤为明显,面试官拿出一张纸在纸上画代码讨论的时候,脑子里面的反应根本不是代码怎样跑?而是慌~,拼命的在脑子里面搜索有没有见过这个?到底答案是啥?等一些杂毛问题,shit~;
侥幸心理还存在。出去面试,虽说七分靠实力,三分靠运气,但是有时候心里想的是恰恰相反,总是盼着捡个漏,给自己找理由,企图蒙混过关,这也是面试准备不充分的诱因。试想,如果能够随便靠运气就能进大公司,大企业,谁还会努力呢?导致的结果就是工程的质量,水平参差不齐,挖坑巨多,实在是很坑~;
本身硬实力不足。这就好比鹿想吃树顶的叶子,却没有长颈鹿的脖子。换个角度来说,长颈鹿的长脖子也不是三天两天就长成了,而是经过漫长的岁月进化得到的东西。对比我们的工作来说,就是有一些问题,困难,是成长道路上必须经历的。不经历这个过程,等到下一个阶段,就要吃更多的苦,需要加倍的努力来弥补上一个阶段的不足。
下面是对这三天面试公司的问题的总结,这部分是需要以后常常总结,分析,复盘的。总体来看,问到的问题包含Java基础,多线程,io,nio,网络编程,spring,spring boot,springmvc,mybatis,tomcat,netty,分布式框架,缓存,队列,搜索等方面。既包含纯理论问题,也有实际操作场景的。具体问题总结如下:
实际业务场景相关的问题:
用户上量,导致页面卡顿,如何优化,解决和排查问题;
数百万数据的表做连结,怎么做?如何优化?
实际生产中如何使用callable;
你们是如何访问静态资源的?怎么做的配置?
session过期怎么处理?
支付宝做支付,不支付怎么处理?结算怎么做?
实际遇到过哪些困难?如何解决的?
手写一个http服务器
理论相关的问题总结
list如何做扩展?
线程间的通信机制,线程模型?
spring的事务相关(重点)
@Transactional注解相关
springmvc dispatcherservlet与handleradapter如何关联?
tomcat容器如何与springmvc的dispatcherservlet通信的?
网络五层体系,每一层都有哪些著名协议?端口?
ping,telnet命令是哪层的协议?
描述tcp,udp协议?tcp代替udp是否可行?why?
session,cookie相关的具体内容?
session过期如何处理?
jvm的内存模型?为什么用栈这个数据模型?
gc回收算法?
volitle关键字
lock与synchronize区别?
hashmap的底层实现?如何比较链表上面的两个值是相同的?相同的话是覆盖还是添加?
tomcat包含几种servlet?区别?
bean工程生产对象,初始化时间?
redis是怎么实现5种数据类型的?
mysql事务隔离级别?和Oracle最大的区别在哪?
手写一个jdbc?statement有几种?区别是啥?
zk是使用什么语言实现的?分布式锁原理?你们实际生产部署了几个?
dubbo原理?干嘛用的?
mybatis的sql注入是怎么实现的?#和$的区别?
mybatis有没有数据库连接池?如何实现的?
druid和c3p0的区别?
多线程的实现方式?拒绝策略了解一下?几种线程池的实现方式?各自的不同?里面使用到了哪些不同的队列技术?项目里面有用到哪些?
list初始大小为10,现在放了11个值能放下吗?怎么实现的?原理?
io,nio了解?netty?
OK,到此问题就总结的差不多了,里面的有些问题答了出来,有些忘记了,有些则纯粹只会用,从来没有去深入的思考过为什么?如此看来,面试不仅能够让人把真正的问题暴露出来,还能为以后的路找到方向。
下一篇就以上的这些面试题,给出部分的答案和总结,加深对知识点的理解,对以后的面试来说,也是一笔宝贵的经验。戒骄戒躁,砥砺前行。
网友评论