实习面经 (2022.02.01——2022.07.01)
字节
业务中台一面挂(3.15)
1、垃圾回收流程
2、什么是安全点(面试官接着我的回答深问的)
怎么知道他是安全点的
3、具体的CMS垃圾回收器机制
4、双亲委派模型?
干什么用的,有什么好处?
5、怎么打破双亲亲委派模型?
继承Classloder重写方法。
6、堆 方法区 原空间 对应的jdk版本变化。
7、博客拉了垮了 博客提到了ASM字节码但没有好好专注,被问蒙了。
spring在那些地方用到了动态代理。
8.spring事物的传播机制(回答的没了解)
面试官的建议:简历不经问,所谓的“熟悉”和“掌握”,真的算是熟悉了吗?
算法简单问了 爬楼梯
算法一定要理解透,时间复杂度,空间复杂度的理解
阿里
阿里云 存储部门一面挂(2.16)
1.JVM怎么分配内存的?操作系统是怎么分配内存的(内存的管理机制)?
2.当磁盘不够用时MySQL是怎么知道写入磁盘失败的?(binlog是怎么知道 写入失败)
原话: 假设我写了一个128kb的日志,突然我机器坏了,只写了64kb,有什么机制。日志的实现。举个例子tcp怎么知道他的报文是完整的。有什么方法去校验的? 控制码
3.就一个核cpu的操作系统是怎么管理线程的(TCB的工作原理),线程为什么不会卡死,从操作系统的调度原理上来考虑?
对象内存分配机制
1.通过逃逸分析判断对象使用范围,若只在方法内使用则使用标量替换的方式直接在栈上分配内存。
标量替换:像基础类型和对象引用这种不可分割的变量叫标量,像对象这种能被分解为多个属性的变量叫聚合量,将聚合量分解为分散的标量的操作就叫做标量替换。
2.判断是否为大对象,大对象直接进入老年代。
3.尝试在TLAB上进行分配。(逃逸分析一般用tlab桟上分配的方式来弄)
TLAB:线程本地分配缓存,占用Eden区域中的一部分。
由于对象一般分配在堆上,而堆是线程共用的,因此可能会有多个线程在堆上申请空间,而每一次的对象分配都必须线程同步,会使分配的效率下降,使用TLAB可以避免线程冲突,提高分配效率。
4.在Eden区上进行分配。
日志刷新
第二个好像MySQL不同的数据不同的页,格式不一样的,对于每次从buffer pool刷新到磁盘时,每个对应的页在binlog中都有开头和结尾的一个唯一校验和码,通过这个来保证数据写入正确,但你不敢保证是这么答啊
线程管理
如果我回答第四个,tcb和pcb类似,会存储tid,程序计数器,栈等数据,每次进行线程的执行时,根据tcb的state标记查看线程是否处于就绪状态,如果是,就会等待cpu分配时间片过来,这个时候cpu要将上一个线程的指令保存在寄存器,程序计数器行号+1,同时要从寄存器获取当前cpu的指令集,然后分配时间片后就执行
滴滴
秋储-JAVA开发实习生-SSTG 一面 (6.17)
AQS的流程和细节逻辑?
公平非公平的具体区别
锁升级 Syginzed?
偏向锁
轻量级锁
重量级锁
线程池的参数,线程池的工作流程,机制?
类加载过程,字节码的执行机制?
集合
集合顶层的两个类,Collection , Map。
Map的集合可以使用迭代器使用吗?
MYSQL默认隔离级别?
可重复读解决有没有解决幻读问题?
MVCC是什么?它解决了幻读问题吗?
这个问题回答的不好,只回答了是一种非锁定一致性读的解决方案,没说出来MVCC是多版本并发控制,底层实现是undo Log +事务版本号。他没有解决幻读问题。
怎么才能解决幻读问题呢?
设置隔离级别 串行化
每次语句 显性加锁 select for update
Next Key 了解吗?能解决幻读问题吗?
讲一讲Mysql调优吧?
-
根据机器性能,调整mysql的参数 最大连接数 刷盘策略等?
-
索引的建立
-
业务层面写好SQL语句
业务层面怎么优化?
避免索引失效的情况
spring IOC AOP
动态代理?
静态代理 编译期就进行代理
动态代理 运行时才代理
Redis 五种常用对象的 底层数据结构
Redis 主从结构
(这块儿加强一下 redis 的各种集群)
消息队列的优点?
削峰 异步 解耦
消息队列怎么保证数据不丢
消息队列怎么保证数据不重复消费
没法保证(或者保证成本太高) 一般是 at least + 幂等性
TCP三次握手和 四次挥手
Dubbo的泛型调用是个怎么回事儿呢?
Dubbo的 架构 还有流程?
秋储-JAVA开发实习生-SSTG 二面 (6.25)
面试官很友善,尽量把面试的主动权交给我。
一是问我那个项目比较好,咱们深挖一下具体的一个项目
二是问我哪一个具体技术掌握得比较好,咱从架构层次聊一聊具体技术(看山不是山)。
面试官的自我介绍
选了一个偏业务的项目聊了聊,基本上就是按简历上写的来的。
优化项目,是自己发起的还是产品发起的?
索引覆盖,回表问题?
最左匹配原则的情况加 ?
ABC联合索引 查找 AC 会不会走?(这点打的很差劲)
等值查找 范围查找?
感觉还是死记硬背的,话是不太理解。
Redis 缓存 ?
缓存不一致的解决方案?
三种方向
- 业务上 先更新数据库 再删除缓存
- 监听 binlog做全量或者增量的同步
- 最终一致性的解决方案 对账
redis的过期时间。
弱一致性,最终一致性?
策略模式,模板模式两者异同??
策略模式的两个重要的点?
- 策略是什么?
- **谁决定策略? 什么量或者什么方式,在工程代码的实现过程中决定不同的策略性模式 **
服务的注册发现?
nacos的存储节点在哪?
如果nacos挂掉了一台会有什么现象?
Nacos 有没有缓存?
HTTP 短连接、长连接?
JVM
可以不可以自定义string类型。
提示:在JVM中怎么判断类是否相等?
- 类加载器
- hashCode
对于计算密集型应用和IO密集型应用,有哪些具体的jvm的调优方案。
计算密集型的
-
创建和销毁对象是非常频繁的。—— 避免内存碎片,选择标记整理与标记清除算法。
-
对响应时间要求比较严格。——垃圾回收 吞吐量和响应时间的权衡。
IO密集型的
- 经常性的创建大对象 —— 直接放老年代里(回收频率比较低)因为IO密集型的对象 常见和销毁并不是很频繁。(这也是选择直接直接放老年代里,而不是选择扩大年轻代容量的原因)
- 对内存的要求比较大—— 扩产堆的空间
分析特点,然后有针对的进行调优。没有标准答案,能自圆其说,言之有理即可。
实习问题
反问
中小厂
浩鲸科技 6.21 一面过
线程池 相关参数
七个参数
线程池 开启 关闭
可以通过调用线程池的shutdown或shutdownNow方法来关闭线程池。它们的原理是遍历线 程池中的工作线程,然后逐个调用线程的interrupt方法来中断线程,所以无法响应中断的任务 可能永远无法终止。但是它们存在一定的区别,shutdownNow首先将线程池的状态设置成 STOP,然后尝试停止所有的正在执行或暂停任务的线程,并返回等待执行任务的列表,而 shutdown只是将线程池的状态设置成SHUTDOWN状态,然后中断所有没有正在执行任务的线程。
只要调用了这两个关闭方法中的任意一个,isShutdown方法就会返回true。当所有的任务 都已关闭后,才表示线程池关闭成功,这时调用isTerminaed方法会返回true。至于应该调用哪 一种方法来关闭线程池,应该由提交到线程池的任务特性决定,通常调用shutdown方法来关闭 线程池,如果任务不一定要执行完,则可以调用shutdownNow方法。
Java lang下面的包 了解多少(奇奇怪怪)?
String StringBuilder(线程不安全) StringBuffer(线程安全)?
StringBuffer线程安全的原因?
除了加锁还可以怎么保证类型安全?
CAS+重试
乐观锁和悲观锁?
乐观锁性能一定好吗?
垃圾回收机制?
清除算法?
常用的垃圾回收器及区别?
OOM情况 遇到过没?
JVM具体调过优吗?
JVM的停顿时间较长 但GC停顿少,说明问题没出现在GC。
安全点 Stop the world 停顿?
SpringBoot 自动配置 起步依赖?
什么是分布式,怎么理解分布式?
在理解什么是分布式是,我们要先知道什么不是分布式——及单体应用。
再扯扯 跟微服务的联系。
分布式的劣势?
分布式事务?
畅捷通 6.23 一面凉
算法题 不同的子序列
当时一看子序列 就想到用DP但 确实好久没有写DP的题了,就熟练度不够,转移方程想不出来,算法就没做出来。
技术难点?
我也不知道我有啥技术难点啊!?
RPC序列化?
kryo?
进程、线程的区别?
linux 系统下
BIO、NIO?
select poll epoll的区别?
AOP ?
面试官觉得AOP没用
AOP 在事务中的应用?
有没有参与过开源形目?
类加载过程?
学习类加载对代码编写有什么具体用吗?
agent探针技术?
怎么动态加载类?
反射
映客直播 (6.24)
TCP三次握手?
HTTPS?
非对称加密 +安全证书 详细过程
怎么拿到的证书?STL?
time_wait状态在哪一步出现?
这点答得不好
进程和线程的区别?
线程的调度机制?
时间片轮询?
进程间通信的方式?
多线程的使用场景?
具体业务?
线程池怎么使用的?
如果自己做一个线程池该怎么做?(怎么实现)?
B+树相对于B数的优点?
怎么防止回表?
索引覆盖是个什么概念?
Innodb怎么解决的幻读问题?
间隙锁
Innodb怎么解决的脏读问题?
MVCC
__EOF__

本文链接:https://www.cnblogs.com/LiPengFeiii/p/16097456.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix