7年Java开发经验,面试20多家公司,砍下16个Offer,总结干货面试题!

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

面试的时候99.99%的公司都会让你做一下自我介绍和最近做的一个项目,所以自我介绍和项目要提前打好草稿,特别是不太会说话的。

自我介绍


我觉得简洁一点就行了,一般面试官都会趁着你自我介绍的时候看简历,也没认真听你做自我介绍。

下面是我自己打的草稿:

面试官你好,非常荣幸参加贵公司的本次面试。下面我简单的介绍一下我的个人情况,我叫凌霄,xx年毕业于xxx学院xxx专业。目前在xxx公司工作,主要是从事xxx开发。

通过xxx招聘平台关注到贵公司岗位的招聘信息,这个职位比较符合我未来的职业发展,而且贵公司的业务对我都非常有吸引力,非常希望能够进入贵公司发展。

我对技术有浓厚的兴趣,专业知识面宽,技术也相对全面,责任心强,思路清晰,沟通能力好,熟悉JAVA体系,

对各种开发流程和主流架构模式,设计模式和UML,有较强的需求分析、架构设计、项目管理能力,并有丰富的实战经验;

出于对工程师文化的向往,我在研发团队管理期间,尝试了多种方法去建立良性的团队氛围,并有效的改善了研发效率;

技术是为产品支撑的,所以我现在也在熟悉产品设计过程,希望可以结合公司发展战略,营销策略,跟着团队打造出一个好的产品。

上面的可以适当简化一下,能说出来多少取决于你的记忆力。

项目介绍


这个是真的要提前准备好说辞,不然你面试的时候边想边说,说起来磕磕巴巴的,你给面试官的第一印象就不好了,至少说明你的表述能力不强。

介绍项目的话可以不用太紧张,面试官才拿到你的简历看多久,所以肯定是对你自己的项目是最熟悉的。需要注意的地方就是不要只讲一些业务相关的,面试官不需要知道这些,他只关心你的技术能力是否足够,通过你的描述知道你使用了什么技术,再根据相关的技术进行提问。

贴一下我的草稿:

我在xx公司做的xx系统,客户主要是xx,项目的功能主要是提供代理雨伞,代理快递,代理订餐,图书借阅等服务,后台用的是主体架构是使用Spring

Cloud,微服务模块划分为xxx,我主要负责其中xxx几个模块的开发,

orm用的是mybatis,数据库是用的mysql,缓存是用的redis,前台用到了vue技术。共有xx个同事参与开发,整个项目持续了xx时间。

面试官会对他感兴趣的点进行提问。

项目中遇到的难题


让我想起小学时经常写的作文:最难忘的一件事。这可真是太那啥了,没想到小学学的知识现在派上了用场。

项目中遇到的难题,解决了之后其实都不是什么难题了。我列几个点可以参考一下:

  1. 跨域

  2. 任务调度幂等性

  3. 使用mq遇到的问题

  4. 分布式系统中的事务问题

  5. 内存溢出问题

当然最后还是要自己的专业技能扎实,才能获取源源不断的offer。

imageimage

面试经验


接下来分享一些这段时间的面试公司

睿沿科技


做人脸识别相关的,和我上家公司做的产品差不多。

  1. Hashmap原理

  2. ConcurrentHashMap原理,为什么多线程条件下性能这么好

  3. 我从sync在1.6做的优化谈的,他从锁的粒度方面谈的

  4. 项目相关

  5. 代码优化

  6. mysql优化

  7. spring的aop怎么实现的

  8. 每天抓拍的数据量比较大,有做过分库分表吗

  9. 用的shardingjdbc 还有mycat,中小公司一般用shardingjdbc,

  10. Rabbitmq实现原理

不知道

后面两个没有回答好吧,所以没有后续了。

小海豚能源科技


这家应该是要找做全栈的吧,开头就问我好几个前端相关的,我直接懵了,理所当然的没有后续了

  1. 用过jquery哪些框架

  2. es6语法熟悉吗

  3. vue用过哪些组件

  4. spring用过哪些注解

  5. 使用@autowired注入的时候,如果这个接口有多个实现,怎么指定注入哪一个的实现

  6. eureka搭过集群吗

  7. mysql优化,什么时候不会用到索引

  8. select *,可能会导致不走索引

  9. where后面有函数运算,导致不走索引

  10. 索引不适用于隐式转换的情况,比如你的SELECT * FROM T WHERE Y = 5 在Y上面有一个索引,但是Y列是VARCHAR2的,那么Oracle会将上面的5进行一个隐式的转换,SELECT * FROM T WHERE TO_NUMBER(Y) = 5,这个时候也是有可能用不到索引的。

  11. like查询使用通配符开头不会用到索引

