2020年7月12日

集群多JVM分布式锁实现

摘要: 基于数据库表乐观锁 (基本废弃) 要实现分布式锁,最简单的⽅方式可能就是直接创建⼀一张锁表,然后通过操作该表中的数据来实现了了。 当我们要锁住某个⽅法或资源时,我们就在该表中增加一条记录,想要释放锁的时候就删除这条记录。 比如创建这样一张数据库表: CREATE TABLE `methodLock` 阅读全文

posted @ 2020-07-12 12:19 OrangeCsong 阅读(722) 评论(0) 推荐(0) 编辑

2020年7月5日

听说你还不知道CompletableFuture?

摘要: java8已经在日常开发编码中非常普遍了,掌握运用好它可以在开发中运用几行精简代码就可以完成所需功能。 今天将介绍CompletableFuture的在生产环境如何使用实践。CompletableFuture类作为Java 8 Concurrency API改进而引入,熟悉的同学应该了解在Java 阅读全文

posted @ 2020-07-05 12:07 OrangeCsong 阅读(328) 评论(0) 推荐(0) 编辑

2020年7月4日

你还在担心rpc接口超时吗

摘要: 在使用dubbo时,通常会遇到timeout这个属性,timeout属性的作用是:给某个服务调用设置超时时间,如果服务在设置的时间内未返回结果,则会抛出调用超时异常:TimeoutException,在使用的过程中,我们有时会对provider和consumer两个配置都会设置timeout值,那么 阅读全文

posted @ 2020-07-04 22:22 OrangeCsong 阅读(1019) 评论(0) 推荐(0) 编辑

2020年7月3日

" 橘松 " 的自我介绍

摘要: 昵称:(OrangeCsong)橘松(在其他平台也是这个名字) 年龄:95后(摩羯座) 性别:boy 性格:性格还阔以,不轻易发脾气,沉稳。喜欢独立思考。 爱好:运动(工作了,运动时间太少),基金理财,很少玩游戏。 工作:杭漂程序🐶(后端开发) 坐标:杭州(江西银,老表你来了) 公众号:橘松Jav 阅读全文

posted @ 2020-07-03 18:42 OrangeCsong 阅读(217) 评论(0) 推荐(0) 编辑

2018年6月5日

构建者模式Builder创建对象

摘要: 构建者(Builder)设计模式(又叫生成器设计模式): 当一个类的内部数据过于复杂的时候(通常是负责持有数据的类,比如Config、VO、PO、Entity...),要创建的话可能就需要了解这个类的内部结构,还有这些东西是怎么组织装配等一大坨乱七八糟的东西,这个时候就会增加学习成本而且会很混乱,这 阅读全文

posted @ 2018-06-05 09:39 OrangeCsong 阅读(181) 评论(0) 推荐(0) 编辑

2018年6月4日

Volatile关键字的解读

摘要: 定义: 在Java中,对基本数据类型的变量的读取和赋值操作是原子性操作,即这些操作是不可被中断的,要么执行,要么不执行。 Java内存模型只保证了基本读取和赋值是原子性操作,如果要实现更大范围操作的原子性,可以通过synchronized和Lock来实现。 由于synchronized和Lock能够 阅读全文

posted @ 2018-06-04 17:36 OrangeCsong 阅读(89) 评论(0) 推荐(0) 编辑

JVM内存模型

摘要: Java虚拟机(Java Virtual Machine=JVM)的内存空间分为五个部分,分别是: 1. 程序计数器 2. Java虚拟机栈 3. 本地方法栈 4. 堆 5. 方法区。 下面对这五个区域展开深入的介绍。 1. 程序计数器 1.1. 什么是程序计数器? 程序计数器是一块较小的内存空间, 阅读全文

posted @ 2018-06-04 09:13 OrangeCsong 阅读(81) 评论(0) 推荐(0) 编辑

2018年6月3日

Redis为何是单线程的

摘要: 以前一直有个误区,以为:高性能服务器 一定是 多线程来实现的 原因很简单因为误区二导致的: 多线程 一定比 单线程 效率高。其实不然。 redis 核心就是 如果我的数据全都在内存里,我单线程的去操作 就是效率最高的,为什么呢,因为多线程的本质就是 CPU 模拟出来多个线程的情况,这种模拟出来的情况 阅读全文

posted @ 2018-06-03 11:55 OrangeCsong 阅读(147) 评论(0) 推荐(0) 编辑

2018年6月2日

乐观锁&CAS问题

摘要: 悲观者与乐观者的做事方式完全不一样,悲观者的人生观是一件事情我必须要百分之百完全控制才会去做,否则就认为这件事情一定会出问题;而乐观者的人生观则相反,凡事不管最终结果如何,他都会先尝试去做,大不了最后不成功。这就是悲观锁与乐观锁的区别,悲观锁会把整个对象加锁占为自有后才去做操作,乐观锁不获取锁直接做 阅读全文

posted @ 2018-06-02 15:38 OrangeCsong 阅读(150) 评论(0) 推荐(0) 编辑

String为什么要设置成Final类型

摘要: 今天面试碰到个这样的问题:String在设计的时候为什么要设计成final的 当时回答的是String功能已经很丰富了,不需要对其进行扩展,所有巴拉巴拉。 现在来正确看看为什么定义成final的吧 首先,Final来修饰一个类,只有一个作用,就是不让此类被继承。 好,那么String为什么不让其他类 阅读全文

posted @ 2018-06-02 13:22 OrangeCsong 阅读(206) 评论(0) 推荐(0) 编辑

导航