hi 大家好 我是田哥
今天,给大家分享一些面试干货。我们每次面试基本上都是超过一个小时的,面试官肯定会问很多问题,其实也不是需要我们全部能回答上来。但是,关键点如果回答不上来,就算你其他的回答的不错,也没用,最终offer还是不会给你的。
好吧,话不多说,我们直接开始:
自我介绍
很多人觉得自我介绍不是很重要,错了,自我介绍很烂,也会影响你的offer。因为自我介绍会考察你的表达能力,是否言简意赅,是否介绍了你的优势,你的特点。
很多人都是这样的:
面试官你好,我是
XXX
,本人某某大学某某专业毕业,XXXX
年毕业,毕业后就一直从事Java相关开发,做过系统1、系统2、系统3....,今天想来贵公司面试一份Java开发工作。
就这么简单潦草的把自我介绍搞完,面试官或许都没听到什么关键词,最多估计也是听到某某系统,然后有点感兴趣,就开始聊某个系统了。可是,你可能对某个系统其实不是很了解,只是参与开发了几个接口,然后,你就几句话就把面试官打发了。
或者你是面试官,估计连你都有些不爽,你说你做过某某系统,居然就开发了几个接口,整个系统是干啥的,有些什么工作,业务量怎么样你都不知道,你觉得印象分会高吗?
Java基础部分
现在面试官,基本上是不会问基础部分了,但照顾到某些面试官还是会问,所以还是提一下。
- String对象创建了,为什么不能变了?
- Integer的面试题,100=100,1000为什么就不等于1000了?
- 反射机制是什么?异常有哪些处理方式?如何自定义异常?应该注意些什么问题?
- 我想自己写个对象作为
HashMap
的key,行不行?应该注意些什么? - ......
JVM部分
个人觉得JVM
这部分相当重要,这都没学好,你的代码是怎么运行的,你写出来的代码会不会有问题,有没有优化空间?
JVM
内存模型(这是最基本的,可能面试官不会直接问你,但是问其他问题的时候可能就需要说了)- 类加载机制(类加载器,如何自定义类加载器)
- 双亲委派模型(如何破坏,在哪些地方见过)
- 哪些是垃圾对象(很多人始终记不住,那是没有用代码理解)
- 线上问题处理(这个是很多人都回答不来的,这里同时也是考察你对
JVM
一些知识的考量) - ......
并发编程部分
在面试中,并发编程依旧是热门话题,同时也是大家最害怕的问题之一。
- 线程创建方式有几种?
- 线程状态
JUC
并发包下的相关组件(AQS
、ReentrantLock
、CountdownLatch
等)- 线程池(实现原理、创建方式、如何设置线程数、如何监控)
- 同步锁、重入锁、锁升级、悲观锁、乐观锁、
ABA
问题 - ......
Redis部分
现在大部分公司都在用Redis
,做缓存、分布式锁等。所以,现在基本上是必问的技术点。
Redis
数据类型(老实点回答常规的,关于bitmap
、Hyperloglog
,如果不是很熟悉就别说,否则给自己挖坑)Redis
使用场景()Redis
持久化(你们用的是哪种?为什么这么用?这么用会不会存在什么风险?)Redis
线程模型(为什么叫单线程?只有单线程吗?)Redis
高可用(Redis
集群方式,你们用的是哪种?为什么选这种?)Redis
淘汰机制(淘汰算法有哪些?默认是什么?说说你对这几种算法的理解)Redis
实现分布式锁(为什么选择Redis
来实现分布式锁?具体是怎么实现的?存在问题吗)- 缓存三大问题(缓存雪崩、缓存穿透、缓存击穿,回答上来是正常的,回答不上来就回去等通知)
- 缓存命中(缓存命中率表示什么?怎么提高缓存命中率?)
- ......
MySQL部分
目前在面试中 MySQL
的占比也是相当的高,并且都会问的挺多的,也问题挺深的。
- 一条
SQL
的执行(一条查询SQL
是怎么执行的?一条更新的SQL
是怎么查询的?) - 索引的问题(索引底层数据结构是什么?什么场景需要用到索引?联合索引背后实现原理是什么?...问题非常多)
SQL
优化(有哪些手段?说说几个项目中优化的场景,MySQL优化手段有哪些?)MySQL
日志文件(有几种日志文件?都是干嘛用的?)MySQL
事务(MySQL
的事务原理是什么?为什么不要使用长事务?说说你对MVCC
原理理解?)MySQL
中的锁(MySQL
中有哪些锁?针对这些锁,能不能说说相应场景)- ......
Spring家族
Spring是我们开发中必备的,因为它解放了我们的双手,尤其是Spring Boot
让我们之前的那么多xml
配置给消失了。
- 你们项目中为什么使用
Spring
框架? - 说说你对
Spring MVC
的理解 - 谈谈你对Spring的
AOP
理解 - 说说你对Spring的
IOC
是怎么理解的 - 解释一下
Spring Bean
的生命周期 - Spring 是怎么解决循环依赖的?
- Spring 框架中的单例 Bean 是线程安全的么?
- 说说
Spring Boot
的自动装配原理 Spring Boot
的核心注解是哪些?Spring Boot
中的 starter 到底是什么 ?- 说说
Spring Cloud
的核心组件 - Eureka自我保护机制是什么?
- 如何设计一个注册中心?
- Eureka和
Zookeeper
的区别? - 什么是
Hystrix
?它如何实现容错? - Ribbon和Feign的区别?
- ....
消息队列部分
市面上的消息队列很多,下面我们以RabbitMQ
为例。
- 为什么要使用消息队列?使用消息队列会存在哪些问题?
- 如何避免消息堆积?
- 如何保证消息不丢失?
- 如何保证消息顺序一致性?
- 如何保证消息不被重复消费?
- 有哪些消费模式?
RabbitMQ
有些什么特点?- 为什么要选择为什么选择
RabbitMQ
? RabbitMQ
中消息可能有的几种状态?- 如何保证
RabbitMQ
消息队列的高可用? - 生产者消息没到交换机,相当于生产者弄丢消息,怎么办?
- ......
其他部分
个人觉得,上述部分应该是必备部分,开发中通常都会使用的。其他部分,由于每个人的技术栈不同,所以也不能全部列出来,下面再来看看其他部分:
Zookeeper
相关问题分布式事
务相关问题分库分表
相关问题- 常用工具
Maven
、Git
相关问题 Netty
相关问题Dubbo
相关问题- 搜索引擎相关问
- 数据结构与算法相关问题
- ...
说实话,这年头太卷了,面试要求也越来越高了。但与其说是卷,还不如说竞争非常激烈。现在各行各业都是这样的,哪个好赚钱,立马很多人就开始加入了。
面试造火箭,进去拧螺丝
这句话看起来有那么些悲观情绪,或者负面情绪,希望大家能理解背后含义。
进入公司大部人大多数时候都是搞CRUD,很多人都是高级开发了,但依旧是天天CURD。
DDDD
:这里不是带带弟弟
,哈哈,是懂的都懂
。
其实,作为面试官,肯定想你知道的越多越好,会的越多越好。不然,说不好那天和其他团队有业务交叉的地方,让你去聊技术方案,一不小心就被人家给否定了,严重的还可能会替别人背黑锅。
所以,面试造火箭,貌似也是有必要的。
福利
我之前搞过一本《面试小抄》后台回复77
即可获取.
再多说几句
很多人以为自己背背八股文,改改简历,然后就直接去面试了。其实,真正用心准备面试的人不是这样的。既然决定面试,那就还是得花点心思在上面。
但是,八股文那么多,你能背完吗?尤其是临时抱佛脚的,背了前面忘了后面,面试时候就是吱吱呜呜的结束了。
很简单的一个问题,自我介绍:每次的自我介绍都是临场发挥,发挥得好就说的很流利,发挥不好三两句话就解决,甚至说着说着自己都讲不下去了,草草了事。为什么就不能事先准备好呢?就当做背也行呀(只要是自己用心构思过写过的,其实也不用背也能很滑溜的说)。
还有就是面试中,遇到问题不会怎么办?面试后面如何反问面试官?......
大不无准备的仗
自己没有准备好,就开始出去面试,会导致哪些问题?
- 机会浪费
- 浪费时间
- 丧失自信
浪费机会
:很多面试机会可能是朋友介绍的,或者是自己意向的公司,但是你没准备好就去面试,很有可能这种机会就
浪费了。
浪费时间
:很多人都是靠着面试过几家公司后,才找到面试的感觉。比如说:面试三家才找到面试的感觉,就相当于你请假三天。就算按照每家半天,最少也得花一天半时间。
丧失自信
:由于自己没有准备好,面试中受挫也是在说难免的,被面试官怼的怀疑人生,怀疑自己是否适合干这一行。
另外,大家都知道,田哥现在是全职做面试辅导和技术分享。
10年码农,为你面试保驾护航!
面试辅导
主要内容:
- 提供面试资料,精简面试八股文,核心知识总结。
- 车轮战
模拟面试
,(面试-->总结问题-->再面试-->再总结-->再面试...找个最优状态
) - 美化简历,很多人的简历那真是烂得一塌糊涂,投出去必定沉默大海。
如果工作后,遇到什么技术问题、职场问题都随时可以找我一起探讨。