自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 问答 (2)
  • 收藏
  • 关注

原创 Redis结合AQS实现Java版的可重入分布式锁

前言对于java的单进程应用来说,存在资源竞争的场景可以使用synchronized关键字和Lock来对资源进行加锁,使整个操作具有原子性。但是对于多进程或者分布式的应用来说,上面提到的锁不共享,做不到互相通讯,所以就需要分布式锁来解决问题了。 废话不多说,直接进入正题,下面结合AQS和Redis来实现分布式锁。代码中大部分都是参考ReentrantLock来实现的,所以读者可以先去了解

2018-01-30 15:37:43 2627 7

原创 初始化与清理(3)

初始化当类的成员变量没有指定初始化值时,在实例化时会初始化一个默认的值,而方法的局部变量一定要进行初始化,否则编译器会报错。初始化顺序静态数据初始化非静态数据初始化构造器初始化 当对多种初始化方式对同一个变量进行了初始化,该变量的值会被覆盖,例如一个非静态成员变量会首先被初始化为一个默认值,当构造器再对其初始化时,就会覆盖掉原来的默认值。public class Maker { //

2016-03-31 16:29:40 305

原创 初始化与清理(2)

垃圾回收器如何工作引用计数 引用计数是一种简单但速度很慢的垃圾回收计数。每个对象都含有一个引用计数器,当有一个引用连接至对象时,引用加1,当 引用离开作用域或被置为null时,引用减1。当对象的引用变成0的时候,这个对象会被回收。但是这种方法有个缺陷,就是当两个对象互相引用,而且这个对象都不再需要的时候,两个对象都应该被回收,但是因为互相持有引用,所以引用计数不为0,导致它们都不能被回收停止-

2016-03-30 19:13:44 349

翻译 Centos系统下docker的安装与卸载

Docker简介Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。 百度百科前提首先,你的

2016-03-04 09:57:06 47249 3

原创 初始化与清理(1)

用构造器确保初始化构造器的名称必须与类名完全相同。类的构造器相当于一个创建对象时执行的方法,当不写构造器的时候,会默认为类提供一个无参构造器。当写了一个有参数的构造器的时候,无参构造器便不会默认提供了,如果有需要的话,还是要再写。class Rock { //无参构造器 Rock(){} //有参数构造方法 Rock(String str) { //这相当

2016-02-25 22:32:31 402

原创 操作符

在最底层,Java中的数据是通过使用操作符来操作的。赋值运算符= 在Java中,基本类型的赋值会改变被赋值变量的值,但是对对象的赋值改变的是引用class Tank { int level;}public class Assignment { public static void main(String[] args) { Tank t1 = new Tank(

2016-02-22 20:21:42 280

原创 创建新的数据类型:类

类是对对象的抽象,好比猫狗都属于动物类,对象是类的一个实例。在Java中类是一种数据类型,用class关键字定义。字段和方法字段是类关联的一个成员,好比动物有体重、身高,这些就是动物的字段方法就是类的一个动作,好比动物可以吃东西,吃东西就是动物类拥有的一个方法 方法的构成包括:名称、参数、返回值和方法体。ReturnType methodName (/* Argument list */)

2016-02-22 15:09:44 768

原创 Java编程思想初学

一切都是对象用引用操纵对象一切都可以视为是对象,但是对象要如何操纵呢? 首先要创建一个对象的一个引用:String s;这时创建的只是引用,并不是对象,默认值为null,此时如果去操纵这个对象,将会发生错误。因此需要进行初始化。String s = "this is a string.";上面的代码新建了一个String对象,并把它与s进行了关联。创建对象创建对象,通常用new关键字实现Strin

2016-02-21 00:08:06 396

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除