努力补齐进入瓶颈期的破洞
————一个尚未脱离低级趣味,喜好毒鸡汤的人
AQS同步器原理 AQS同步器原理
总所周知,java是支持多线程的.在多线程情况下,可能会出现多个线程同时访问同一个共享,可变资源的情况;这种资源可能是:对象,变量,文件等.共享:资源可以由多个线程同时访问可变:资源可以在其生命周期内被修改 为什么需要同步器先来个栗子
spring如何getBean spring如何getBean
spring总是有一种神奇的魔力,让人想要去探究他到底是做了什么. 提前搭建好工程 不要选择Spring Initializr, 那是使用SpringBoot的,不利于学习使用. 一路下一步, 填写项目名称, finish. 可以看到,
SpringBoot(二) SpringBoot如何实现自动配置 SpringBoot(二) SpringBoot如何实现自动配置
springboot也用了很久了,用的时候只知道他很好用,不需要再额外的配置乱七八糟的东西,那么到底是怎么做到的呢?以前我只会回答:SpringBoot中已经帮助我们配置了.现在回过来看看这个问题, 配置千奇百怪,SpringBoot是怎么
springIOC springIOC
以前学习spring的时候总是说spring的特点是IOC和AOP,那具体是什么呢?要是让我回答,我可能只知道IOC是一个管理bean的容器,需要使用bean的时候可以由IOC容器自动注入.现在想想,通俗一点说: 我想要吃一些水果,因此有了
volatile如何实现有序性 volatile如何实现有序性
之前在java内存模型中提到过volatile,这次更深入一些探究一些volatile到底是怎么实现有序性. 我们分成五个部分来看 java源码 ByteCode字节码 JVM虚拟机规范 JVM虚拟机实现 CPU级别 字节码源码中使用
redis核心数据结构 redis核心数据结构
之前项目中使用redis就是很简单的将值以键值对的形式放进去,顶多设个过期时间.现在去看了一下redis实际上也提供了很多有用的功能,学习一下以备以后用得上. redis数据结构stringstring就是平常用的键值对,没有太多好说的,很
HashMap HashMap
HashMap先贴一张从网上偷来的图 HashMap核心数据结构Hash表 = 数组 + 线性链表 + 红黑树 为什么初始容量是2的指数幂?如果创建HashMap时指定的大小不是2的指数就会报错吗? Map map = new HashMa
并发 并发
并发控制在java里,同步控制怎么做?加锁. 专业术语叫同步器 synchronize(基于JVM底层,基于C++, 底层行为不可控) AbstractQueueSynchronizer(不利用任何JVM内置锁), 基于java可变行为去
JAVA内存模型 JAVA内存模型
JMM java内存模型多核CPU并发缓存架构CPU和主存之间会有高速缓存,这个缓存速度非常快,空间也非常小.在使用时,先把数据从主存存放到高速缓存,CPU使用时主要和高速缓存做交互. JAVA线程内存模型JAVA的线程内存模型跟CPU缓存
String.contains()的实现 String.contains()的实现
前段时间有一个需求是, 有一个二进制文件, 在二进制文件中有一段是一张png图片. 现在已经有png文件二进制文件头和文件尾, 需要做的是在读取的byte[]数组中查找到这个文件头和文件尾的位置,并截出这段数组. 思前想后也想不到什么好的方
3 / 4