【近五千字纯手撸】✨前后一个月面试30家中大型高级、资深java工程师终获500强公司offer心得以及经过

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 【近五千字纯手撸】✨前后一个月面试30家中大型高级、资深java工程师终获500强公司offer心得以及经过

🌈🌈一个毕业两年的双非本科的小小程序员的冲击历程,拿到了500强的offer。


链接:https://blog.csdn.net/asd1358355022/article/details/119707811


前提背景


🌈🌈当前公司岗位已不足以满足我个人未来规划以及当前的工作已经不满足我的能力提升,故开始找下一份工作。我从7月中旬开始,每天下班开始高强度备战,7月下旬开始窥探当前行情,投递简历。前前后后陆陆续续接到了30来家中大型公司的面试邀约。


🌈🌈面试范围很广泛,到了高级和资深这种级别,面试对基础以及框架研究和使用的深度把控很严格,其中很多家公司一轮基础面试动辄1个多小时,笔试题也是尤为重要,有的面试官会要求你共享屏幕,看着你一下一下敲。面试造飞机,工作拧螺丝。相信大家都对这句话耳濡目染了吧。🌝


🌈🌈接下来带大家看一下我个人的规划以及工作的无缝衔接。


在职or离职在找工作?


🌈🌈找工作,在职找工作和离职找工作哪一个会好一点,以我的角度来看,我觉得在职找工作会比较好一点,不要因为受不了了就光速离职,但是离职后找工作的消费和找工作期间没有工资,而且你可能会因为短暂时间找不到工作而焦虑,你会损失很大,这个自己好好想一下也可以知道,况且当前的工作极其不好找,不管是应聘者也好招聘者也罢,都是选择好的机会,大海淘沙,应聘者天投百份,hr天阅百份简历,大家都懂。


🌈🌈所以个人认为在职找工作时时最优解,但是切勿在离职前摸鱼,让逮着了可没你好果子吃,到时候回调的时候你可要惨喽,你的上司万一不满意,在下家公司回调的时候给你说点黑话,受伤的还是你,所以在职找工作需要注意一下。其次需要一段时间对自己未来进行规划,包括意向的公司,入自己意向的第一阶梯公司,第二阶梯,第三阶梯等,指定面试计划,包括面试题,笔试题的联系。以及自己时间点的规划,包括提离职意向,争得同意,工作交接时间,离职后到下家公司的间隙期。


我所制定的计划


🌈🌈我的计划🌈🌈
1、6月下旬开始对个人未来进行重新规划:规划自己未来的发展线,所要从事的岗位和行业
2、找工作时间点的规划:我制定1个半月的时间从复习到找到工作的计划(依个人情况进行规划,我个人是制定的强节奏计划),5周找工作时间,最后一周留给自己休息。
3、开始从招聘软件看意向公司,列举出我要投递的意向公司。(高优、中优、低优意向)
4、6月末拟定面试计划,包括复习的范围,笔试题的练习。(从7月到8月中旬一直在学习,晚上下班回去猛攻面试题,基本上周末也是战斗状态)
5、7月初下旬,对个人简历进行优化。包括个人履历,个人技能,个人项目,个人职责进行一一优化。(除了学历,简历就是敲门砖,好好花心思准备下,让人眼前一亮的简历可是会让你增大面试几率,但是不要过分夸大其词,吹过多的🐂,其实自身实力并没有吹的那么牛,就算入职了也可能会被炒,需要注意一下)
6、7月中下旬万事俱备,开始投递简历,自己意向的公司开始投递。
7、7月下上旬开始收到面试邀约开始面试。
8、7月末旬向上司提出离职申请,争得同意。
9、8月初旬开始书写交接文档。晚上下班面试依旧。
10、8月中旬已经收到几个意向的offer,从中选择了最优的offer。
11、8月下上旬,工作交接完毕,开始休没休完的假期,8月底离职。9月初进行入职。🌝(阴差阳错下无缝衔接了工作,我都感慨,这种感觉妙不可言)


我的面试题集


🌈🌈接下来我带大家看一下我遇到的面试题,找工作不是儿戏,切勿划水。记住你的未来要你自己给予。


笔试题


🌈🌈笔试题在3家公司遇到过,初级、中级岗位笔试题会稍微多一点,高级个资深往上基本上很少有笔试题,除非对java基础要求非常高的岗位


