一、前言
因为疫情的原因,小农从七月份开始找工作,到现在已经工作了一个多月了,刚开始找工作的时候,小农也担心出去面试技能不够,要懂的东西很多,自己也准备可能会面试一段时间,从找工作到入职花了十几天,总共拿到了5份office,然后选择了一家去入职了,因为项目需要上线了,所以小农最近一直在加班,平时会比较忙一点,刚好周末想着把这段时间的经历写出来,希望对找工作或者刚入职的同学,能有一点点的帮助吧
二、面试前的准备
磨刀不费砍材功,对于想要找工作的小伙伴们,面试前的准备肯定是少不了的,至于多久开始准备,如果是工作的小伙伴们,可以提前一个半月开始准备,因为是在上班不一定会有那么多时间来复习和了解知识点,对于辞职的小伙伴,花一个15-20天来准备面试,工作和面试其实还是很有差别的,面试造火箭,工作拧螺丝,面试前的准备是很有必要的,那么针对于面试掌握的技术点,通常需要了解以下这些知识点:
- 多线程高并发
- JVM和JVM性能调优
- 设计模式
- Redis
- Mysql调优
- Spring Cloud
- Spring IOC/APO /源码
- Java集合
- 做过的项目要熟悉
以上技术点,每个大概有个基础的概念,能说出个2345就差不多,可以出去开始面试了,不一定非要确定掌握的特别清楚,上面也说过,面试不是准备到了100%才去面试,当你准备到75%的时候就可以出去,开始找找工作了,剩下的25%,需要你在面试中去进步和改变,随机应变也是一个很重要的因素,根据面试官问你的问题,不会的可以回去查阅知识点,然后学习掌握,下一次问到你这个问题,如果还是回答不出来,那这个就是你的问题了,这个分享一个小技巧,关于在面试中和面试官的交流中,我们可以用手机录音录下来,回去后可以听一听,自己哪里答的不好,或者什么地方没有回答上来,可以更好的做针对性的学习,毕竟好记性不如烂笔头。
三、面试中
3.1简历
针对于简历,我们要敢写,不是你不会的也要写上,很有朋友就是,自己会一点,但是只是自己搭建过或者了解过,但是不敢写在简历上面,这个没有关系,写在简历上,至于这一个技能不会的地方,如果在面试中问到了,在去了解和学习,慢慢的你也就会了,在面试中,我们都是一边面试 一边学习,所以简历应该是持续建设的,让你会了一个知识点的时候,就应该加在简历上去,这个时候你投递了也没有关系,如果是一个你心意的公司,那么你应该看人下菜碟,可以适当的调整一下简历去投递你喜欢的公司,所以简历要敢写,但是也不能太嚣张,那么问题来了,什么是嚣张的简历呢,来,让你们看看嚣张的简历:
本人学识渊博、经验丰富,代码风骚、效率恐怖,C/C++、java、php无不精通,熟练掌握各种框架,深山苦练20余年,一天只睡4个小时,千里之外定位问题,瞬息之间修复上线。身体强壮、健步如飞,可连续编程100小时不休息,讨论技术方案5小时不喝水,上至带项目、出方案,下至盗账号、威胁PM,啥都能干。泡面矿泉水已准备好,学校不支持编程已辍学,家人不支持编程已断绝关系,老婆不支持编程已离婚,小孩不支持编程已送孤儿院,备用电源万兆光纤永不断电断网,门口已埋雷无人打扰。
不好意思放错了,这个才是:
这个是高手,关于简历投递的时间,我们是在上午的九点左右,那个时候投递的简历,在hr邮箱里面比较靠前,第一时间能看到,之前小农也去面试过别人,每天打开hr邮箱,全是一排排的简历,投递的简历,应该言简意赅,例如:(5年经验小农应聘公司XX岗位)
关于简历学历的问题,一般来说公司要求都会是大专以上的学历,但是学历越高工作相应的也就比较好找,所以如果是大专的同学,可以自考一个本科,还是会有帮助的,当然技能才是你的硬实力。
个人经历: 可以写一些获奖、培训(PMP 开发 敏捷)、证书什么的
加分项: 个人博客和Git源码
3.2 面试题
其实大部分公司对于技术要求都没有那么高,对于必考的多线程和JVM,工作中基本是很少用到的,80%的公司,对于技术是没有很高的要求的,但是一般来说,很多人都会被问 JVM原理、多线程、数据结构和算法、高并发、设计模式等内容,这是在评估普通 Java 面试者的知识结构,关于面试题,小农也整理了一些,大家可以自行参考学习,有补充的地方,欢迎大家学习交流,
1、Redis实现分布式缓存有哪些坑?如何避免缓存穿透的问题?缓存数据一致性如何解决?
2、MySQL Innodb 索引结构是 B+树,具体 Innodb 的索引有什么特性?如果遇到慢查询、遇到高并发后,你从哪几个方向去优化 MySQL?
3、交易场景下,你的状态流转是怎么设计的?很多人全都是业务代码,你怎样才能做到更高层面的抽象?
4、微服务架构下,对于服务降级和边界条件,你是怎么看的,一般都如何去设计?能结合实际场景,说说分布式事务、分布式锁么?
5、AOP IOC / bean的实现方式 / 多线程 / 如何保证消息的顺序性、消息不丢失、不被重复消费
6、接口幂等性 / bean的生命周期 / mysql 搜索引擎 innodb myisam的区别
7、@autowrite @resourse 区别 / 数组和链表
8、jvm 优化 / jvm 内存模型 / int类型运算的问题 / hashMap
9、spring boot启动原理 / 高并发、多线程、框架、数据库、分布式、底层
10、了解JVM性能调优、常见JVM垃圾收集算法、Java并发框架与库、Java内存模型
11、GC / spring 事务 / 为什么要用数据库连接池用的什么
12、Redis实现分布式缓存有哪些坑?如何避免缓存穿透的问题?缓存数据一致性如何解决?
13、MySQL Innodb 索引结构是 B+树,具体 Innodb 的索引有什么特性?如果遇到慢查询、遇到高并发后,你从哪几个方向去优化 MySQL?
14、交易场景下,你的状态流转是怎么设计的?很多人全都是业务代码,你怎样才能做到更高层面的抽象?
15、微服务架构下,对于服务降级和边界条件,你是怎么看的,一般都如何去设计?能结合实际场景,说说分布式事务、分布式锁么?
-
说一个技术的时候,最好连带着说出应用场景
-
一致性哈希、布隆过滤器、PAXOS、分布式一致性 ——> 应用场景 优缺点 举例子
-
说一个算法的时候,把类比的算法都说出,两阶段提交、三阶段提交,2pc,3pc,rap 论文作者怎们想的
-
将java的各种属性的时候结合版本说,集合类、并发工具类变化比较多,1.8、1.9发生了什么变化,jdk10\jdk13,比如13的时候支持python语法,string可以多行定义
-
面试官愿意问比较擅长的东西
-
大厂面试都有严格的流程:操作系统1-2题 > 网络 > sql > 算法 > 数学逻辑 > java基础 …
各个知识点都要涉及到,一般一个小时的面试的话,前20分钟问以上基础,后40分钟问你擅长的东西,因为面试官手里有一张表,会跟着流程表问问题,并对知识点打分,根据这个表打分,所有的知识点都会问到
-
面试官问一个知识点,可以说其他知识点,但不要把这个知识点说完再说其他知识点,比如再说hashmap的key value可以说为Null时就把hashtable不允许key value为null说出来
-
尽量把一个知识点讲的有趣一些,因为面试官都懂,而且听腻了,如果能听到一些新鲜的一种说法或者说你讲的更清晰,他会听着更舒服,认为你理解的更深刻
-
知识点的讲述方式尽可能和别人不一样,对于应届生来说,绝大多数人都是自学网上的文章或视频,那么大多数人就会按照网上文章来讲一个知识点,当大家都一样的时候,如果能换一种说法,效果会更好。
最近也整理了一些技术书籍,大家有兴趣的可以在公众号(牧小农的夏天)回复,Java书籍,就可以免费领取了
四 总结
面试是表现自己不是考试,把自己当做一个商品来推销,小农最近下班都比较晚,状态大概就像上面这样的,哈哈,不过程序员,加班是难免的,一句话干就完了,也希望大家能找到一个心仪的工作,好好生活,好好工作,入职公司后,低调做人,高调做事,大家加油~
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/2721.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...