1. 先简单解释 JMM 和变量访问路径“在 Java 中,变量的访问遵循 Java 内存模型(JMM)。线程不会直接操作主内存中的变量,而是先将变量 load 到自己的工作内存中操作,最后 store 回主内存。” 2. 区分单线程 vs 多线程情境...
阅读全文...
Java多线程总结 | Chapter 2:synchronized
参考小林codingHome JavaGuideJava 面试指南Synchronized原理首先要介绍一下Object对象锁。在Java中,每个实例都有一个关联的Monitor锁。当线程进入synchronized代码块时,会尝试获取Object对应的...
阅读全文...
阅读全文...
Java多线程总结 | Chapter 1:线程基础概览
参考小林coding Home线程安全在三个方面的体现原子性:一个或一组操作要么全部执行成功,要么全部不执行一致性:多个线程访问共享变量,保证所有线程看到的值是一致的。有序性:程序必须按照代码顺序执行线程创建的方式继承Thread类实现Runnable接...
阅读全文...
阅读全文...
LRU缓存实现以及哨兵节点
LRU缓存LRU算法,即最近最久未使用算法,广泛应用于内存管理之中,在MySQL,Redis,操作系统的内存淘汰策略中均有它的影子。该算法通过双向链表+哈希表实现。当我们访问某个节点的时候,先看链表中是否存在该节点,如果存在,将该节点移动到链表首部,并更...
阅读全文...
阅读全文...
抽象类与抽象方法在模板方法模式中的应用
抽象类与抽象方法抽象类可以没有抽象方法,但是有抽象方法的类一定是抽象类,抽象类是不能new的。当一个类继承抽象类,必须重写父类中的所有抽象方法,否则无法被实例化,除非该类也是抽象类。在模板方法模式中的应用使用抽象类,定义抽象方法,从而达成对子类的约束。p...
阅读全文...
阅读全文...
Java `synchronized` 机制详解:实例锁与类锁,普通方法锁与静态方法锁的区别
synchronized锁实例class Dog {
public void bark() {
synchronized(this) {
System.out.println(Thread.currentT...
阅读全文...
阅读全文...
云服务器安装MinIO搭建私人存储服务
关于软件安装的前置知识1. 官方仓库中的软件包如果你想安装的软件包已经在你的 Linux 发行版的官方仓库中(例如 Ubuntu),你可以直接使用以下命令:sudo apt install <软件包名>这会自动从官方仓库下载安装和安装该软件包...
阅读全文...
阅读全文...