1、遍历二叉树节点,并以数组的新式输出 例如{5,4,#,3,2,#1} [5,4,3,2,1]

2、手写单例模式

3、SQL——查找第N高的数据

id salary

1

100

2

200

3

300

4、手写一个阻塞队列,完成添加、获取功能(自行选择一种阻塞队列)


5、一个青蛙跳台阶,有时候可以跳1个台阶,有时候可以跳2个台阶、共有多少种跳法


面试题

🌈🌈面试不要给自己挖坑,挖的坑如果在面试官的炮火追问下,填不了就是坑了自己。
🌈🌈面试官提出来的问题你要主动发挥,一问一答模式基本上离凉差不多了,就算答不上来也要往相似的方向靠一靠。面试官问到如何你有深入挖掘,就往深处讲,给你表现机会你就得中用。🌝


工作项目介绍部分


1、项目介绍


2、遇到的比较有挑战性的问题(包括需求以及遇到的问题:回答的不太如意会继续问你,还有没有更有难度的)


3、项目中用到的设计模式,为什么要用这个设计模式,用这个设计模式的优缺点是什么,如何能改善缺点?


4、你的代码和同事之前的代码设计冲突,你如何做


5、你在工作中和同事是如何交互的


java基础部分


1、包装类和基本类型底层如何的转换


2、String 和 int转换的方式


3、String StringBuffer 和 StringBuilder


4、float类型值如何转变为String类型,丢失精度如何解决


5、抽象类和接口区别


6、接口jdk1.7和jdk 1.8之后得区别


7、接口和抽象类能被实现吗


8、final、finally、finalize的区别,一个类是final类,可以被继承吗


9、列举出线程安全和线程不安全的框架


10、常用的集合 hashmap的原理


11、重写和重载区别


12、什么是函数式编程


13、hashset的底层原理


14、HashMap 和 Hashtable 的区别


15、HashMap和ConcurrentHashMap区别


16、jdk1.7和1.8中 ConcurrentHashMap 有什么区别


17、同步io和异步io的区别,串行io一定比并行io快吗


18、泛型的作用,泛型T、?和Object的区别,?extends xxx是什么情况下使用的


19、什么时候会使用反射,使用反射创建对象和直接new对象区别


20、类加载机制


21、类加载准备阶段做什么事情


22、一个类有两个自定义加载器,这个类会加载几次、自定义加载器和其他加载器区别


23、https协议原理、http和https协议区别


JUC部分


1、线程池原理


2、线程池的拒绝策略有哪些


3、线程池中阻塞队列的实现原理


4、如何设计线程池中的线程、如果机器是4核8G的如何设计线程池参数


5、aqs原理


6、核心线程在什么时候初始化


7、线程池中除了try catch之外如何捕获异常


8、100个线程每个线程都执行完,我如何获取所有的返回值


9、不建议使用Executors创建线程池的原因


10、CAS是什么


11、ReentrantLock中AQS部分是如何实现的


12、Synchronized原理


13、锁升级原理


14、锁膨胀、锁消除、锁自旋、适应锁自旋是什么


15、java中的锁有哪些


16、有涉及过锁的优化吗


17、volatile是什么,为什么volatile能保证了值的可见性


18、synchronized底层原理


19、synchronized特性


20、ReentrantLock是否公平


21、对象头中有哪些东西


JVM、JMM相关


1、对jvm内存结构(JVM)理解,组成部分,挑一块熟悉的区域讲解一下


2、对jvm内存模型(JMM)理解,里面的原子操作有哪些,线程和主存之间的交互,主内存和工作内存的数据一致性是如何保证的


3、gc收集器有哪些,如何选择使用,cms收集器运行过程


4、什么情况下出现内存泄露的情况,内存结构中哪些会出现内存溢出


5、内存泄漏如何排查


6、jvm full gc的原理


7、full gc的时候还跑着应用,应用会不会受到影响


8、STD(stop the world)是什么


9、safepoint是什么,saferegion是什么


10、jvm分代算法有哪些


11、jvm垃圾清理算法有哪些


12、jvm中空闲区域和活动区域是什么,如何运转的


13、循环依赖的对象是如何被gc回收的


javaweb相关


1、Redis为什么这么快


2、Redis的数据结构


3、缓存穿透、缓存击穿、缓存穿透、缓存并发、缓存降级是什么,遇到这些情况如何解决


4、为什么Redis是单线程的? 这样做的好处是什么


5、redis的持久化机制,生产环境如何选用,


6、redis的三种集群模式,这三种模式之间的互相通信,zookeeper在集群模式中起什么作用


7、redis的数据复制功能是什么


8、为什么使用redis分布式锁,还了解其他的分布式锁吗


9、mysql索引是什么


10、mysql myisam和innodb的区别,分别应用在哪些场景


11、如何知道你的查询索引会生效


12、mysql索引失效的情况,左模糊查询为什么会索引失效


13、mysql数据结构


14、mysql调优方面,为什么加上索引查询会快


15、mysql MVCC是什么,起什么作用


16、如何删除表、删除表之后是否能通过回滚恢复


17、binlog、Undo Log、undo log是什么


18、查询语句的执行顺序


19、一条更新语句的执行顺序


20、mysql有哪些锁(乐观锁悲观锁),select 时怎么加排它锁


21、分布式中高并发情况下,mybatis存储层如何优化,除了索引还能有哪些点进行优化


22、dubbo注册中心的原理,除了zk还能使用其他的当作注册中心吗


23、dubbo消费者和注册着之间交互的机制


24、你对消息队列的理解


25、kafka的架构组成


26、如何保证kafka topic只消费一次


27、kafka从哪方面调优


28、kafka的topic能被一个消费组中的多个消费者同时消费吗、可以多次消费topic吗


29、怎么样认为kafka是正常的


30、spring 的设计思想


31、如果让你设计spring 你会如何设计


32、项目中springcloud和dubbo选型,为什么选择dubbo


33、spring DI的理解


34、spring bean生命周期


35、谈谈你对spring中设计模式的理解


36、对spring ioc理解


37、aop的原理


38、Spring如何解决循环依赖


39、spring中有哪些方法使用了代理模式


40、springcloud各组件相关的使用


41、spring cjlib动态代理,jdk动态代理如何实现,


42、BeanFactory、ApplicationContext和FactoryBean的区别,


43、BeanPostProcessor和BeanFactoryPostProcessor什么区别


44、spring和springboot的区别、springboot加载xxx-stater的pom依赖的原理


45、springcloud各组件的了解


46、openfeign的实现原理,如果让你设计openfeign的基础功能,你如何设计


47、微服务的优点缺点


48、分布式事务的理解


49、对分布式缓存的认知


50、一致性hash算法了解吗


51、熟悉的锁,分别应用在哪些场景下


52、高并发下接口幂等是什么,如何解决


53、如何设计一个秒杀系统


其他

🌈🌈个人的优缺点:工作沟通、技能、业务相关的,不要说不相关的。
🌈🌈看过那些框架的源码,讲一讲


hr面

🌈🌈到达这一轮如果没有意外,你的offer肯定是百分比拿到。一定要对自己未来有个方向规划,切记!表现出强烈的求知欲、上进心是加分项。


结束语

🌈🌈以上就是我在面试中遇到的面试题,很多面试题都是重复的,我的博客中有部分题目以及深入挖掘的答案。以上内容希望能帮助到想找工作或者准备跳槽的人。


🌈🌈只有不断的自我提升,不断的努力,不断的踏出舒适圈,才会有更高的突破。种什么因得什么果。
相关文章
|
1月前
|
安全 架构师 Java
Java大厂面试高频:Collection 和 Collections 到底咋回答?
Java中的`Collection`和`Collections`是两个容易混淆的概念。`Collection`是集合框架的根接口,定义了集合的基本操作方法,如添加、删除等;而`Collections`是一个工具类,提供了操作集合的静态方法,如排序、查找、同步化等。简单来说,`Collection`关注数据结构,`Collections`则提供功能增强。通过小王的面试经历,我们可以更好地理解这两者的区别及其在实际开发中的应用。希望这篇文章能帮助你掌握这个经典面试题。
45 4
|
3月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
132 2
|
27天前
|
Java 程序员
Java社招面试中的高频考点:Callable、Future与FutureTask详解
大家好,我是小米。本文主要讲解Java多线程编程中的三个重要概念:Callable、Future和FutureTask。它们在实际开发中帮助我们更灵活、高效地处理多线程任务,尤其适合社招面试场景。通过 Callable 可以定义有返回值且可能抛出异常的任务;Future 用于获取任务结果并提供取消和检查状态的功能;FutureTask 则结合了两者的优势,既可执行任务又可获取结果。掌握这些知识不仅能提升你的编程能力,还能让你在面试中脱颖而出。文中结合实例详细介绍了这三个概念的使用方法及其区别与联系。希望对大家有所帮助!
164 60
|
3天前
|
Java 程序员 开发者
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
36 14
|
6天前
|
安全 Java 程序员
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
34 13
|
6天前
|
机器学习/深度学习 Java PyTorch
Java工程师如何理解张量?
刚接触AI和PyTorch,理解“张量(Tensor)”是入门关键。张量可类比为Java中的多维数组,但更强大,尤其在AI领域支持GPU加速、自动求导等特性。它不仅能高效存储数据,还能进行复杂运算,是深度学习的核心数据结构。掌握张量的维度、数据类型及GPU加速特性,对学习PyTorch至关重要。
33 3
|
26天前
|
算法 安全 Java
Java线程调度揭秘:从算法到策略,让你面试稳赢!
在社招面试中,关于线程调度和同步的相关问题常常让人感到棘手。今天,我们将深入解析Java中的线程调度算法、调度策略,探讨线程调度器、时间分片的工作原理,并带你了解常见的线程同步方法。让我们一起破解这些面试难题,提升你的Java并发编程技能!
65 16
|
23天前
|
Java 程序员 调度
Java 高级面试技巧:yield() 与 sleep() 方法的使用场景和区别
本文详细解析了 Java 中 `Thread` 类的 `yield()` 和 `sleep()` 方法,解释了它们的作用、区别及为什么是静态方法。`yield()` 让当前线程释放 CPU 时间片,给其他同等优先级线程运行机会,但不保证暂停;`sleep()` 则让线程进入休眠状态,指定时间后继续执行。两者都是静态方法,因为它们影响线程调度机制而非单一线程行为。这些知识点在面试中常被提及,掌握它们有助于更好地应对多线程编程问题。
55 9
|
28天前
|
安全 Java 程序员
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
60 12
|
1月前
|
监控 Dubbo Java
Java Dubbo 面试题
Java Dubbo相关基础面试题

热门文章

最新文章