首页
学习
活动
专区
工具
TVP
发布

琦小虾的Binary

专栏作者
125
文章
204584
阅读量
46
订阅数
JVM技术总结之六——JVM的锁优化
由于需要限制不同的程序之间的访问能力,防止他们获取别的程序的内存数据,或者获取外围设备的数据,CPU 划分出两个权限等级:用户态和内核态。
剑影啸清寒
2020-07-20
4790
JVM技术总结之五——JVM逃逸分析
一个对象(或变量)在方法中处理完毕返回时,返回结果可能会被其他对象引用,或者全局引用,这种现象即为逃逸。或者可以说,一个对象指针被多个线程或方法引用时,该对象指针就是逃逸状态。
剑影啸清寒
2020-07-20
3150
JVM技术总结之三——类加载机制
Java 类的加载过程主要分为五步:加载、验证、准备、解析、初始化。其中验证、准备、解析可以合称为连接。此外,这五步的顺序并不是完全固定的,比如为了支持动态绑定,解析的过程可以放在初始化之后。类的加载过程如下图所示:
剑影啸清寒
2020-07-20
4390
Java并发技术总结之六——Java锁分类
《[死磕 java同步系列之ReentrantLock源码解析(一)——公平锁、非公平锁]》)
剑影啸清寒
2020-07-15
3440
Java并发技术总结之五——AQS
AQS (AbustactQueuedSynchronizer) 是 Java 提供的底层同步工具类,主要思想是用一个 int 类型的变量表示同步状态,以及一个双链表形式的同步队列,并提供了一系列的 CAS (Compare And Swap) 操作来管理这个同步状态。 AQS 的主要作用是为 Java 中的并发同步组件提供统一的底层支持,例如 ReentrantLock,CountDownLatch 就是基于 AQS 实现的,实现方法是通过继承 AQS 实现其模版方法,然后将子类作为同步组件的内部类。
剑影啸清寒
2020-07-15
3320
Java并发技术总结之一——Java线程池
注:1, 2, 3 步骤在 ThreadPoolExecutor # execute(Runnable command) 方法中;
剑影啸清寒
2020-07-15
4180
Java并发技术总结之二——ThreadLocal
ThreadLocal 用来保证规避多线程访问线程不安全的情况,每个线程访问自己的副本变量,这样就避免了对资源的抢占导致数据不一致的问题。
剑影啸清寒
2020-07-15
3190
Java并发技术总结之四——CAS
CAS (Compare And Swap),即比较并交换,是解决多线程并行情况下使用锁造成性能损耗的一种机制。在 JAVA 中,sun.misc.Unsafe 类提供了硬件级别的原子操作来实现 CAS。 java.util.concurrent 包下的大量类 (AtomicInteger, AtomicBoolean, AtomicLong, … )都使用了这个 Unsafe.java 类的 CAS 操作。至于 Unsafe.java 的具体实现这里就不讨论了。 CAS 本身是一种乐观锁的实现方式,在 Java 中的运用很多:
剑影啸清寒
2020-07-15
4080
数据库技术知识点总结之四——乐观锁与悲观锁
乐观锁本质上并不属于锁,它只是一种冲突检测机制,但被这样称呼的时间比较长,就被称为乐观锁。乐观锁允许并发的获取内容进行读写,但在提交的时候会进行并发控制。比如 A, B 同时获得了一个数据,而且都要对其进行处理,A 先提交了该条数据,B 后来也要提交该条数据,这时候乐观锁的策略检测到两者发生了冲突,便会拒绝 B 提交的内容,并抛出冲突,交给 B 进行处理。 乐观锁的处理策略,通常是版本控制,或者是时间戳控制(本质与前者相同)。对数据进行一个版本的记录,每次提交后都标上版本号。当提交时的版本号小于等于当前版本号,则抛出异常,待解决冲突后重新执行。 笔者看到这里,就想到了一个很常见的乐观锁——即笔者项目中使用的 SVN 源代码版本控制器。我和同事一起编辑同一个 java 文件,是被允许的,但如果我们两个人提交的内容有冲突,则 SVN 会提示我们冲突,并让我们决定如何解决冲突(采用谁的内容,或者如何合并内容),然后再提交(再提交就是将冲突抛出后再解决的过程)。
剑影啸清寒
2020-07-13
3640
Spring技术知识点总结之七——Spring的设计模式
接上篇《Spring技术知识点总结之六——Spring 事务传播等级》 七. SpringBean 的设计模式? 7.1 简单工厂(非23种设计模式中的一种) 参考地址:《【小家Spring】Spring的Bean定义注册中心BeanDefinitionRegistry详解》 实现方式:BeanFactory。 Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是在传入参数后创建,还是传入参数前创建,这个要根据具体情况来定。 实质:由一个工厂
剑影啸清寒
2020-07-10
3280
Tomcat技术知识点总结
一个 Tomcat 中有一个 Server,每个 Server 中至少有一个 Service。一个 Service 由至少一个 Connector 与一个 Container 组成。
剑影啸清寒
2020-07-10
5920
Spring技术知识点总结之五——Servlet 生命周期
Servlet 是 SUN 公司提供的一种用于开发动态 WEB 资源的技术,SUN 公司在其 API 中提供了一个 Servlet 接口。如果用户想要开发一个 Java Web 服务,需要完成两个步骤:
剑影啸清寒
2020-07-10
5040
Spring技术知识点总结之四——Spring Bean 的生命周期
接上篇《Spring技术知识点总结之三——Spring Bean 的注入过程》 四. Spring Bean 的生命周期 BeanFactory 中 Bean 的生命周期: 实例化:以 InstantiationAwareBeanPostProcessor 接口方法为包装,进行实例化过程。该接口主要功能有三个:实例化前预处理、实例化后预处理、设置属性值预处理; 实例化前预处理:InstantiationAwareBeanPostProcessor # postProcessBeforeInstanti
剑影啸清寒
2020-07-10
3060
Dubbo技术知识总结之六——Dubbo服务调用链路
服务提供者启动时,对外暴露一个 Exporter,它是一个可以接受外界连接代理对象,接受连接的方式是启动一个 Netty Server 监听连接。 服务消费者启动时,调用 RPC 接口时调用的是一个 Invoker 接口,类型是 RpcInvocation。它是一个通过动态代理方式生成的代理对象,可以通过 Netty Client 连接服务提供者。
剑影啸清寒
2020-07-10
1.3K0
Dubbo技术知识总结之三——Dubbo 启动与服务暴露、引用
服务启动时,首先解析 dubbo 的配置文件。dubbo 的配置文件是一个 Spring Bean 的 XML 配置文件,其中都是 dubbo 自定义的标签。Spring 启动过程中会使用 BeanDefinitionParser 解析 XML 配置文件中的 Bean,dubbo 就是提供了一个 BeanDefinitionParser 的实现类 DubboBeanDefinitionParser,其中的 parse 方法对解析 dubbo 自定义的标签(包括 Service, Reference, Registry 等)进行解析,每种标签对应一种 Config 文件,同时对应一种处理逻辑。 其中对 ServiceBean 标签的解析,其中包含服务暴露的过程。
剑影啸清寒
2020-07-09
2930
IDEA 新建 Spring MVC 工程项目与 SpringMVC 运行流程
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ajianyingxiaoqinghan/article/details/80727200
剑影啸清寒
2019-05-29
3.2K0
JavaSE 基础学习之六 —— Java 的反射操作
万事万物都是对象。我们平常接触到的类,本身也是一种对象,它的类型是 Class,也可以说 Class 是类的类型,即类类型 (Class Type);任何一个类,都是 java.lang.Class 的一个实例对象。
剑影啸清寒
2019-05-26
4650
Queue 相关数据结构的原理与实现 (LinkedList, ArrayDeque, PriorityQueue)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ajianyingxiaoqinghan/article/details/82670681
剑影啸清寒
2019-05-26
5600
Java 注解 —— 注解的理解、注解的使用与自定义注解
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ajianyingxiaoqinghan/article/details/81436118
剑影啸清寒
2019-05-26
1.7K0
转:Java 泛型,你了解类型擦除吗?
大家可能会有疑问,我为什么叫做泛型是一个守门者。这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇。泛型是 Java 中一个很小巧的概念,但同时也是一个很容易让人迷惑的知识点,它让人迷惑的地方在于它的许多表现有点违反直觉。
剑影啸清寒
2019-05-26
1.4K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档