Java面试总结经验

闲聊

真正的压力不是因为忙而是因为瞎忙;真正的压力不是因为身累,而是因为累及心灵。

很多程序员工作3~5年的时候都会有各种原因,促使你迫不得已去跳槽。比如说我离职的原因有很多:一二四六加班到十点,公司离家远;刚换工位有甲醛, 同事涨薪我未涨等等原因。各位同学你们跳槽的原因是什么,可以在评论区里一起吐槽一下。

既然准备跳槽了那总不能盲目地就去找工作吧,毕竟没有准备的找工作有可能得到羞辱。比如我的同事小马去年9月份去面试被面试官羞辱了一番,回来后发奋图强天天听课学习,今年出去面试很多大厂都发offer了,现在年薪半百。那么需要准备哪些东西呢?

  1. 闪瞎眼的简历
  2. 优秀的面试技巧
  3. 扎实的知识掌握
  4. 熟练的项目总结
  5. 徒手写算法题

我开始的时候就是因为没有准备好,直接找了一个简历模板在上面简单修改就投递出去了,得到反馈的寥寥无几,后来我才知道我犯了很多新手应该犯的错误。

优化简历

分享一下我之前写的职业技能

熟悉掌握Java面向对象的开发思想,有良好的编码规范
熟练掌握SSM框架,dubbo微服务架构
熟知JVM底层原理,能独立完成jvm调优
熟知并发编程,对AQS与CAS锁机制有实际应用经验
熟悉mysql,mongodb,redis等常用数据库
熟悉linux基本命令,tomcat,nginx,kafka等

通过好友内推的时候,他竟然说我这技能掌握的根本不像有5年工作经验的人(虽然确实不到),羞愧!

经过大佬优化后:

1, 阅读过Mybatis、Spring及Dubbo等开源框架,对源码有一定的理解;
2,手写过SpringMVC及手写Mybatis框架,技术驾驭能力强;
3,熟知ActiveMQ, RabbitMQ及Kafka消息中间件底层原理;
4,熟悉Mysql、Mycat底层原理与搭建,并能解决出现的问题;
5,精通高性能分布缓存数据库Redis与分布文件存储FastDFS技术;
6,精通Zookeeper服务治理及Nginx集群配置等技术;
7, 熟知Jvm底层原理,能独立完成JVM调优,Tomcat调优,Mysql优化;
8,熟知并发编程,对AQS与CAS锁机制有实际应用经验;
9,对Netty掌握很深,并读过Netty核心源码,熟知底层机制;
10,对Redis开发与设计非常熟悉,并熟悉各类缓存的底层机制,能快速解决问题;
11,熟悉Jekins, Maven,Git等相应工具,对Linux系统熟练运用,可基于Linux环境开发;

分享一下之前写的项目经验:

1. 负责开发***项目 
2. ***线上系统问题维护 
3. 对接****平台

经过大佬优化后:

1.该平台使用了Dubbo分布式框架,基于Docker对服务进行热部署,使用Jinkens与Svn持续集成管理,版本自动发布到开发环境。 XXX平台实现了为用户提供各项服务,上千人的高并发平台,在国内属于较有实力的平台,为用户提供衣食住行购等服务

2.独自完成整个项目的框架设计,实现基于SpringBoot并整合kafka、zookeeper、MongoDB框架,通过MongoDB缓存机制实现常用热点数据存储。 优化MongoDB语句,使用管道查询统计实现了千万级别数据/分钟统计报表

优化后的简历投出去了之后,果然好多电话约面试,我只能说大佬666

面试技巧

简历投放技巧:先投小厂,积累经验,再投大厂,打开局面

可以先投一些小厂,积累面试经验,一定要重视每一次面试,并且每次面试后隔两天再约面试,留下两天的时间总结一下面试经验。

这样面试一周你基本就会发现面试问的内容大同小异,基本就是jvm、多线程、mysql、redis、做过的项目、解决的难题等等。

面试官问问题也是有套路的,问的基本点就是我上述说的。如果你答上来一个题,他就会就这个知识点一层一层地深入追问,直到你回答不上来。

所以一些知识点不光要宽度,还要深度。

知识掌握

我把面试过的问题做了一个简单的汇总

一、jvm面试题
1.jvm的内存结构
2.垃圾回收期CMS和G1的区别?
3.GC Roots都有哪些对象?
4.内存溢出和内存泄漏的区别?
5.双亲委托模型?
二、多线程
1.线程的状态
2.sleep和wait的区别
3.volatile的特性和原理
4.sychnozied的原理
5.线程池
三、mysql面试题
1.InnoDB和MyISAM的区别?
2.MySQL的索引类型?
3.MySQL的事务特性?
4.MySQL的事务隔离级别?
5.MySQL优化
6.#{}和${}的区别
7.乐观锁、悲观锁、什么情况下锁失效?
8.mysql语句执行过程?
四、Redis
1.redis的数据类型:string、hash、list、set、zset
2.redis常用命令
3.hgetAll推不推荐使用
4.redis的持久化,RDB,AOF,区别,各自的特点是什么,适合什么场景
5.Redis怎么实现分布式锁?
五、zookeeper
1.zookeeper选举过程
六、消息中间件:kafka、MQ
1.kafka如何保证消息顺序消费?
2.kafka如何保证生产者消息不丢失?
3.kafka如何保证消费者消息不丢失?

项目总结

面试开始,面试官首先会让你做一个自我介绍。在自我介绍环节,肯定会介绍到你做过的项目,用到了什么框架,使用的什么技术,你负责做的功能等等。

一定要把自己做过的项目总结一下,虽然项目框架不是你设计的,但是一定要熟悉开发使用的框架。

项目总结:

  1. 使用的框架,为什么这么用

  2. 项目中遇到的难题,你是怎么解决的

因此,就算你在项目中只负责CURD,但是如果你能把项目中使用的框架描述清楚,非常熟悉业务功能及各种组件,你说是你负责开发的面试官还不相信吗,毕竟他没有在项目组中待过。

算法题

我的算法题掌握的也就一般在此不多说,想要学习的可以去LeetCode练习。

算法还是要多做才是王道。

如果你的目标是大厂,比如字节跳动、快手、滴滴等公司算法题是非常重要的。不过,如果你把乐扣上面的算法题刷到80%以上相信很多算法题都不是问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值