logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Java 内存模型(JMM)- final 关键字与内存屏障

特性finalvolatile主要目的安全发布对象(保证构造后字段可见)跨线程可见性及禁止重排序适用场景不可变对象、只读配置状态标志、轻量级同步内存屏障构造函数返回前插入 StoreStorevolatile 写前后插入多种屏障对复合操作不涉及不保证原子性重排序限制禁止 final 写与引用赋值的重排序限制更广,涉及读写。

#java
Java 内存模型(JMM)- synchronized 与内存屏障

特性volatile原子性保证代码块内操作原子不保证(仅单次读写原子)可见性释放锁时刷新内存;获取锁时重载写后立即刷新;读前重新加载有序性锁内代码不会与锁外重排禁止特定重排序使用粒度方法或代码块(可多个变量)单个变量(字段)是否阻塞可能阻塞(重量级锁时)不阻塞,无上下文切换性能有锁升级优化,但竞争时仍较重非常轻量(仅加入内存屏障)适用场景复合操作、需要原子性状态标志、一次性安全发布(如 DCL)

#java
Java 内存模型(JMM)- 内存屏障

StoreStore:保证屏障前的写先于屏障后的写,用于 volatile 写前。StoreLoad:最强屏障,保证写后读的可见性和顺序,用于 volatile 写后。另外还有LoadLoad和LoadStore,用于 volatile 读后。不同 CPU 架构对这些屏障的实际实现不同(x86 只有 StoreLoad 需要显式指令)。

#java
Java 异常 - 基础

从生活类比开始,逐步过渡到 Java 代码、类型体系、异常处理规则,最后再简单提底层原理你可以创建自己的异常类,通常继承Exception(受检)或(非受检)。// 自定义受检异常// 使用throw new MyBusinessException("业务出错啦");编译器会扫描代码,如果某个方法可能抛出受检异常却没有被捕获或声明,就报错。这是 Java 的设计理念:强制程序员考虑错误处理。程序运

#java
Java 内存模型(JMM)- happens-before 与内存屏障

概念抽象层面实现层面JMM 定义的可见性与顺序规则volatile 写规则对 volatile 写 happens-before 后续读StoreStore + StoreLoad 屏障volatile 读规则LoadLoad + LoadStore 屏障最终保证跨线程的可见性和禁止特定重排序具体 CPU 指令(x86: lock 前缀) + 缓存一致性协议(MESI)

#java
百万级excel数据按顺序导入MySql - Java实现-多线程

分配给不同线程,每个线程独立处理自己范围内的数据,并严格按行号递增的顺序批量插入。这种方式理论上可以保证物理存储的连续性,但实现复杂,且多线程并发插入同一张表时,由于 InnoDB 的间隙锁和自增锁机制,反而可能产生锁竞争,性能不如序号列方案。不连续(比如线程1插入 1-1000,线程2插入 1001-2000,但实际可能交错),物理存储会有页分裂,但逻辑顺序依然由。这样,多线程的并发插入不会破坏

#mysql#java
Java 类加载机制详解

Override// 从自定义路径(如文件、网络)读取字节码// ...阶段主要动作发生时机加载 (Loading)获取二进制流 → 方法区存类信息 → 堆中生成 Class 对象类首次被主动引用时验证 (Verification)检查格式、语义、符号引用等紧随加载之后准备 (Preparation)为静态变量分配空间并设零值(常量直接赋值)验证之后解析 (Resolution)符号引用 → 直接

#java#jvm
Java线程池详解

线程池] 内部持有 Worker 线程(例如 3 个)// 阻塞拿任务// 执行│ Worker 2 │ ─── 同样循环↑│ 提交多个任务(R1,R2,R3...)││ 工作队列 │循环取任务 → 执行任务 → 再取任务。阻塞:队列为空时,线程要么阻塞(核心线程),要么等待超时后退出(非核心线程)。不创建新线程:执行task.run()时,并没有,而是直接用当前线程执行,所以不会产生额外的线程开

#java
Java 异常 - 实战注意点

异常处理放意外,正常流程用判断。性能可读两不误,莫把异常当 if 用。场景finally是否执行最终返回值来源try正常执行,无return是try之后的代码try正常执行,有return是(在return前)try中的return暂存值try异常,被catchcatch无return是catch之后的代码try异常,被catchcatch有return是(在return前)catch中的retu

#java
    共 22 条
  • 1
  • 2
  • 3
  • 请选择