摘要: idea控制台打印中文出现乱码 解决办法: -Dfile.encoding=UTF-8 阅读全文
posted @ 2022-08-27 18:23 金玉良猿 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 一、2PC 二阶段提交(Two-phaseCommit)是指,在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法(Algorithm)。通常,二阶段提交也被称为是一种协议(Protocol))。在分布式系统中,每个节点虽然可以知晓自己的操作时 阅读全文
posted @ 2022-08-21 10:35 金玉良猿 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 用intern();方法在test和main中结果不一样,很离奇 @Test public void test10(){ String s = new String("1"); s.intern(); String s2 = "1"; System.out.println(s == s2); Str 阅读全文
posted @ 2022-07-31 08:42 金玉良猿 阅读(52) 评论(0) 推荐(0) 编辑
摘要: synchronized实现同步的基础具体表现为以下三种形式: 对于普通同步方法,锁的是当前实例对象; 对于静态同步方法,锁的是当前类的Class对象; 对于同步方法块,锁的是synchronized括号里配置的对象。 底层实现原理: synchronized实现同步主要通过monitorenter 阅读全文
posted @ 2022-07-17 20:59 金玉良猿 阅读(366) 评论(0) 推荐(1) 编辑
摘要: 前言 在阿里Java开发手册1.7第6点中提到:必须回收自定义的ThreadLocal变量,尤其在线程池场景下,线程经常被反复用,如果不清理自定义的ThreadLocal变量,则可能会影响后续业务逻辑和造成内存泄漏等问题。尽量在代码中使用try-finally块回收。因此做了对ThreadLocal 阅读全文
posted @ 2022-06-26 18:30 金玉良猿 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 坑一:错误: 无效的源发行版:17 坑二:Process 'command 'D:/document/jdk-15.0.1/bin/java.exe'' finished with non-zero exit value 1 坑三:不会引依赖(引入其他模块) 我的环境:gradle-7.4.2,jd 阅读全文
posted @ 2022-06-19 15:51 金玉良猿 阅读(303) 评论(0) 推荐(0) 编辑
摘要: public class UserDefineClassLoader extends ClassLoader{ private String rootPath; public UserDefineClassLoader(String rootPath) { this.rootPath = rootP 阅读全文
posted @ 2022-06-19 14:42 金玉良猿 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 标题说的多线程与通常说的redis是单线程不一致,具体原因如下: Redis的3.X以前的版本是单线程的,4.X加入了异步删除,不是严格意义上的单线程,最新版本6.X告别了大家印象中的单线程,以全新多线程来解决问题; Redis是单线程主要是指Redis的网络IO和键值对读写是由一个线程来完成的,R 阅读全文
posted @ 2022-06-10 20:41 金玉良猿 阅读(650) 评论(0) 推荐(0) 编辑
摘要: AQS是用来构建锁或者其它同步器组件的重量级基础框架及整个JUC体系的基石,通过内置的FIFO队列来完成资源获取线程的排队工作,并通过一个int类变量表示持有锁的状态。 我将以ReentrantLock为切入点,阅读ASQ源码。 注:ReentrantLock默认是线程不安全的,当然也可以设置为线程 阅读全文
posted @ 2022-06-04 19:46 金玉良猿 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 第一种方法,将SimpleDateFormat定义为静态方法,但是在多线程的环境下回出现错误,如下: 根据源码分析我们得知 SimpleDateFormat类内部有一个Calendar对象引用,它用来储存和这个SimpleDateFormat相关的日期信息,例如sdf.parse(dateStr), 阅读全文
posted @ 2022-05-30 11:31 金玉良猿 阅读(30) 评论(0) 推荐(0) 编辑