顺丰科技java面经准备

文章目录

1.final修饰类,变量方法后的作用

final修饰类表示不能被继承,修饰方法表示不能被子类重写,修饰变量表示一旦赋值不能再被修改。其中基本类型不能被修改,引用类型的地址不能被修改,但是内容可变。

2.Spring事务失效的场景有哪些

1.方法内部捕获并处理了异常,没有将异常抛出,会导致事务失效

2.方法抛出检查异常,但是@Transcation注解上配置的rollbackFor属性为Exception,那么异常发生时事务可能不会回滚

3.注解的方法不是public修饰,也可能会导致事务失效

3.一个事务直接调用另一个事务会不会导致事务失效

spring事务默认通过代理实现,内部方法的调用不会经过代理对象,导致事务失效。可以通过AopContext调用代理对象的方法

4.事务的传播行为有哪些?

事务的传播行为指的是一个事务被另一个事务调用时的处理方式。默认时存在事务就加入,不存在就新建一个。requires_new表示无论外部是否有事务,自己都新建一个。nested表示再外层事务种创建一个嵌套事务,支持部分回滚

5.最左匹配原则是什么?

mysql使用联合索引的时候,要按顺序从最左边开始匹配,如果没有按照要求就会导致索引失效

6.String类型为什么不可变

内部的char\[\]和类都被final修饰,并且没有对外部提供setter方法

7.hashmap的原理

hashmap底层是数组+链表+红黑树。通过key的hashcode定位数组下标

当发生哈希冲突的时候,用链表或者红黑树解决。当链表长度大于8且数组容量超过64的时候,链表会转换成红黑树。

默认初始容量是16,负载因子0.75,超过阈值扩容到原来的两倍

8.innodb和myisam的区别

innodb和myisam的最大区别在于Innodb支持事务行级锁和外面,myisam不行,适合高并发的读写。myisam适合读多写少的场景

9.sql优化,非聚簇索引,聚簇索引,回表,联合索引,redolog日志,undolog日志

SQL 优化本质上是减少 I/O 和锁竞争:聚簇索引加快主键查询,非聚簇索引快速定位行但可能回表,联合索引可以覆盖多列查询;redo log 用于事务持久化,undo log 用于事务回滚。合理设计索引和控制事务可以显著提升 SQL 性能

10.垃圾回收器了解吗?选一个最熟悉的说一下

串行垃圾回收器:一个线程进行垃圾回收

并行垃圾回收器:多个线程进行垃圾回收

并发垃圾回收器(CMS):一部分线程执行业务,一部分垃圾回收。

流程是:并发标记,重新标记(解决错标问题),并发清理

G1垃圾回收期:G1 垃圾回收器通过将堆划分为若干等大小的 Region,并保留年轻代、幸存者区和老年代的概念,但这些区域不再是物理连续的。当某块区域被年轻代使用时,它就是年轻代,回收后又可以被老年代使用,这样堆空间更加灵活,也避免了扫描整个堆,提高了大内存支持能力。G1 支持用户设置期望的 STW 停顿时间,它会根据设定的时间对需要回收的区域进行价值排序,优先回收垃圾最多的区域,从而尽量接近目标停顿时间。如果停顿时间设置过低,回收的垃圾区域不够,会导致 GC 频繁触发,从而吞吐量下降。此外,G1 对区域间的垃圾采用复制算法整理碎片,大对象则单独存放在 humongous 区,位置固定,避免了老年代回收时频繁移动大对象,提高回收效率,同时兼顾停顿时间和吞吐量

11.什么是三色标记算法

三色标记算法通过将对象标记为白、灰、黑三种颜色,灰色对象需要继续扫描其引用,黑色对象表示已扫描且存活,白色对象表示不可达可回收。该算法支持增量和并发回收,同时能解决循环引用问题,是 JVM GC 标记阶段的核心算法。

可以解决CMS错标问题

相关推荐
Dovis(誓平步青云)1 分钟前
切换语言后按钮被截断,本地化审计怎样发现长度风险
开发语言·前端·javascript·人工智能·机器学习·华为·harmonyos
RuoyiOffice4 分钟前
UniApp企业办公:把审批、客户和项目装进手机,能做些什么?
spring boot·vue3·uniapp·crm·flowable·移动办公·企业应用
非凸科技8 分钟前
非凸科技助阵第51届ICPC亚洲区域赛
人工智能·科技
小王C语言9 分钟前
Qt常用控件:按钮类控件,普通按键、单选、复选
开发语言·qt
街头便衣12 分钟前
OpenRouter周榜复算:164万亿token,输出2.55%,DeepSeek账单占1.4%
android·java·开发语言·人工智能·语言模型·开源
LCD液晶屏14 分钟前
立煌科技代理京东方液晶屏的核心优势与应用价值
大数据·人工智能·科技
财税数字化16 分钟前
废纸回收反向开票如何实现五流合一合规?开灵科技、金蝶云·星空与银联商务方案对比
科技·发票管理·软件选型·数电发票·反向开票
mister_guo16 分钟前
Spring Boot 配置文件读取的几种方式:用法、原理与常见误区
java·spring boot
余槐i17 分钟前
虚拟线程上线后吞吐反而掉了:Spring Boot 3 里 synchronized 锁住载体线程的定位与修复
java·spring boot·性能优化·虚拟线程·jdk 21