1.2k 字 1 分钟

# ThreadLocal 的原理是什么,使用场景有哪些 ThreadLocal 类中有两个变量 threadLocals 和 inheritableThreadLocals,二者都是 ThreadLocal 内部类 ThreadLocalMap 类型的变量,我们通过查看内部类 ThreadLocalMap 可以发现实际上它类似于一个 HashMap。在默认情况下,每个线程中的这两个变量都为 null: ThreadLocal.ThreadLocalMap threadLocals = null; ThreadLocal.ThreadLocalMap...
683 字 1 分钟

# ThreadLocal 有哪些内存泄露问题,如何避免 每个 Thread 都有一个 ThreadLocal.ThreadLocalMap 的 map,该 map 的 key 为 ThreadLocal 实例,它为一个弱引用,我们知道弱引用有利于 GC 回收。当 ThreadLocal 的 key == null 时,GC 就会回收这部分空间,但是 value 却不一定能够被回收,因为他还与 Current Thread 存在一个强引用关系,如下 由于存在这个强引用关系,会导致 value...
1.1k 字 1 分钟

# synchronized 和 lock 有哪些区别 来源: lock 是一个接口,而 synchronized 是 java 的一个关键字,synchronized 是内置的语言实现; 异常是否释放锁: synchronized 在发生异常时候会自动释放占有的锁,因此不会出现死锁;而 lock 发生异常时候,不会主动释放占有的锁,必须手动 unlock 来释放锁,可能引起死锁的发生。(所以最好将同步代码块用 try catch 包起来,finally 中写入 unlock,避免死锁的发生。) 是否响应中断 lock 等待锁过程中可以用 interrupt 来中断等待,而...
1.2k 字 1 分钟

# volatile 的可见性和禁止指令重排序怎么实现的 《深入理解 JAVA 虚拟机》中有如下描述: “观察加入 volatile 关键字和没有加入 volatile 关键字时所生成的汇编代码发现,加入 volatile 关键字时,会多出一个 lock 前缀指令” lock 前缀指令实际上相当于一个内存屏障(也成内存栅栏),内存屏障会提供 3 个功能: 它确保指令重排序时不会把其后面的指令排到内存屏障之前的位置,也不会把前面的指令排到内存屏障的后面;即在执行到内存屏障这句指令时,在它前面的操作已经全部完成; 它会强制将对缓存的修改操作立即写入主存; 如果是写操作,它会导致其他 CPU...
3.1k 字 3 分钟

# 创建线程有哪些方式 Java 可以用四种方式来创建线程,如下所示: 继承 Thread 类创建线程 实现 Runnable 接口创建线程 使用 Callable 和 Future 创建线程 使用线程池例如用 Executor 框架继承 Thread 类创建线程 下面让我们分别来看看这四种创建线程的方法。 通过继承 Thread 类来创建并启动多线程的一般步骤如下 定义 Thread 类的子类,并重写该类的 run () 方法,该方法的方法体就是线程需要完成的任务,run () 方法也称为线程执行体。 创建 Thread...
1k 字 1 分钟

# 程序开多少线程合适 # 为什么要找最佳线程数 1. 过多的线程只会造成,更多的内存开销,更多的 CPU 开销,但是对提升 QPS 确毫无帮助 2. 使用多线程就是在正确的场景下通过设置正确个数的线程来充分的利用 CPU 和 I/O 最大化程序的运行速度。 # 从两个方面和分析: CPU 密集型程序 I/O 密集型程序 CPU 密集型程序,一个完整请求,I/O 操作可以在很短时间内完成,CPU 还有很多运算要处理,也就是说 CPU 计算的比例占很大一部分,线程等待时间接近 0 单核 CPU: 一个完整请求,I/O 操作可以在很短时间内完成, CPU 还有很多运算要处理,也就是说...
763 字 1 分钟

# Java 类加载器有哪些 # Bootstrap 类加载器 启动类加载器主要加载的是 JVM 自身需要的类,这个类加载使用 C++ 语言实现的,没有父类,是虚拟机自身的一部分,它负责将 <JAVA_HOME>/lib 路径下的核心类库或 **-Xbootclasspath 参数指定的路径下的 jar 包 ** 加载到内存中,注意必由于虚拟机是按照文件名识别加载 jar 包的,如 rt.jar,如果文件名不被虚拟机识别,即使把 jar 包丢到 lib 目录下也是没有作用的 (出于安全考虑,Bootstrap 启动类加载器只加载包名为 java、javax、sun...
261 字 1 分钟

# 系统介绍 Windows 11 专业版 无名杀官方下载链接 https://github.com/libccy/noname/releases/tag/chromium77-client 如果不会翻墙,可以直接下载该文件,但是最好还是去官方下载,以免作者夹带私货 Noname-win32-x64.zip 下载之后文件解压后的页面 双击 无名杀.exe 文件后,得到该页面 点击下载无名杀 下载成功后,自动进入页面,该页面是最原始,最纯净的页面,后面的特效需要添加扩展包 # 添加扩展包 未完成 已完成 三国杀十周年 手杀安装包 幻听铃音安装包 无名杀设置 # 注释
15k 字 14 分钟

# 毛泽东思想和中特色社会主义理论体系概论 # 导论 # 马克思主义中国化的三次飞跃 马克思主义中国化的时代内涵 1938 年,毛泽东在党的六届六中全会上作的题为《论新阶段》的政治报告中最先提出了 “马克思主义中国化” 这个命题。这是党首次明确提出 “马克思主义中国化”...
3.1k 字 3 分钟

# 中国近代史纲要 # 旧民主主义革命时期 # 进入近代后中华民族的磨难与抗争 鸦片战争前后的中国与世界 中国封建社会的衰落 世界资本主义的发展和殖民扩张 鸦片战争的爆发 近代中国社会的半殖民地半封建性质 近代中国的主要矛盾和历史任务 西方列强对中国的侵略 军事侵略 政治控制 经济掠夺 文化渗透 反抗外国武装侵略的斗争 抵御外来侵略的斗争历程 义和团运动 列强瓜分中国图谋的破产 反侵略战争的失败与民族意识的觉醒 反侵略战争的失败及其原因 民族意识的觉醒 #...