- 博客(8)
- 收藏
- 关注
原创 2020-12-31
spring中@Bean小知识对于被标记为@Bean的方法,在spring容器初始化注入后,在后续直接调用的时候会直接返回容器中的Java bean,不会重新生成对象debug结果,configureTask方法调用taskExecutor并没有进入该方法,而是直接取到了容器中的ConcurrentTaskScheduler这个对象...
2020-12-31 09:32:53
114
1
原创 可重入锁浅谈
锁是应对并发问题的一种解决方案,那可重入锁又是什么概念呢?这里提到一个锁的实现类ReentrantLock。顾名思义,可重入。其实并非啥高大上的东西,最简单的实现锁一种方式,关键字synchronize,其实也是一种可重入锁。可这里的重入是指的什么,我们一起来探讨一下。ReentrantLock获取锁的方法,内部调用sync.lock()方法。我们再一起看下这个方法,其实是ReentrantLock内部类Sync的是个抽象方法。继承Sync的内部类FairSync和NonFair
2020-07-09 10:29:18
250
原创 ThreadLocal造成的内存泄漏
在多线程中为了避免线程安全问题,常用的一种方式就是引入ThreadLocal变量,为何这种方式会引发线程安全问题呢? 首先我们来看一下ThreadLocal是如何实现保存线程私有变量的原理:ThreadLocal里面定义了一个内部类ThreadLocalMapstatic class ThreadLocalMap { /** * The entries in this hash map extend WeakReference, using * ...
2020-07-07 23:27:42
372
原创 JwtToken
public class JwtTokenUtil { // 寻找证书文件 private static InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("jwt.jks"); // 寻找证书文件 private static PrivateKey privateKey = null; private static PublicKey ...
2020-05-11 13:58:41
223
转载 并发插入
引用:https://my.oschina.net/zhanglikun/blog/861474大并发场景中,写入数据库操作经常遇到的一个问题是重复数据插入问题。假设接口服务接收到三个插入数据请求,实际三个请求要插入的数据是同一份数据(部分核心字段构造惟一条件),这个时候常规做法很难保证数据不重复插入。常规做法是,插入数据之前,查询数据库,判断数据是否存在,不存在则插入。 ...
2020-04-09 15:37:34
1281
转载 volatile相关
. hsdis通过 hsdis 可以查看 Java 编译后的机器指令。 window 32/64 位,可以下载 hsdis-amd64.dll/hsdis-i386.dll 下载后拷贝至 $JAVA_HOME\jre\bin\server 目录下。 或者 linxu 下载 hsdis-amd64.so。 下载后拷贝至 $JAVA_HOME/jre/lib/amd64/s...
2020-01-10 16:18:41
284
原创 ElasticSearch简介
终于有人把Elasticsearch原理讲透了!(复制粘贴)小史是一个非科班的程序员,虽然学的是电子专业,但是通过自己的努力成功通过了面试,现在要开始迎接新生活了。小史是一个非科班的程序员,虽然学的是电子专业,但是通过自己的努力成功通过了面试,现在要开始迎接新生活了。随着央视诗词大会的热播,小史开始对诗词感兴趣,最喜欢的就是飞花令的环节。但是由于小史很久没有背过诗词了,飞一个字...
2019-12-16 15:12:23
250
转载 Linux下tomcat安装
目前有很多网站使用jsp的程序编写,所以解析jsp的程序就必须要有相关的软件来完成。Tomcat就是用来解析jsp程序的一个软件,Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的...
2018-09-11 14:14:54
210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人