09 2022 档案
摘要:#问题的提出 ##日期转换的问题 在多线程的环境下做日期转换很可能出现线程安全问题: 代码: @Slf4j(topic = "ch.UnchangeTest01") public class UnchangeTest01 { public static void main(String[] args
阅读全文
摘要:#缓存的基本思想 ##缓存的使用场景 1.DB缓存,减轻服务器的压力 在请求和数据库中的数据都较少且对数据访问的速度要求也不是很高的时候,我们可以让应用程序直接访问数据库来解决我们的需求。 但是,当应用程序的访问量越来越大,数据库的数据量越来越大时,由于数据库中的数据是存在硬盘上的,虽然有pool在
阅读全文
摘要:#概述 Unsafe对象提供了非常底层的操作内存和线程的方法,Unsafe对象不能直接调用,只能通过反射获得 #通过反射获得unsafe对象: //通过反射获得unsafe对象 public class UnsafeTest01 { public static void main(String[]
阅读全文
摘要:JUC并发包提供了AtomicBoolean,AtomicInteger类,AtomicInteger有下面的方法 AtomicInteger i = new AtomicInteger(0); // 获取并自增(i = 0, 结果 i = 1, 返回 0),类似于 i++ System.out.p
阅读全文
摘要:#一个小例子引入 import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; interface Account { Integer getBalance()
阅读全文
摘要:#Java内存模型 JMM指的是Java memory model,它定义了主存,工作内存等抽象概念,相当于做一个隔离层,将底层CPU寄存器,缓存,硬件内存,CPU指令优化提供的功能通过一个简单接口给使用者调用 JMM体现在以下几个方面: 原子性:保证指令不会受到线程上下文切换的影响 可见性:保证指
阅读全文