
看似上岸?实则道阻且长!
这里我就以小学生式的”流水账“记录我秋招情况、近期的面试情况以及面经,最后附上我接下来要努力的方向吧!
想必大家也都知道,陆续很多大公司都已陆续开奖。可是似乎都与我无关,没有做到雨露均沾啊喂!!!简单来说,就是秋招 0 offer,让我心碎不易😢
好在唯一让我稍感希望的事情,就是有一份离学校近,产品自研,业务较为感兴趣,技术较为靠前,能够包转正(但我自己还是觉得不一定)的 Java 后端开发岗的 offer,下周一正式入职。让我不那么蕉绿吧,至少有点盼头,有个保底。再不济,在这份实习,学到技术,磨练自己,可以在后续的求职多一点底气和实力!
自己从八月开始投递简历(大公司走官网,非互联网大公司走的是 boss 直聘),也不是每天都在投,频率时高时低。目前官网投递应该 50+,boss 直聘沟通 1400+,交换简历近 200。投的时候,邀约面试其实并不多。后续我吸取了各路大佬的建议和指导,在这周面试邀约就巨多,一路累积到了 10 面!(含 hr 面)可把我累坏了,其中我即将入职的公司,就在其中。后面我会贴出记录的面经(含部分答案和当时的回答):happy:
DXC面试
ps:应该是凉了,对面老是打断我,面试体验不好,前段问的问题基本不会
一面(偏 hr 面):
- 介绍自己的实习项目(ai 智能问答助手和 ERP 物流管理系统)
- hashmap 扩容
- 给你一个前端项目,你如何启动运行?
二面(技术面)
-
Spring、SpringMVC、SpringBoot的区别
-
MVC 又是什么?
M - model V - view C - controller
-
为什么 SpringBoot 可以不用配置,就可以迅速启动
Springboot 工程中,有一个入口文件中的 main 函数,上面有一个 @SpringBootApplication,里面是有一个注解@EnableAutoConfiguration。这个注解呢,里面是可以自动读取项目的上下文,加载注入所需要依赖的 bean 对象。
同时还会根据 META-INF 下的 spring.factories 文件找到对应所需要自动加载的类
-
IOC 控制反转三种注入方式
-
Mybatis 为什么将对象和数据表做映射(xml 文件)
-
redis 缓存雪崩、缓存击穿、缓存穿透
-
bloom过滤器的如何降低误判的可能呢
-
元素删除,但是我们不能直接删除,因为有多个值共有一个 bit 位。所以我们得额外设置一个变量,来记录共用次数,删除就减一操作,直到次数为零时,删除该元素。(这种要降低误判率,我们就得要增加内存空间了。)
-
设计更加合理的 hash 函数,减少碰撞率。
追问:为什么 bloom 过滤器会有误判的情况呢?
就是因为他用的是 hash 函数做位置映射,相同的 bit 会被设置成为 1
-
-
sql 优化(回答思路)
先讲方案,后讲场景(场景一般用于扩展,因为对方不一定有耐心听!)
- 慢日志定位
- explain 分析执行计划
-
sql 里有函数有什么坏处
比如:索引字段加上函数计算,会存在索引失效的可能
-
left join 和 join 的区别(订单表和订单详情表为例子)
join 是内连接,求两张表的交集
所以说,在出现订单表有订单,订单详情没有该订单记录,我们使用内连接 join 其实是更为合适的
左连接
右连接
-
消息队列如何保证幂等性呢?
-
工厂模式有哪些
简单工厂模式
抽象工厂模式
工厂方法模式
-
盒子模型
-
js 中数组,你知道有哪些操作
-
jQuery 中如何获取指定的类名呢
-
flex 布局是什么
阿拉丁面试
ps:对方似乎对我感觉还不错,笑盈盈的,结果未知,看后续是否通知吧
一面(含 hr 面)
- 你这个多模态接口如何做的?
- prompt 如何优化的?还知道哪些 prompt 指令的优化么?
- 给你一个字符串,如何快求出第四个字符的内容(String.charAt(i))
- 分布式事务是什么
- 用过哪些数据库(mysql 、redis、mongodb、es)
- 慢 sql 如何定位?
- 抗压能力怎么样
- 领导给你一个比较难得任务,你会怎么办?
- 上一家为什么离职
天源迪科面试
ps:结果五五开吧,二面主管似乎对我不太满意,就是因为我填表不完整,面试提问之前,对我进行教育一番😢,看后续结果
笔试(选场景题来讲)
- @Qualifier有什么用
- 排序十亿用户电话号码,尽可能小内存(思路 和伪代码)
- 如何发现系统中内存泄漏
一面
-
反射能够访问私有变量么,如何防止
-
多个线程如何顺序写数字
-
创建线程的方法有哪些
-
现在有多个线程写入 redis ,写入的顺序是怎么样的
-
jvm 的内存模型有了解么
-
sql如何优化
-
tcp 三次握手
-
linux操作会哪些
-
ioc和 aop
-
分库分表有了解过么(MyCat 组件)
-
redis如何在springboot配置
-
kafka消息队列中分区消息能够一对多吗
-
arraylist
-
多态
-
读取文件中百万数据,如何快速写入数据库
读文件阶段:
(1) 采用 bufferReader 字符流读取
(2) 批量读取
写入数据库
(1) 在并发低的业务情况下,修改 MySQL 的隔离级别
(2) 并发写入
(3) 修改更新日志的参数,innodb_flush_log_at_trx_commit (将默认的 1 修改为 0,每秒提交一次)减少 IO 开销
二面
前面这个领导,就在巴拉巴拉说要我填写的表格信息没填完(我没填家庭信息),估摸有十分钟 😦
- 大模型如何训练数据的(应该是想我问细节)
- 你这接口qps为什么提升了50倍
- 为什么不用消息队列,而要自己写框架
- nps是什么 评价:开发经验较为丰富,基础知识有些许遗忘
悠饭面试
ps:面试通过,offer 已发
笔试
基本正确,sql有瑕疵,一道选择题不对
▼java复制代码class solve{ public static void main(String args[]){ String aa = "a"; int b = 1; int c = 2; System.out.println(aa + b + c);// 问结果是什么?我当时说是编译错误??? // 经过验证,字符串是可以直接跟整数进行字符串拼接的!!!可以讲整数 int 类型转换成 String 类型!!! } }
一面
-
String a = “abc”和 String b = new String("abc") 进行== 比较,true 还是 false,为什么
-
讲讲 list
-
arraylist 如何扩容(新开空间,再复制)
-
list 遍历删除可以么
-
hashmap 扩容机制?
-
系统异常你怎么排查(没有日志查看)
▼text复制代码面试官是有引导我的,因为我最终没说到时数据库执行 sql 层面导致的系统异常 我当时是这么想的,从系统接受请求到执行请求到返回请求整个链路去思考,所以有三个方面可以讲 1. 请求过来,可能是网络问题 2. 代码问题(死循环等bug 错误),可能会有运行异常(oom、空指针、边界异常),第三方调用超时异常。后面我说看日志发现异常,定位代码bug,但是面试官说没有日志可以看,如何解决?其实他可能是想提醒我是执行 sql 层面的问题 -
如何判定系统是否有内存泄漏的风险?(用 jvisualvm 监控 jvm, 查看 gc 次数,以及内存分布情况和走向)
▼text复制代码详情可以康康 why 师傅关于内存泄漏如何处理的文章 https://mp.weixin.qq.com/s/xTL-8OqF5vpMnr_eJeJgGA -
接口超时你怎么做
-
发现慢 sql 如何做
-
sql 优化 你怎么做
-
表你如何设计
-
如果我不知道有哪些字段要设计,如何做冗余列(增加相同数据类型作为备份列)
-
设计模式中适配器模式你讲一下
-
消息队列如何保证消息不丢失,不重复
-
varchar(6) 和 char(6) 的区别
-
redis 你除了用分布式锁、缓存,还知道哪些应用场景
-
redis 能做消息队列么 用什么数据结构? 如何实现? 和 kafka 有什么区别?
-
讲讲你对卡发卡的理解
-
什么是消费组?同一个分区消息可以重复么?
-
索引失效的场景是什么
二面
-
你知道有什么消息队列可以保证消息不丢失么
-
要记录接口的一些信息,你会采用什么方式
-
有哪些注解(aspect前置 后置 环绕)
-
除了你说你熟悉 kafka,你有了解过 RabbitMQ 或者是说 RobbitMQ?
-
ack机制什么(我当时直接用 TCP 三次握手的 ack 来类比了)
▼text复制代码这里他应该是想问问关于 RabbitMQ 这个消息队列中的 ack 机制,我当时不懂,我敲 -
hashmap扩容步骤
-
红黑树如何平衡的?(这里有点崩,我直接说他是平衡树,左右子树高度差超过阈值,就会平衡😢 )
-
有哪些集合
-
消息如何不丢失
-
concurrenthashmap介绍一下
-
1.8用分段锁 后面的版本呢
-
springboot如何创建代理(答了个proxy和反射)
-
有用过 dubbo 么,简单介绍一下
-
低代码开发,若依框架,你们是什么工作模式
-
linux如何改用户密码
-
linux如何重命名指令
-
如何添加用户
-
如何执行shell脚本
-
环境变量放在哪
-
职业规划是什么
-
你知道我们公司是什么公司么 总监建议: 1.基础学深,技术学广 2.要有明确的短期目标 3.系统学习,不能一点一点学习 评价:人还可以,基础深度不够,有一定技术广度
天识科技一面(杭州)
ps:通过,二面线下面,已拒
- 讲讲多模态接口开发,你是如何实现的
- 任务调度框架是什么,简单介绍一下
- 倒排索引(es)讲讲
- 为什么你会想到采用并发编程(你自己想的还是mentor跟你说的)
- 开发ai智能助手 你遇到的困难的是什么
融力通
一面含hr面(深圳)
ps:通过,二面线下面,已拒
- ai智能助手,你负责什么模块
- 遇到最困难的事情是什么
- 个人开发和团队开发你觉得差别在哪里
- 一个and和两个and区别(位运算和逻辑运算)
- 重载和重写的区别
- callable和runnable x别
- 什么是hash冲突
- hashmap扩容
- hashmap为什么线程不安全
- error 和 exception 的区别
- 单例模式是什么
- 慢sql优化
- 类加载器的类型
- 索引的类型(非数据类型)
- list集合有哪些(线程安全,非线程安全)
- list和set的区别
- sql几个函数有哪些(说3-4个)
- 锁的优化(我从synchronized优化出发
- 分布式锁的特点
- fullgc是什么
- redis的数据结构有哪些
- 泛型是什么 有什么作用
后续计划
下周一就要入职了!打工人启动!😢
短期目标
(1)看完两本技术书籍(Java 相关的 和 linux 相关)
(2)leetcode 100(五遍,目前是两遍),每周周赛训练
(3)争取春招能够谋求更大的公司!㊗️
计划:
(1)要得继续保持算法题感了,之前面试强度大,一个星期都没写算法了...
(2)开始回顾基础知识的积累,形成系统学习(就是因为总是看速成面经,没有系统学习,所以回答出来的点总是一点一点出来,很不体系!因此也建议有时间的鱼友,多去看看经典书籍,内力沉淀是需要时间的!)
(3)记录学习内容,包括公司和下班后的学习
(4)开始准备毕设,导师说要开发要结合算法进行(还在思考,有点想搞共识算法 Raft 吧)
