摘要:
1、Mysql的事务 ACID atomic :原子性,一堆sql要么一起成功要么一起失败 consistency :一致性,针对数据一致性来说的。就是一组SQL执行之前是正确的,执行之后数据也必须是准确的。 isolation : 隔离性,多个事务跑的时候不能互相干扰 durability : 持 阅读全文
摘要:
原子性: volatile不保证原子性,特例是保证32位系统中double和long类型 sychronized保证通过加锁的方式保证原子性,如下图: 硬件层面:由于计算机的存储设备和处理器的运算速度差距非常大,所以引入了高速缓存来作为内存和处理器之间的缓冲。画一下结构图:其中包含MESI协议和优化 阅读全文
摘要:
1、如果线上机器突然宕机,线程池的阻塞队列中的请求怎么办? 导致队列中积压的任务会丢失 解决 : 提交任务之前先在数据库里插入这个任务的信息,并标以状态比如 : 未提交、已提交、已完成。待机器重启后,使用一个后台线程扫描表中已提交和未提交的数据,进行重新提交 2、谈谈你对Java内存模型的理解 每条 阅读全文
摘要:
1、如何确保消息正确地发送至RabbitMQ? 两种解决方法: 通过事务机制 事务正常: 客户端发送Tx.Select,将信道置为事务模式 Broker回复Tx.Select-Ok,确认已将信道设置为事务模式 在发送完消息后,客户端发送Tx.Commit提交事务 Broker回复Tx.Commit- 阅读全文
摘要:
1、什么是消息中间件? 消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串、JSON等,也可以很复杂,比如内嵌对象。 消息队列中间件(Message Queue Middleware,简称MQ)是指利用高效可靠的消息传递机制进行与平台无关的数据交流。并基于数据通信来 阅读全文
摘要:
1、redis过期键删除? 定期删除 + 惰性删除 定期删除 :默认每隔100ms随机抽取一些设置了过期时间的key进行删除 惰性删除 :查询key的时候,懒惰的检查一下 2、内存淘汰机制? noeviction : 当内存不足以容纳新写入数据时,新写入数据会报错 allkeys-lru :移除最近 阅读全文
摘要:
/** * 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 * https://leetcode-cn.com/problems/integer-break/solution/zheng-shu-chai-fen-by-leetcode-so 阅读全文
摘要:
1、数据结构 ThreadLocal对象可以提供线程局部变量,每个线程Thread拥有一份自己的副本变量,多个线程互不干扰。 数据结构如下: Thread中存在threadLocals变量,类型是ThreadLocal.ThreadLocalMap ThreadLocal.ThreadLocalMa 阅读全文
摘要:
1、可达性分析算法 通过一系列称为GC Roots的根对象作为起始节点集,根据引用关系向下搜索,搜索走过的路径叫做引用链,如果某个对象到GC Roots节点集没有任何的引用链也被称为不可达,则证明这个对象不可能再被使用。 可作为GC Roots根节点的: 在虚拟机栈(栈帧中的本地变量表)中引用的对象 阅读全文
摘要:
import java.util.LinkedList; import java.util.Queue; /** * 给定一个二叉树,找出其最大深度。 * <p> * 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 * <p> * 说明: 叶子节点是指没有子节点的节点。 * <p> * 示 阅读全文