java
文章平均质量分 92
it_xiaohua
这个作者很懒,什么都没留下…
展开
-
浅谈CAS自旋原理
一.CAS 介绍CAS是Java并发包工具类底层使用的算法(在Unsafe类的提供的方法),他有效的避免了并发,像AtomicInteger、Semaphore、ReentrantLock底层都采用了CAS算法CAS 即compare and swap(比较与交换),它涉及到三个操作数:内存值、预期值(未更新前的工作内存值)、新值。当且仅当预期值和内存值相等时才将内存值修改为新值 。举例...原创 2019-12-17 11:33:42 · 1635 阅读 · 0 评论 -
线程的启动和结束
一.线程的状态 生命周期:创建 ->就绪->运行(阻塞)->终止 状态标识:NEW ,RUNNABLE ,RUNNING ,(BLOCKED,TIMED WAITING,WATING) ,TERMINATED WATING :调用wait,join,notyfy BLOCKED:synchroinzed ,lock TIMED WAITING :sleep(100),T...原创 2019-12-16 00:21:08 · 434 阅读 · 0 评论 -
springBoot 定时任务
1.定时任务的几种实现方式:1、Timer:这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。2、ScheduledExecutorService:也jdk自带的一个类;是基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,...原创 2019-12-14 15:30:34 · 113 阅读 · 0 评论 -
java浅拷贝 和 深拷贝
1.浅拷贝对于基本数据类型的成员对象,因为基础数据类型是值传递的,所以是直接将属性值赋值给新的对象。基础数据类型的拷贝,其中一个对象修改该值,不会影响另外一个。对于引用类型,比如数组或者类对象,因为引用类型是引用传递,所以浅拷贝只是把内存地址赋值给了成员变量,它们指向了同一内存空间。改变其中一个,会对另外一个也产生影响。 2.深拷贝对于基本数据类型的成员对象,因为基础数据类型是值传...原创 2019-12-14 12:52:39 · 308 阅读 · 0 评论 -
浅谈zookepper与eureka的区别
首先说点题外话db我们知道要遵循ACID原则:原子性,一致性,隔离性,持久性nosql 要遵循CAP原则:一致性,可用性,分区容错性。著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在此Zookeeper保证的是CP, 而Eureka则是AP。服务注册当向注册中心...原创 2019-11-14 23:42:11 · 171 阅读 · 0 评论 -
JDK 1.8 HashMap 底层原理实现
#1.hashMap 的特定属性 //默认初始容量为16,0000 0001 右移4位 0001 0000为16,主干数组的初始容量为16,而且这个数组 //必须是2的倍数(后面说为什么是2的倍数) static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 //最大容量为int的最大值除2 ...原创 2019-11-01 10:49:04 · 116 阅读 · 0 评论 -
代码小试
在实际的开发过程中,我们使用jpa ,实长会有关联查询表的需求,比如通过部门id 关联查询部门表获取部门name,jpa关联查询会比较麻烦,这里可以通过java代码去组装我们想要的数据.实现的方式有两种: 第一种方式可以将变动不大的部门存储到redis中,我们可以通过部门id直接查询缓存,这样不会很大的影响查询效率. 第二种方式可以将我要关联的部门表中的数据放到map 中 key 为部门i...原创 2019-09-03 09:54:21 · 140 阅读 · 0 评论 -
java 设计模式之策略模式
1.定义 :其思想是针对一组算法,将每一种算法都封装到具有共同接口的独立的类中,从而是它们可以相互替换。策略模式的最大特点是使得算法可以在不影响客户端的情况下发生变化,从而改变不同的功能。举列子:我们就以Java中的TreeSet为例,TreeSet仅仅知道它只是接收一个Comparator这种接口类型,但是具体是哪种实现类,TreeSet并不关心,实现类在真正的传入TreeSet之前,Tre...转载 2019-08-21 11:36:58 · 118 阅读 · 0 评论 -
springSecurity
第一次写博客,由于公司用到了springSecurity 用户认证框架,简单的学习了一下运行过程.流程图 当用户第一次请求时会经过一个过滤器链 第一次登录请求 被SecurityContextPersistenceFilter拦截 调用securityContextRepository 中的 loadContext()方法获取SecurityContext Htt...转载 2019-06-02 16:53:01 · 137 阅读 · 0 评论