02 2019 档案
摘要:代码: public class HeapTest { private static final int _1M = 1024 * 1024; public static void main(String[] args) throws InterruptedException { System.gc
阅读全文
摘要:CMS垃圾回收机制 简介 Concurrent Mark Sweep,是一款基于并发、使用标记清除算法的垃圾回收算法,只针对老年代进行垃圾回收。CMS收集器工作时,GC工作线程和用户线程可以并发执行,以达到降低STW时间的目的。 开起VM选项-XX:+UseConcMarkSweepGC,表示对老年
阅读全文
摘要:找不到符号异常 在控制台项目中配置Lombok 编译会报错 解决 方法: 父类字段ToString不了 测试: Output: 可以明显发现,School类里面的字段都没有toString,并且equals还是相等的。 解决: 输出; 其实在上面的情况时,鼠标放在@Data上,会自动提示异常 @Eq
阅读全文
摘要:更新IDEA,是配置无缝对接 idea里面的配置文件主要就 ,`idea.properties` 不要更新idea自带的这两个文件,因为在更新IntelliJ IDEA时会替换它。 此外,在macOS的情况下,编辑 文件会违反应用程序签名。 解决方法: 1.可以将配置放在 "IDEA配置目录" ,然
阅读全文
摘要:FIFO算法 FIFO 算法是一种比较容易实现的算法。它的思想是先进先出(FIFO,队列),这是最简单、最公平的一种思想,即 如果一个数据是最先进入的,那么可以认为在将来它被访问的可能性很小。空间满的时候,最先进入的数据会被最早置换(淘汰)掉 。 FIFO 算法的描述:设计一种缓存结构,该结构在构造
阅读全文
摘要:用户定义的变量(前缀为@): 您可以访问任何用户定义的变量,而无需声明或初始化它。如果引用尚未初始化的变量,则其值为 和字符串类型。 set赋值: select赋值: 或者 select使用:=也可以实现赋值 用户定义的变量是特定于会话的。也就是说,其他客户端无法看到或使用由一个客户端定义的用户变量
阅读全文
摘要:缓存穿透,并发,雪崩,热点 缓存穿透 概念 查询一个根本不存在的数据,缓存层和存储层都不会命中,但是出于容错的考虑,如果从存储层查不到数据则不写入缓存层。 缓存穿透将导致不存在的数据每次请求都要到存储层去查询,失去了缓存保护后端存储的意义。 解决方案: 业务校验拦截 接口增加业务层级的Filter,
阅读全文
摘要:setnx命令 将 key 的值设为 value,当且仅当 key 不存在。 若给定的 key 已经存在,则 SETNX 不做任何动作。 SETNX 是SET if Not eXists的简写。 getset命令 将键 的值设为 , 并返回键 在被设置之前的旧值。 返回给定键 的旧值。 如果键 没有
阅读全文
摘要:Java Volatile关键字 以及long,double在多线程中的应用 概念: volatile关键字,官方解释:volatile可以保证可见性、顺序性、一致性。 可见性:volatile修饰的对象在加载时会告知JVM,对象在CPU的缓存上对多个线程是同时可见的。 顺序性:这里有JVM的内存屏
阅读全文
摘要:[TOC] Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对 数据传输的总称或抽象 。即数据在两设备间的传输称为流, 流的本质是数据传输 ,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据
阅读全文