摘要: 我们继续接上篇,本篇是对unlock方法的跟踪解析。 调用lock.unlock(); 进入后发现,还是使用了sync对象的方法,上篇中以及说明了,sync实际上是对于AQS的一种实现,实现一部分AQS提供的抽象方法。 我们进入release方法看看 我们能看到,进入后,传递的参数是一,这个是加锁的 阅读全文
posted @ 2020-07-26 11:03 WildY 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 1.强引用 jvm在进行GC的时候,也不会去删除具有强引用的内存,即使内存以及不够用了,如果强引用的对象过多,超出了JVM的大小,那么就会发生内存溢出异常。 例如,Object obj = new Object() 就是一个强引用。 2.软引用 JVM在GC的时候,不会优先去删除只被软引用的对象,只 阅读全文
posted @ 2020-07-26 10:29 WildY 阅读(120) 评论(0) 推荐(0) 编辑
摘要: ReentrantLock 锁 加锁和解锁 我们从常用的lock方法,为入口,来阅读一下lock方法,实际上在源码中执行的过程。 进入方法中,我们看到调用的是sync.lock()方法 首先,我们来看看sync这个是一个什么类 从这里我们可以看出他是一个抽象类,而且是继承了AQS类,我们进入 Abs 阅读全文
posted @ 2020-07-24 18:01 WildY 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 今天在研究redis集群的时候发现了一个redis的快照缓存机制。 如果通过kill -9 命令删除的redis进程,是不会保存数据到快照文件的。 通过kill命令重启后 测试的那个key已经消失了。 只有通过redis本身的shutdown命令,或者在运行的是时候使用 bgsave 命令 (新开一 阅读全文
posted @ 2020-02-25 16:02 WildY 阅读(1978) 评论(0) 推荐(0) 编辑
摘要: 因为公司的项目需要一个新开发的单点登录系统,以前从没有接触过登录安全方面的,然后最近这段时间充电学习使用Oauth2.0完成登录和授权,也是在学习完成之后项目搭建好之后写了这篇博客,用来记录学习的收获。 Oauth2.0协议,相信有需要使用的小伙伴们都已经了解过了,我就不赘述了,下面直接开始单点登录 阅读全文
posted @ 2018-11-21 16:59 WildY 阅读(1440) 评论(0) 推荐(0) 编辑
摘要: JVM就是java虚拟机,我们可以将他理解为一个操作系统,在windows和linux中,都会有不同的JVM因为这样,突出了java的一个重要特点,跨平台性。 一、栈 jvm中,栈用于储存局部变量,对象的引用和方法中计算过程的数据,在退出方法后,就会清除,存储速度对比堆快得多,只比计算机的寄存器要慢 阅读全文
posted @ 2018-10-10 15:19 WildY 阅读(388) 评论(0) 推荐(0) 编辑
摘要: Java8 Lambda表达式和Stream学习 lambda表达式和Stream是Java8的新特性,这次分享一下我在学习lambda表达式和Stream的收获。 这是这次测试用的Entity: 这是测试实体类使用的数据: 下面是简单的使用lambda表达式对集合进行的一个简单的排序。 p1和p2 阅读全文
posted @ 2018-09-12 13:54 WildY 阅读(293) 评论(0) 推荐(0) 编辑