Java 开发社招面经
自我介绍:本人是练习时长 1 年 2 个月的 Java 后端菜鸡练习生。
下面是我最近面试的面经:
结果:答主已入职比亚迪了。
比亚迪 一面 约1h
时间:2024-03-18 14时
岗位:Java 开发
流程:一面过
1、自我介绍;
2、ArrayList 和 LinkedList 查询元素的时间复杂度?
3、HashMap 查询元素的时间复杂度?数据量达到十万,查询元素的时间复杂度?如何比较元素是否重复?红黑树的特点?红黑树如何保证自平衡?红黑树出现循环依赖如何探测?Spring 的循环依赖和解决方法?
4、递归如何转成迭代写法?如何避免出现栈内存异常?假设一个方法三个变量,每个变量4byte,什么时候会出现栈内存异常?
5、线程的状态有哪些?子线程异常如何捕获?Callable 接口和 Runnable 接口区别?为什么创建了 Callable 接口?
6、线程调用 wait,线程调用 sleep,线程由于 synchronized 同步锁被阻塞的情况下,那种情况会占用 CPU 资源?为什么?
7、MySQL 的覆盖索引是什么?为什么'like%'索引不会失效?索引的底层数据结构是什么?B+ 树的树高多少?树节点存储的数据是什么?
8、期望薪资
反问:何时反馈结果 -> 等 HR 面
比亚迪 HR面 20min
1、自我介绍
2、综合问题;
3、反问;
反馈结果时间:3-7天内(除非 HC 调整)
备注:入职了BYD部门2,部门1一直在卡流程;
久奇软件 一面 约1.5h
时间:2024-03-14 16时
岗位:Java 开发
流程:一面挂
评价:算法都a了,八股全回答上来了,也不是很懂,小公司也和大厂学?
1、自我介绍,项目相关;
2、算法题:二叉树翻转,求N开方的整数部分,求整数反转;
3、逻辑题:一个天平,八个球,找出最轻球的最小次数;
4、Java基础:String 是否可继承,面向对象特性,equals 和 == 的区别,常见集合类和常用工具类,开发中常见异常;
5、JVM:Java内存分布;
6、多线程:讲一讲什么是多线程,如何保证线程安全?
7、MySQL:sql 优化手段,索引失效场景?
8、SSM:如何进行依赖注入?SpringBoot 如何捕获全局异常?SpringBoot 的 Starter?MyBatis 如何使用?
9、综合:意向城市,期望薪资
反问:何时反馈结果,流程,业务,技术栈 -> 1-2天,两轮技术+一轮人事,财务相关软件,Java一套。
空天院 一面
时间:2024-03-12 20时
岗位:软件开发
流程:一面过
评价:不难
1、自我介绍+项目介绍;
2、SpringBoot 和 SpringCloud 区别?
3、SpringBoot 常用注解?如何关闭数据库扫描?nacos 作用?如何注入 nacos 配置中心的属性?
4、MyBatis 的动态 sql 有哪些和原理,什么是延迟加载?
5、Redis 常用数据结构?Set 和 ZSet 区别?Redis 如何持久化?
6、RabbitMQ 的作用?使用场景有哪些?
7、Git 如何使用?发生代码冲突如何解决?
反问:何时反馈结果,流程,业务,技术栈 -> 1天,2轮(技术+人事),遥感,技术栈没懂
补充:第一学历不够,只能走劳务派遣
空天院 HR面 30min
1、自我介绍
2、离职原因?为什么来北京?为什么不找大厂?各种为什么干什么?
华晨宝马
时间:2024-02-29 2 时 20 min
AI英文测评:英语闯关大挑战
1、口语热身:诵读英文长句
2、工作经历:遇到的困难,如何解决?
3、情景面试:如何准备一个好的演讲,吸引更多的观众?
时间:2024-03-01 8 时 40 min
HR英文测试
1、自我介绍;
2、工作中的困难,如何解决,取得了什么成果?
3、未来职业规划;
百度 一面 约1h
时间:2024-02-26 15时
岗位:Java 开发
流程:一面挂
评价:体验好,面试官会引导,每个问题能给我解决方案,最后建议比较用心中肯
1、GAP 时间解释
2、项目的抽奖序列都在一个池子中么?奖品一直被一个用户抽怎么办,存在bug?怎么优化?(1.增加奖品步长 2.多个奖品池)redis分布式锁应用层如何使用?如何加锁解锁,设置过期时间了么?
3、JDK11特性?(不要给自己挖坑)
4、Redis 如何使用 Zset 设计延迟队列?
4、SpringBoot 项目启动参数?
5、了解哪些垃圾收集器?线上频繁 FullGC 原因和解决方案?
6、为什么项目用 restTempate 和 openFeign?为什么不统一?openFegin 底层原理?
7、Java 代码中如何映射域名和 ip?多种方式实现?
7、sql:两张表 sql 求并集交集差集
8、算法:手写单例模式
9、反问面评:基础较差,项目太简单
10、追问:不了解启动参数->基础差;项目应该深挖不同模块的关系,如何解耦,体现项目的复杂度-> 项目简单
阿里
一面 约 45 min
时间:2024-02-22 14 时 00 分
岗位:Java 开发
流程:一面过
评价:基础面
1、项目相关
2、MQ:不同 mq 区别?mq的路由方式?mq 如何保证消息可靠性?消息消费失败如何处理(重试机制+拒绝策略+消息失败表+企微告警)
3、MySQL:主键与唯一索引区别?
4、操作系统:线程和进程的区别?
5、JVM:Java 运行时内存区域,哪些是线程私有,哪些是线程共有?
6、算法:三角形最小路径和(lc120);
7、反问面评,面试轮次和结果反馈:还可以,最多四轮,3天内
二面 约 1 h 10 min
时间:2024-02-29 16 时 00 分
岗位:Java 开发
流程:二面过
1、项目相关
2、算法1:数字的汉语读音
3、算法2:归并排序,类如何排序?
4、算法3:求丑数?
5、八股:了解哪些垃圾回收相关知识?什么是FullGC?有做过相关操作么?
6、综合:为什么离职?可以长久发展么?专业不对口,如何自学?
7、反问面评,并未明确回答,让我加强算法,等待通知
补充:后续联系HR,均以联系不上三面面试官为由拖住
美团(火车票) 一面 约55min
时间:2024-02-21 15时00分
岗位:Java 开发
流程:一面挂
评价:基础面,都回答出来了,总结是项目简单
1、项目相关
2、算法:判断字符串是否能够由重复子串构成,求最小子串(lc459)
3、MySQL:索引有哪些?B+树?索引失效?慢 sql 分析?主从原理?
4、多线程:线程池执行流程?
5、JVM:JVM 组成?线上 OOM 如何解决?实际开发中是否调优?
6、反问面评:基础还可以,项目太简单
哈啰 一面 约1h
时间:2024-02-02 14时
岗位:Java 高级开发
流程:一面挂
评价:中规中矩
1、项目相关,哪些有挑战性的,举例说明?
2、抽奖奖品 priceIndex 为什么用 redis 自增 id?
3、项目上下游是如何流通的,数据流如何运转?
4、场景:项目中抽奖动作是否写死?如果做成活的(前三天的业务动作与后四天的业务动作不同),有什么处理方式呢?
5、数据落库(mysql)的同时向 es 插入,为什么还需要定时任务全量刷新库内数据至es?
6、Java 线程有几种状态?
7、了解过哪些锁呢?
8、CAS 原理和问题?
9、voliate 能保证原子性么?为什么?
10、ThreadLocal 作用和坑?
11、线程池的核心参数?执行流程?如何选择线程池的核心参数?
12、你提到了 IO 密集型和 CPU 密集型,设置不是绝对的,如何通过其它方式选择线程池的参数?(回答 Spring Boot Actuator)
13、Java 原生的线程池有哪些?
14、Java 线程池相关 API 有哪些?
15、如何进行多线程数据同步?(回答 wait-notify,join,countdownLatch,Future,CompletableFuture )
16、mysql 索引失效场景?
17、mysql 底层数据结构?
18、mysql 主键索引和非主键索引的区别?
19、mysql 建立联合索引,非叶子节点存储什么数据?
20、redis 如何部署?
21、redis 使用场景有哪些?
22、redis 分布式锁的原理?你设计一个分布式锁需要注意哪些问题?
23、spring 启动流程
24、spring 循环依赖?如何解决循环依赖?
25、了解过哪些设计模式?
26、静态代理和动态代理的区别?
27、平时如何学习的?
28、反问:面试结果反馈时间和面试流程
美团(小象超市) 一面 约1h
时间:2024-02-01 16时30分
岗位:Java 中级开发
流程:一面挂
评价:不想说啥了,我是真 TM 菜
1、项目相关
2、如何设计一个有界阻塞队列?有界队列 size 满了,put 元素会发生什么?
3、多线程算法:打印abc(不限制顺序),最后输出“我们打印完了”
4、Java8 流式算法:Java8 实现将同学列表 List 转 key 为 name,value 为 age HashMap
5、sql:如何统计平均执行速度,输出 IP和avgSpeed
执行表task_execute(task code、lP、create time)
报告表 task_report (task_code、speed、create time)
6、Linux 如何打印进程号?
7、Linux 如何搜寻错误日志?
8、你们项目如何查询日志?
8、如何查看 sql 索引是否失效?
9、索引什么不要对大字段建立?
9、int(1)能否存放127?
10、varchar(20)能否存放字符长度30或50的字符?会出现什么问题?
11、jvm 线上调优过没?
易点天下 一面 约25min
时间:2024-01-24 14时
岗位:Java 开发
流程:一面挂
评价:体验差
1、如何设计有界队列?
2、Java 中为什么引用泛型?
3、Java 中为什么引用多线程?
4、SpringBoot/SpringCloud 原理?
5、MySQL 如何设计一个 server?
6、项目相关?
汇丰银行 一面 56min
时间:2024-01-23,17时
岗位:se(software engineer)
流程:一面挂,面完不到一小时感谢信(联系内推人答复 offer 已发)
评价:聊的挺好的,给的理由是英语不行,面试过程中特意问面试官 se 岗的英文要求,答复只需看懂文档和回复邮件,有点无语
1、离职原因,是否定居,未来发展计划等?
2、开发流程,编写代码所在比重,如何与产品测试对齐等?
3、HashMap 底层实现?HashMap 如何获取元素?(重写hashcode equals方法)
4、concurrentHashMap 如何加锁保证线程安全?
5、synchronized 和 reentrantlock 的区别?
6、mirror gc 与 full gc 区别?(讲解的分代收集算法)
7、内存溢出与内存泄漏区别?
8、什么情况会导致OOM?
9、一道sql,一张表存放四个班级的所有学生成绩,如何取出最高三人成绩?如何按照班级,取出每班最高三人成绩?
10、英文自我介绍,两个英文问题
shein 一面 47min
时间:2024-01-22,14时
岗位:Java 高级/资深工程师
流程:一面挂
评价:面试官人不错,会引导我回答一些问题,确实由于个人能力有限,知识点串联较差,掌握不扎实,最后面评面试官给了中肯的评价,确实需要加强
1、项目相关
2、mq 如何保证可靠性?(消费者应答机制,手动,自动,无应答)
3、redis 分布式锁的原理?(过期时间,看门狗机制,锁自旋,lua脚本)
4、如何统计接口执行时间?(代码侵入,AOP,网关,skywalking)
5、redis 缓存使用,坑有哪些?(双写一致性,缓存击穿,缓存穿透,缓存雪崩,高可用集群的角度)
6、线程池如何设置参数(解释核心参数,IO密集型,CPU密集型,阻塞队列的选取,设置大小)
7、多线程同步执行数据?还有什么其它方法吗?(countDownLatch)
8、Future 作用?
9、线程池的监控?
10、索引的数据结构,底层如何实现的?
11、索引的种类有哪些?
12、索引创建的原则?
13、索引什么场景失效?
14、分页查询如何利用 limit 做的?
15、SpringBoot 的 Starter?
16、Spring 事务的注解?
17、Spring 事务失效场景?不加 public 为何事务失效?(aop)
18、mapper 文件如何加载到容器中?
19、mapper 文件与接口方法如何映射?
20、mapper 中是否可以进行方法重载?
21、sql注入,如何解决?
22、G1 垃圾收集器原理?