
java随笔
coyhzx
这个作者很懒,什么都没留下…
展开
-
面向对象的设计原则SOLID
面向对象的设计原则也被称为SOLID,它们是任何软件设计开发的一种设计思想。SOLID(稳定的)原则包括单一职责原则,开闭原则、里氏替换原则、接口隔离原则、依赖倒置原则。单一职责原则(Single Responsibility Principle) : 是一种面向对象的设计原则,该原则指出软件模块应该只有一个被修改的理由。在大多数情况下,编写java代码时都会将单一职责原则应用于类。开闭原则(Open Closed Principle): 模块、类和函数应该对扩展开发,对修改关闭。里原创 2020-05-19 22:59:56 · 151 阅读 · 0 评论 -
2、spring源码解析之单例bean的实例化
文章目录前言1.refresh之实例化单实例bean2.解决循环依赖3.依赖注入之setter注入前言上文讲到了整体流程、以及配置类的BeanDefinition注册到ioc容器中。 其实bean的实例化是一件非常复杂的事情,因为不同的bean实例化的方式都是有一些差别的。而且bean在实例化过后会经历很多后置的处理(BeanPostProcess),所以本文我会核心讲如何实例化我们的单例bean。 本文暂时不会涉及到很多有关于后置处理器的核心点(后续可能会讲到),本文暂时着重bean是如何实.原创 2020-05-12 01:06:51 · 853 阅读 · 1 评论 -
1、spring源码解析之概况流程
文章目录概要1.程序入口:加载配置类2.注解配置上下文AnnotationConfigApplicationContext3.刷新上下文4、核心类AnnotationConfigApplicationContext的类图结构5.跟踪源码进入ioc概要 以前总是很忙,没有时间写博客,现在挤出时间写一些总结性及实用性的博客。 首先聊一下,之所以开始看源码,是因为随着自身对java的理解不断加深,感觉自己对技术架构方面很感兴趣。所以想深入了解一下开源框架的本质,看各种开源框架、jdk源码有一段时间了原创 2020-05-10 21:02:08 · 1737 阅读 · 1 评论 -
CAS compareAndSet(old,new) 对比旧值,设置新值
CAS compareAndSet(old,new) 对比旧值,设置新值CAS(compareAndSet): 是java.util.concurrent.atomic 每个原子类都有的一个方法compareAndSet,此方法的操作是原子性的,具体是有jvm底层和硬件去保证原子性的。CAS操作需要输入两个值,一个旧值(期望操作前的值)和一个新值,再操作期间先比较旧值有没有发生变化,如果没有发...原创 2020-04-07 23:39:06 · 589 阅读 · 0 评论 -
3、volatile关键字
3、volatile关键字文章目录1.分析volatile1.1 volatile的定义1.2 volatile的理解1.3 volatile的原理2.使用volatile2.1、状态的开关标志2.2、双重检查锁定(double-check-locking DCL)3.volatile与synchronized的区别1.分析volatile1.1 volatile的定义 volatil...原创 2020-04-07 23:20:33 · 167 阅读 · 0 评论 -
2、synchronized关键字
2、synchronized关键字文章目录1.引出synchronized2.synchronized用法3.synchronized原理分析1.引出synchronized在java中,当使用多线程操作共享资源时,很容易出现数据不一致问题。场景: 当售票时,很多窗口同时售票,但去往一个目的的票数总共只有100张,当200人同一时间买该目的地票时,如何控制不会出现超卖、少卖的情况呢?...原创 2019-11-03 19:36:40 · 160 阅读 · 1 评论 -
1、理解jvm与jmm
1、理解jvm与jmm文章目录1、理解jvm与jmm1.Java虚拟机(jvm)1.1 jvm内存模型2.java内存模型(jmm)2.1 java内存模型(jmm)标题![在这里插入图片描述](https://img-blog.csdnimg.cn/20191016213127288.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGV...原创 2019-10-16 21:35:33 · 774 阅读 · 6 评论