logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

uniapp全局数据(全局url、全局openId)

uniapp全局数据(全局url、全局openId)

文章图片
#uni-app#vue.js#javascript
JVM 内存结构详解

十二、双亲委派机制。

#jvm#java
Java IO流之BIO

可以理解为:数据传输的管道文件 → JVM程序属于输入流JVM程序 → 文件属于输出流BIO = Blocking I/O 同步阻塞 IO同步:读写操作顺序执行,做完一件才做下一件阻塞:线程调用时,没有数据就一直卡死等待,不释放线程JDK1.4 之前唯一 IO 模型,传统文件 IO、老式 Socket 通信都是 BIO传统网络 BIO 服务端,一个客户端连接对应一个独立线程BIO是最基础的 IO

#java#开发语言
JMM 进阶:彻底理解 volatile 实现原理

volatilevolatile 是 Java 轻量级同步关键字,依靠内存屏障实现:保证可见性、禁止特定重排序、不保证原子它只解决多线程并发的可见性、重排序问题,不解决原子性、线程互斥问题volatile本质:1、通过内存屏障禁止特定指令重排序2、通过缓存一致性协议保证可见性3、不保证原子性4、适用于单写多读场景5、DCL单例必须使用volatile现代 CPU 为了提升执行效率,会进行大量优化a

#java#开发语言
Java String 全面解析:从源码到常量池,再到面试高频题

"abc"→ 常量池new String("abc")→ 堆a + b→ 堆读取文件/配置/DB→ 堆常量池对象 == 常量池对象 → true堆对象 == 常量池对象→ false堆对象 == 堆对象→ false常量池 = 字符串缓存,用来复用对象双引号字面量自动进池new / 拼接 / 读取 → 不进池intern () 手动把堆字符串丢进池。

#java#开发语言
Java日志框架和使用、日志记录规范

Slf4jlog.info("日志打印");Java 日志框架的核心价值,不只是“输出内容”,而是帮助我们在开发、测试、上线、运维整个生命周期里快速理解系统发生了什么。正式项目不要依赖 System.out.println(),而要使用日志框架。推荐面向 SLF4J 编码,底层常用 Logback 或 Log4j2。合理区分 debug、info、warn、error。日志要带关键业务上下文,比如

#java#开发语言
SpringBoot 项目使用 Jasypt 实现配置文件敏感信息加密

在实际项目开发中,配置文件(如)会存放数据库密码、Redis 密码、第三方接口密钥等。如果直接明文存储,一旦配置文件泄露,会带来严重的安全风险Jasypt(Java Simplified Encryption)是一款轻量级的 Java 加密工具,能完美集成 Spring Boot,,即可实现配置文件敏感信息的加密与自动解密。

#spring boot#后端#java
JVM进阶系列:彻底理解 Java 内存模型(JMM)

目录一、什么是 JMM二、为什么需要 JMM1. CPU缓存导致可见性问题2. 指令重排序导致有序性问题3. 线程切换导致原子性问题4、小结5、JMM的本质三、JMM 的核心抽象模型主内存(Main Memory)工作内存(Working Memory)四、JMM 引发的三大并发问题1. 可见性问题2. 原子性问题3. 有序性问题五、JMM 如何解决这些问题六、Happens-Before 规则七

#java#开发语言
Java 并发编程进阶:ReentrantLock 实现原理详解

在 Java 并发编程中,最常见的加锁方式莫过于 synchronizedsynchronized 使用简单,并且由 JVM 保证锁的获取与释放,是 Java 中最基础的线程同步机制不过随着并发场景越来越复杂,synchronized 的局限性也逐渐显现出来:无法尝试获取锁无法设置获取锁超时时间无法中断等待锁的线程不支持公平锁只能使用单一条件队列。

#java#开发语言
    共 21 条
  • 1
  • 2
  • 3
  • 请选择