随笔分类 - java
摘要:管程 — Java同步的设计思想 管程:指的是管理共享变量以及对共享变量的操作过程,让他们支持并发。 互斥:同一时刻只允许一个线程访问共享资源; 同步:线程之间如何通信、协作。 MESA模型 在管程的发展史上,先后出现过三种不同的管程模型,分别是Hasen模型、Hoare模型和MESA模型。现在正在
阅读全文
摘要:了解CAS与使用 一、CAS 介绍 1.1 什么是 CAS 定义:CAS(Compare And Swap,比较与交换)是 CPU 硬件层面的原子指令,是无锁同步的实现原理,可看作乐观锁的一种实现方式。 核心逻辑:操作包含三个参数 ——内存值 V(目标变量的内存地址值)、预期值 E(线程认为变量应有
阅读全文
摘要:ThreadLocal原理与使用详解 一、ThreadLocal 介绍 1.1 定义与核心特性 定义:Java 官方文档描述,ThreadLocal 类用于提供线程内部的局部变量,多线程环境下通过 get() 和 set() 方法访问时,能保证各线程变量相对独立于其他线程变量,实例通常为 priva
阅读全文
摘要:Future相关并发类使用 目录Future相关并发类使用一、Callable&Future&FutureTask 详解1. 基础组件对比:Runnable vs Callable2. Future 接口:任务管理工具3. FutureTask:Runnable 与 Future 的结合体4. Fu
阅读全文
摘要:基于JDK17的GC调优策略 一、JVM 参数分类(三类核心参数) JVM 参数按稳定性分为三类,不同类别对应不同使用场景和查看方式,具体如下表: 参数类别 标识符号 稳定性 查看命令 常用示例 标准参数 - 开头 所有 HotSpot 均支持,稳定 java -help 或 java -? --l
阅读全文
摘要:JDK17新特性梳理 一、为什么JDK17 生态强制升级: 业界长期 “你发任你发,我用 Java8”,但 Spring Framework 6.0+ 明确要求 Java 17+,Spring Boot 3.2+ 不仅要求 Java 17+,还需依赖 Spring Framework 6.1.1+,
阅读全文
摘要:JVM调优实战及常量池详解 一、阿里巴巴 Arthas 工具 Arthas 是 Alibaba 开源的 Java 诊断工具(支持 JDK6+),采用命令行交互,可快速定位线上问题,核心内容如下: 1. 下载与启动 # GitHub下载 wget https://alibaba.github.io/a
阅读全文
摘要:JVM调优工具详解及调优实战 目录JVM调优工具详解及调优实战一、JDK 自带核心调优工具1. jmap:内存信息与堆 dump 工具2. jstack:线程堆栈与死锁检测工具3. jinfo:JVM 参数查看工具4. jstat:GC 统计与运行预估工具(1)核心命令与指标含义(2)JVM 运行情
阅读全文
摘要:垃圾收集器G1&ZGC详解 一、G1 收集器(-XX:+UseG1GC) G1(Garbage-First)是面向多处理器、大内存的服务器级收集器,核心目标是可预测的 GC 停顿时间与高吞吐量平衡。 1. 核心特性 Region 划分:将 Java 堆划分为最多 2048 个大小相等的 Region
阅读全文
摘要:垃圾收集器ParNew&CMS与底层三色标记算法详解 一、垃圾收集算法:分代理论下的三大核心实现 分代收集理论是基础,核心逻辑是按对象存活周期将堆分为新生代(存活短)和老年代(存活长),针对不同年代选择效率最优的算法。 算法名称 核心逻辑 适用年代 优点 缺点 复制算法 内存分为大小相等两块,用满一
阅读全文
摘要:JVM对象创建与内存分配 一、对象创建流程 对象创建需依次执行以下 5 个核心步骤,确保对象从 “指令触发” 到 “可用状态” 的完整生命周期: 类加载检查 触发条件:虚拟机遇到new 指令(对应语言层面的new关键词、对象克隆、对象序列化)。 检查内容: 定位常量池中该类的符号引用。 验证该符号引
阅读全文
摘要:深入了解一波JVM内存模型 JDK体系结构与跨平台特性介绍 通过官方的结构图看出,JVM提供底层的平台支持,JRE提供运行环境所必须的类,在这个基础上去跑我们的java程序。JVM为我们屏蔽了操作系统的差异性,使java程序得以跨平台执行。 JVM内存模型深度剖析 梳理一下过程 类加载子系统将类加进
阅读全文
摘要:了解java类加载机制与双亲委派 一、JDK8 类加载机制基础梳理 1. JDK8 类加载体系 核心层级:JDK8 类加载器通过 “parent 属性” 形成父子关系,自上而下为: protected Class<?> loadClass(String name, boolean resolve)
阅读全文
摘要:简单理解java虚拟机 一、学习 JVM 的核心意义 面试刚需:避免依赖死记硬背 “面试八股”,从底层理解问题本质(如 Integer 缓存、静态方法能否重写)。 基础支撑:明确代码执行逻辑,是编写高可靠性系统的前提;若不理解 JVM,无法判断代码在底层的运行机制。 调优基础:解决线上实际问题,如内
阅读全文
摘要:RocketMQ学习笔记 一、MQ简介 MQ定义 MQ:Message Queue,消息队列 Message:消息,不同进程之间传递的数据 Queue:队列,具有FIFO(先进先出)特性,用于缓存数据 广义上,只要能实现消息跨进程传输及队列数据缓存,都可称为消息队列 MQ的作用 异步 例子:快递员发
阅读全文
摘要:Redis基本数据类型 redis有五种基本数据结构,分别为:String(字符串)、List(列表)、Hash(哈希)、Set(集合)、Zset(有序集合) 除此之外还有,bitmap、Hyperloglog、Geo、Stream等类型 在shell中,我们可以通过Help命令,查看对应数据结构的
阅读全文
摘要:随着Web3技术的迅猛发展,去中心化应用(DApp)和区块链技术正深刻地改变着互联网的未来格局。对于拥有丰富后端经验的Java工程师而言,把握Web3的浪潮,将其成熟的工程能力和庞大的生态体系优势应用于新兴的去中心化世界,不仅是技术视野的拓展,更是职业发展的重要机遇。本指南旨在为Java工程师量身打
阅读全文
摘要:MySQL 8.0 主从复制原理与流程 1. 基本概念 1.1 什么是主从复制 MySQL主从复制(Replication)是官方提供的主从同步方案,用于将一个MySQL实例的数据同步到另一个实例中。这是使用最广泛的容灾方案。 1.2 复制的优势 高可用性:通过配置一定的复制机制,MySQL实现了跨
阅读全文

浙公网安备 33010602011771号