有意思的面试记录

碰见一个很有意思的【百度面试】,和我好像hhh
链接:https://www.bilibili.com/video/BV18Z4y1T7yZ/


【类加载机制】
类加载过程:加载+链接+初始化
双亲委派 -- 保证程序的稳定性
tomcat -- 类加载,破坏(同个jar包不同版本,得使用不同版本的)

【JVM 内存模型】
堆、栈、程序计数器、本地栈
栈,执行方法就会入栈,还会存局部变量。异常:StackOverflow(递归)、OOM
本地方法栈:native 方法
堆:存储对象
垃圾回收机制、划区
方法区:常量、静态变量

【JVM 调优】
参考:https://cloud.tencent.com/developer/article/1492834
jps -- 显示虚拟机进程
jstat -- 线程快照,
jmap --
jinfo -- 配置信息

【Java 多线程】
核心参数:

核心线程可以销毁吗? -- 有个参数allowCoreThreadTimeOut 默认是false,如果开启,这就违背了创建核心线程的初衷-- 就是为了 减少线程创建和开销

happen before 并发变成的规范规则:多线程操作下,对于共享变量具有可见性
顺序规则:按照代码的顺序,前面代码操作对后面代码课件
volatile变量规则:一个变量的写操作 先行于 读操作
传递规则:A happen before B,B before C ==> A before C

解决 可见性、原子性、有序性
遇到并发的问题:

Spring 如何解决并发问题?

【Java锁】
synchronized -- 锁的粒度
ReenterLock -- 依赖AQS框架
AQS 独占式模式 == volatile 修饰一个静态资源,用队列存储阻塞等待的线程,从而实现锁

【Spring】
介绍一下:ioc的引入,使用容器来管理bean对象。
aop 面向切面编程 -- 不改变原方法,实现方法增强。本质是动态代理(运行时先用反射获取这个类对象,再在方法区创建一个新的类)

bean的生命周期
循环依赖:检测机制,启动会报错

AOP:那两种方式实现aop -- JDK、CGlib实现
为什么只能继承接口?
这两种方式的应用场景:两者的优劣势

类加载机制?


发起一个Http请求的过程?
host -> DNS 查ip
HTTP body:请求行、请求头、请求体
get
post
区别:请求服务器,ajax 发送get请求 | post == 发送表单
http版本:1.0 1.1 2.0
1.1 默认启动长链接

【数据库】
sql执行流程
1、验证器 -- 权限验证
2、分析器 -- 词法分析
3、优化器 -- 选择索引
4、执行器 --

引擎
innodb -- 支持事务,支持行锁
myisAM --
两者对比

什么是事务?
ACID:原子性、一致性、隔离性、持续性
原子性主要依赖 undolog

隔离性:事务执行过程中,其他事务对数据的更改对该事务的可见性
读未提交、读提交、可重复、串行化
读提交 + 可重复 -- MVCC
串行化 -- 加锁

持久性 -- redolog

redolog + binlog 配合 两阶段提交

binlog 的格式有几种?
MVCC -- 如何实现?

索引背后的数据结构? B+树
索引分为哪几类?聚合索引、非聚合索引
如何设置?为什么要这么设置?
索引优化的手段还有哪些?

【Redis】
哪几个类型的数据类型?
用Redis用来做什么的?redis 实现分布式锁 setux
redis 支持事务?为什么不支持事务的原子性?

部署在多个集群上,你们是通过什么方式来访问集群的?

rpc的框架? -- remote process call 就像本地一样调用方法
一次调用的流程?
消费者
生产者暴露rpc接口
client 调用 映射成为一个call id,将参数序列化,二进制发送给服务端,等待服务器返回结果

序列化、反序列协议?
什么是序列化? Java对象可以脱离程序的运行,而独立存在。
dubbo的序列化方式:
fastjson、protoBuf、Kryo(大数据领域)

git、maven
git 是什么?
svn -- 中心服务器的概念
working tree -- stage -- 版本序列中
reset、revert 的区别

maven的生命周期
validate -- 验证项目
compile
test
package

A B C 项目之间如何传递?

posted @   spongie  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示