但是这些好像不是他想要的答案,我也猜不透。。

  1. 接受长期出差吗

开通金融


做互联网金融的,公司总部在北京,我面试的时候是在成都的新网银行公司,看这个模式应该就是驻场开发了,但是公司本身不是外包。

  1. springboot和spring的不同

  2. springboot特性,自动装配怎么实现的

  3. spring用到哪些组件,具体场景

  4. spring默认是单例还是多例,全局变量会有什么问题

  5. spring事务传播行为、隔离级别

  6. aop实现方式,jdk动态代理和cglib动态代理区别

  7. jdk lambda表达式几种使用方式,取最大和最小值,list转map,list中有重复的怎么办

线程池 有哪些参数,各个参数的意义

  1. ioc容器有什么优点

  2. jvm 堆栈,区别,线程共享还是线程私有的

  3. springcloud组件、用途,负载均衡的几种算法

  4. 分布式事务怎么做的

  5. mybatis一对多,多对多怎么做

  6. jpa和mybatis区别

  7. vmstat命令干嘛的

  8. redis查看内存占用命令

  9. mysql导入大量数据怎么优化

  10. mysql有一条数据死锁了,怎么排查问题,mysql表死锁,怎么排查

  11. nginx反向代理是什么,正向代理呢

这次面试回答得挺好的,hr也打了好几次电话说面试官对我挺有意向的,就是一顿操作猛如虎,一问工资0.9。而且我当时还是在职,要求我一周到岗,我就没去。

京东物流(自带简历)


朋友内推的,听他说是稳了,去面就能过,结果还是翻车了。

  1. java特点描述一下,继承封装多态分别是什么意思

  2. synchronized和lock区别

  3. ConcurrentHashMap线程安全怎么实现的

  4. 创建线程的几种方式,创建线程池几个参数的含义,线程饱和策略

  5. sleep和wait区别

  6. spring是单例还是多例,多线程并发会出现什么问题

  7. SpringBoot如何解决跨域,具体怎么配置

  8. 全局异常捕获怎么做的

  9. SpringSecurity的前后端分离,登录怎么做的

我:拦截登录的url,然后获取到用户名和密码,把这个用户名和密码交给manager,manager会交给具体的provider处理,provider会调用UserDetailsService的方法完成验证。

这里是我失误了,他说用户名和密码是通过getattribute 获取到的吗,我说是的。

  1. 怎么设计一个安全的对外接口

  2. 单线程的redis为什么这么快

  3. redis持久化方式

  4. 什么是聚簇索引,什么是非聚簇索引

  5. mysql事务隔离级别

  6. 你觉得你能承担独立开发的任务吗

其他问题回答得挺好的,自我感觉不错,本来以为能收到offer的,但是朋友说那个面试官觉得我不行,不能承担独立开发系统的任务,估计是第8个问题回答失误了吧,其他我觉得我回答没有问题。

教育家网络科技


面试的人比较多,所以是群面,一个面试官对应多个面试者。虽然我回答得比另外一个面试者好很多,但是没有收到offer,很迷,真的很迷。

  1. 介绍项目,然后基本上就围绕着项目的业务说

  2. 对金额的计算用什么类型,数据库中用什么类型存储

  3. SpringBoot怎么自定义注解

  4. mysql优化,like查询的时候,数据量很大,如果like查询以%开头,不会走索引,怎么优化。多表关联查询,怎么优化

  5. 代码优化怎么做的,平时重构从哪方面考虑

翻车面试


如果各位以后有机会面试别人的话,希望对面试者多一些尊重吧。

  1. 根据简历提前准备好,针对不同的level提不同的问题

  2. 不要问一些偏门的怪题

  3. 问题都是和面试职位相关的

以下是一些翻车面试,有些公司真的把我心态搞崩了,导致后面的面试都没有发挥好。

协能共创(自带简历)


公司很小,面试官架子不小,面试全程非常不愉快,经常在我说到一半打断我,挺会嘲讽人的。面试的时候没有空间了,然后在外面靠近电梯的走廊面试的。

  1. 因为我的项目是做人脸识别相机相关的,然后他问我图片处理到算法识别经历了什么过程,我是直接调算法,最多把jpg格式的图片转成bgr格式,或者图片有旋转的,通过exif修正旋转。但是我的回答好像不是他要的,然后就直接打断我,说我不知道就直接说不知道

  2. rabbitmq用了哪些设计模式。发布订阅模式,还有其他的吗,我不知道,有知道的朋友可以告诉我一下

  3. tcp/ip协议

  4. 让你设计eureka,你怎么设计

  5. 乐观锁,悲观锁介绍一下

我:乐观锁实际上没有加锁

然后他就直接打断我了,发出一声嘲笑,问我:那你觉得什么是锁。

  1. jvm参数调优怎么做的

我回答的是用的微服务部署,有的微服务访问很频繁的,就多给他设置一些内存,比如网关,一些不怎么用到的,可以设置稍微小一点。然后他说:你们这就是全凭感觉瞎设置呗

哎,面完之后心情低落了很多,难受了一下午,开始质疑我自己。

芯软科技(自带简历)


Boos直聘上标榜的上市公司,我去面试的时候顶多就看见5个人在公司,办公区域很空旷很安静。

  1. 项目介绍

  2. 挑出你在项目里做的一个模块,谈谈这个模块的整个设计

这个我真不知道怎么回答,你说整个项目怎么设计的我还能画个架构图啥的给你瞅瞅,但是你这说到具体的模块设计,我不知道怎么说,最多给你说说数据库怎么设计的

  1. 项目并发情况

你这公司规模还问我这个,不合适吧

  1. 听你说对linux比较熟,环境搭建过吗(tomcat之类的),有没有遇到什么问题

大环境都成为一个技术点来问了嘛,反正我现在用docker了。

  1. nginx你们一般做什么,正向代理一般用来干啥

你会前端啊,说说vue用history打包之后,部署到服务器,nginx需要配置什么

  1. 说说你的优点

  2. 假如你最近加班很累(你已经很累了,要猝死了),但是项目比较急,你想请假怎么跟领导沟通。

广东世纪网通信设备股份有限公司(自带简历)


第一次见到这样问问题的兄弟,挺有新鲜感的,其他公司翻来覆去的就是那几个问题。就是浪费了我的简历,打印一次一块钱,你还在我的简历上涂涂改改,我都不好意思要回简历了。

  1. java的序列化和反序列化什么含义 生成的serialVersionUID有什么用

  2. yml文件里有一些属性,怎么获取这些属性

  3. 有一个枚举类,有很多value和code,然后yml中的一个属性对应这个code的值,怎么通过code的值获取到这个对应value

  4. 我想说循环判断,但是觉得没这么简单,所以沉默了半天。。。。

然后他说枚举类里面有一个方法valueOf

啊这,是他没表达清楚还是我理解错了?

  1. final干嘛的,如果有一个final Stirng a = “123”,后面还可以改变吗

  2. 一般io操作会捕获异常,然后在catch中释放资源,有更简单的办法吗。

  3. 有一个list,给它按照类里的一个属性排序

  4. 有个string数组,里面有些空的值,我想去除空的,怎么做

  5. 线上有个接口速度慢,但是本地测试环境和线上环境是一样的,数据量也是一样,接口速度却很快。怎么排查

常问问题

=======================================================================

jvm调优


我觉得这不是一个中级开发工程师甚至高级开发工程师能做的出来的,但是面试就是要问。死记硬背考记忆力呗,只要记住其中几个常用的配置就行了。

堆大小设置

  1. -Xms:初始堆大小

  2. -Xmx:最大堆大小

  3. -XX:NewSize=n:设置年轻代大小

  4. -XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4

  5. -XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5

最后

做任何事情都要用心,要非常关注细节。看起来不起眼的、繁琐的工作做透了会有意想不到的价值。
当然要想成为一个技术大牛也需要一定的思想格局,思想决定未来你要往哪个方向去走, 建议多看一些人生规划方面的书籍,多学习名人的思想格局,未来你的路会走的更远。

更多的技术点思维导图我已经做了一个整理,涵盖了当下互联网最流行99%的技术点,在这里我将这份导图分享出来,以及为金九银十准备的一整套面试体系,上到集合,下到分布式微服务

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

更多的技术点思维导图我已经做了一个整理,涵盖了当下互联网最流行99%的技术点,在这里我将这份导图分享出来,以及为金九银十准备的一整套面试体系,上到集合,下到分布式微服务

[外链图片转存中…(img-tAfZPUGt-1713025331325)]

[外链图片转存中…(img-usKcyK73-1713025331325)]

[外链图片转存中…(img-Q1nPvxcG-1713025331325)]

[外链图片转存中…(img-yECYPLsf-1713025331326)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-LVbvgOkx-1713025331326)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值