ckaway_的博客

记录学习过程

Java多线程-----锁理论(自旋锁)

一、自旋锁的概念何谓自旋锁?它是为实现保护共享资源而提出一种锁机制。为了解决对某项资源的互斥使用。在任何时刻,最多只能有一个保持者,也就说,在任何时刻最多只能有一个执行单元获得锁。如果锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋&am...

2018-07-04 21:14:00

阅读数 53

评论数 0

Java多线程----CAS介绍

CAS:Compare And Swap(比较并交换):三个参数,一个当前内存值V、旧的预期值A、即将更新的值B,当且仅当预期值A和内存值V相同时,将内存值修改为B并返回true,否则什么都不做,并返回false。看一段简单的代码/** * Created by hanwei on 2018/6...

2018-07-04 21:13:44

阅读数 31

评论数 0

Java多线程-Thread常用方法及生命周期

线程的状态有以下几个:新建(NEW)、                                          可运行(RUNNABLE)、                                          运行(RUNNING)、                    ...

2018-06-13 14:13:45

阅读数 39

评论数 0

Java多线程-Thread介绍

多线程的定义在百度百科上有比较官方的介绍。先理解一下进程和线程:进程:系统中正在运行的应用程序;线程:程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成;线程是进程的一个实体,进程提供资源来支持线程的执行。一、线程的创建1、继承Thread类,重写run方法...

2018-06-12 17:29:54

阅读数 49

评论数 0

Java —— GC

要想深入了解Java的GC(Garbage Collection),我们应该先探寻如下三个问题:What? -- 哪些内存需要回收?When? -- 什么时候回收?How? -- 如何回收?GC DefinitionDefinition: Program itself finds and coll...

2018-06-07 10:55:10

阅读数 65

评论数 0

Zookeeper Leader选举过程

一、先明确几个关键字的含义:1、myid:给每台服务器定义的标识2、zxid:节点在运行过程中产生的数据id,id越大表示数据越清晰3、Epoch:选举的轮数,即逻辑时钟。随着选举的轮数++4、Server状态:LOOKING--寻找Leader状态。当服务器处于该状态时,它会认为当前集群中没有L...

2018-04-08 15:16:58

阅读数 98

评论数 0

Java 8中基本数据类型

byte、short、int、long、float、double、char、boolean整型其中byte、short、int、long都是表示整数的,只不过他们的取值范围不一样byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)short的取值范围为-32768~3...

2018-03-29 11:31:28

阅读数 92

评论数 0

适配器模式

平时我们会经常碰到这样的情况,有了两个现成的类,它们之间没有什么联系,但是我们现在既想用其中一个类的方法,同时也想用另外一个类的方法。有一个解决方法是,修改它们各自的接口,但是这是我们最不愿意看到的。这个时候Adapter模式就会派上用场了。Adapter模式也叫适配器模式,是由GoF提出的23种...

2018-03-29 10:28:56

阅读数 46

评论数 0

Java synchronized关键字使用小结

1. 在编写一个类时,如果该类中的代码可能运行与多线程环境下,就要考虑同步问题了。会同时被多个线程访问的资源,就是竞争资源,也称为竞争条件。对于多线程共享的资源我们必须进行同步,以避免一个线程的改动被另一个线程所覆盖。synchronized 关键字有两种作用域:1> 某个对...

2018-03-29 10:22:01

阅读数 6348

评论数 1

Java volatile关键字使用小结

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于v...

2018-03-29 10:19:28

阅读数 49

评论数 0

Java 5年应该掌握的东西

1、常用设计模式单例模式:懒汉式、饿汉式、双重校验锁、静态加载,内部类加载、枚举类加载。保证一个类仅有一个实例,并提供一个访问它的全局访问点。代理模式:动态代理和静态代理,什么时候使用动态代理。适配器模式:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的...

2018-03-28 22:38:55

阅读数 1451

评论数 0

Java transient关键字使用小记

 1. transient的作用及使用方法      我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。...

2018-03-28 17:16:26

阅读数 80

评论数 0

常用设计模式之动态代理1(JDK)

从下面几个问题来了解JDK动态代理:一、什么是代理模式?定义:为其他对象提供一种代理以控制这个对象的访问,在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在调用端和目标对象之间起到中介的作用。组成元素:接口,代理类,接口的实现类。二、一个简单的例子一个接口IUserDaopa...

2018-03-26 11:41:28

阅读数 37

评论数 0

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