面试题1111

一.jvm

1.JVM 的主要组成部分及组成部分的作用?

在这里插入图片描述

2.如何判断对象是否可以被回收?

  • 引用计数器法:为每个对象创建一个引用计数,有对象引用时计数器 +1,引用被释放时计数 -1,当计数器为 0 时就可以被回收。它的缺点是增加了时间和空间消耗以及不能解决循环引用的问题;
  • 可达性分析算法:从 GC Roots 开始向下搜索,搜索所走过的路径称为引用链。当一个对象到 GC Roots 没有任何引用链相连时,则证明此对象是可以被回收的。

3. JVM 有哪些垃圾回收算法

  • 标记-清除算法:标记有用对象,然后进行清除回收。缺点:效率不高,无法清除垃圾碎片。
  • 复制算法:按照容量划分二个大小相等的内存区域,当一块用完的时候将活着的对象复制到另一块上,然后再把已使用的内存空间一次清理掉。缺点:内存使用率不高,只有原来的一半,消耗内存。
  • 标记-整理算法:标记无用对象,让所有存活的对象都向一端移动,然后直接清除掉端边界以外的内存。
  • 分代算法:根据对象存活周期的不同将内存划分为几块,一般是新生代和老年代,新生代基本采用复制算法,老年代采用标记整理算法。

4.jvm调优指标

stw、吞吐量

5.说一下 JVM 有哪些垃圾回收器,你是怎么选的

在这里插入图片描述

6.说一下 JVM 调优的工具

在这里插入图片描述

7.string常量池相关

在这里插入图片描述

mysql

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
深分页为什么慢

程序事务失效可能原因

在这里插入图片描述
什么时候触发行锁,表锁
在这里插入图片描述

Mybatis在这里插入图片描述

什么是 SQLSessionFactory sqlsession

在这里插入图片描述

在这里插入图片描述
数据库操作日志优化

mybatis mapper接口可以重载吗?

nginx

在这里插入图片描述
nginx worker 数量如何配置

有基于nginx二次开发吗

在这里插入图片描述

mq

总结mq用途
在这里插入图片描述
在这里插入图片描述
幂等怎么做的
消息可靠投递怎么做的,2种方案
顺序消息怎么做的

rabbitmq 推送和拉取对怎么选?
springBoot rabbitmq template 这么配置

redis

在这里插入图片描述
在这里插入图片描述

redisTemplate 转 redisson 连接池的问题

在这里插入图片描述
redisson 分布式对象,哈希槽影响
在这里插入图片描述
在这里插入图片描述

同理es大数据量查询searchafter,游标

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Spring

在这里插入图片描述

在这里插入图片描述
spring源码中的设计模式

spring源码怎么看的?

spring容器启动提供了哪些扩展点,refresh方法开始说,哪些开源组件使用了这些扩展点

spring项目事务失效,排查?

循环依赖问题,构造依赖问题,Order注解

在这里插入图片描述

springBoot

starter定义

在这里插入图片描述

zk

在这里插入图片描述
临时节点实现机制

在这里插入图片描述
羊群效应?
zk为什么是奇数,挂一个会不会影响使用?

多线程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

sync锁升级,粗话

volatility,jmm
锁jvm层面的,操作系统层面的,
在这里插入图片描述
在这里插入图片描述
读写锁?写饥饿?StampedLock怎么回事
用过线程池吗?排查错误?

在这里插入图片描述

在这里插入图片描述
java8 和 7存到哪,可以继承的 inheritable ThreadLocal

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值