【JAVA面试指导】01—如何准备面试

这篇博客向我们致敬了在各个技术领域中做出杰出贡献的人物,包括Java、Android开发的专家,以及计算机世界的思想领袖。同时,它也提及了体育和文娱界的杰出人物,强调了他们在各自领域的影响。博客倡导铭记那些引领我们前行的人,他们的智慧和努力塑造了我们的世界。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


持续学习&持续更新中…


0、重点

  • 准备常见的面试问题及常问的技术

    • arraylist/hashmap的实现原理 ,冒泡排序/快速排序、 单例模式/工厂模式/动态工厂、谈谈你对面向对象的理解, 事务ACID/隔离级别 ,Spring IOC/AOP等
    • MySQL,Tomcat,Redis,MQ等的不足及如何改进(Tomcat最大连接数超了怎么办,MySQL放不下数据怎么办…)
    • JVM、并发、设计模式、MySQL、JVM等技术栈的调优
    • Spring、SpringBoot的实现原理等
    • SpringCloud、Netty、Nacos、Seata等的源码
  • 自己简历中出现的技术

    • 优点
    • 缺点及如何解决
    • 使用场景
    • 原理

一、注意事项

  • 自我介绍时:表达流畅

  • 工资:不要写面议 ,至少给个薪资范围,如1.5w - 2.0w【去面试网站搜相应地区,相应工作时间的大概薪资范围】

  • 简历:1-2页(每一页写满,尽量不要空半页);多使用“数字”:几个项目、几篇博客 、排名第几

  • 细节:毕业时间、年龄、工作履历、期望薪资等要相互匹配。例如,不要“毕业5年”,但“工作履历加起来只有3年”。

  • 沟通:注意人文素养 ,不要抱怨问题, 要体现解决问题、愿意承担责任的态度;

  • 体现:个人解决问题的能力、团队感、沟通能力

二、技术面试

基础【必须】

1
  • 找常见面试题去看
  • 一定要有自己的思想,自己的理解
  • 常见的题一定要会,比如:arraylist/hashmap的实现原理 ,冒泡排序/快速排序、 单例模式/工厂模式/动态工厂、谈谈你对面向对象的理解, 事务ACID/隔离级别 ,Spring IOC/AOP 等
  • 总之,要在自己写答案时,向面试官传达 “我的答案是自己写的,我是一个有独立思维的人,而不是网上抄的”。
2
  • 坑:“精通” (几乎没人敢说“精通”哪一门技术)

  • 建议:掌握、熟练;理解 ,会使用

技术列表

1
  • 坑:个人掌握的技能过于“标准化”,明显就是培训、或者看某套视频学出来。如:java + 数据库+ web前端 + jsp/servlet + ssm + boot/cloud

  • 一般而言,自学成才的人比培训出来的学生更具有独立思考的能力,因此在相同的条件下,企业更喜欢没有参加过培训的学生

  • 建议:写上2-3门非培训机构标配课程,如service mesh、netty等(最好写与高并发、分布式有关的,技术的名字相对“少见”但又很重要的)。

  • 对面试而言,这些“少见”的技术,只要你写上了,并且能把其中任意一个核心知识点说明白,就已经非常加分了

3
  • 坑:简历上写一大堆牛B的技术,显得自己很厉害

  • 建议:技术点宁可少写,也别多写。面试官经常都很忙,没时间精心准备对你的面试,甚至有时候是一边神游一边在提问,所以很可能从你简历里随便挑几个你写上的技术来问你。因此简历上写到的技术,都很可能被问到

  • 少些一点技术,但是,每个都能答出来,比写一大堆,问什么不会什么好多了

项目【重点】

  • 项目名叫“Xxx电商项目”、“Xxx管理系统”,这些“项目”简直就是培训机构的标配,缺乏真实项目的感觉
建议

(1)提前准备好回答“项目”的剧本。

	“你做过什么样的项目?”或者根据你简历中的项目来提问,几乎是技术面试官必须做、并且非常喜欢做的事。
	所以,如果你没有充足的项目经验,就提前准备好台词吧。
	**比如项目中用到的技术的缺陷以及如何解决**(MySQL,Tomcat,Redis,MQ等)

(2)关于项目,经常会被问到的点是:某个技术本身的不足,以及如何弥补。因为这样问,能够检验你是否真的做过这个“项目”,至少能说明你是否深入思考过。举例如下:

	a.你项目中用到了Mysql :如果数据超过的Mysql的容量怎么处理?(弥补MySQL自身的不足)

	b.你做的这个项目是高并发吧?缓存用了吗?在哪些场景你见过缓存失效?怎么解决?(还是在问你缓存自身的问题如何解决)

	c.看你的项目用到了MQ?MQ可以用来解耦合,具体讲讲你项目中到底哪些场景用到了解耦合?(在考你的项目是真的,还是假的)

(3)项目的重难点。每个项目都有自己的重难点,这些重难点也就是必问点,

	举例如下:

	a.分布式项目:如何共享数据【比如session,多系统文件上传到哪里了】?
			     什么是CAP原则?分布式锁、分布式事务、分布式缓存怎么实现?

	b.高并发项目:几级缓存,如何限流,如何熔断,用docker了没?

(4)真实性:实际的使用场景

	a.简历上写的“用到了人脸识别技术” :哪些场景用到了?
		人脸识别是自己公司写的,还是调用的三方API?
		自己写的话,用的什么算法?调用API的话,每次调用需要付费多少钱?识别时的光线强度有什么要求?

	b.多线程、设计模式、算法:用来处理什么业务?场景?

	c.大数据的项目:数据从哪来的?

	d.如何设计表?外键?一对一? 一对多?

	e.项目能否访问?

(5)重要

  • 项目周期:半年以上

  • 简历上的项目个数:3个左右(如果是才毕业3年以内,写1-2个就可以了)

三、加分项

1.高并发/分布式/调优

  • a.多线程(juc、aqs、线程安全、锁机制、生产消费者、线程依赖问题)

  • b.数据处理SQL优化 , 常见高性能数据库架构(如mysql+mycat+haproxy+keepalived)

  • c.JVM调优

2.实际的解决问题能力

  • 这点需要自己在面试时想办法将话题引入

  • 例如在回答项目时,主动说一下你在做项目时遇到过什么问题。具体是如何发现、排查、分析、解决问题的。

3.绝杀

  • 有过书籍、论文等出版物在github发布过项目(star很多)

  • 博客、微信公众号、 个人在阿里云等部署的可访问项目(这一条大部分人都能做到)。

  • 研究过JDK/spring/mybatis等源码

参考

颜群: JAVA面试指导.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值