Java面试
文章平均质量分 90
松柏123
这个作者很懒,什么都没留下…
展开
-
⛳ MVCC 原理详解
事务,由一个有限的数据库操作序列构成,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。假如 A 转账给 B 100 元,先从 A 的账户里扣除 100 元,再在 B 的账户上加上 100 元。如果扣完 A 的 100 元后,还没来得及给 B 加上,银行系统异常了,最后导致 A 的余额减少了,B 的余额却没有增加。所以就需要事务,将 A 的钱回滚回去,就是这么简单。为什么要有事务呢?就是为了保证数据的最终一致性。MVCC 是 写时复制(copy on writer)思想的一种体现。原创 2023-09-06 20:26:35 · 600 阅读 · 0 评论 -
⛳ 面试题-单例模式会存在线程安全问题吗?
单例模式是 Java 中常用的设计模式之一,属于设计模式三大类中的创建型模式。在运行期间,保证某个类仅有一个实例,并提供一个访问它的全局访问点。单例模式所属类的构造方法是私有的,所以单例类是不能被继承的。实现线程安全的单例模式有以下几种方式有:饿汉式、懒汉式、懒汉式改良版(双重同步锁),内部静态类、枚举;相比于饿汉式,懒汉式显得没那么 “饿”,在真正需要的时候在去创建实例。优点:线程安全的,可以延时加载。缺点:调用效率不高(有锁,且需要先创建对象)、使用反射,序列化创建对象依然可以不是单例的。原创 2023-08-31 13:13:17 · 1055 阅读 · 0 评论 -
⛳ 多线程面试-什么是多线程上下文切换?
多线程会共同使用一组计算机上的CPU ,而线程数大于给线程分配的 CPU 数量时,为了让各个线程都有执行的机会,就需要轮转使用CPU。不同的线程切换使用 CPU, 发生的切换数据等, 就是上下文切换在上下文切换过程中, CPU 会停止处理当前运行的程序, 并保存当前程序运行的具体位置, 以便之后继续运行. 从这个角度来看, 上下文切换有点像我们同时阅读几本书, 在来回切换书本的同时我们需要记住每本书当前读到的页码. 在程序中, 上下文切换过程中的 “页码” 信息是保存在进程控制块(PCB)中的。原创 2023-08-05 10:41:09 · 390 阅读 · 0 评论