对于CAS是一种有别于synchronized的一种乐观锁实现.是一种非阻塞锁算法.CAS通过与原始预期值进行比较来确定是否修改主内存中数据的一种方案.基于一个线程的失败或者挂起不应该影响其他线程的失败或挂起这样的前提,而提出硬件层次的实现数据处理的互斥。可以自动更新共享数据,而且能够检测到其他线程的干扰,而
compareAndSet() 就用这些代替了锁定。对于实现CAS的原子类(Atom...
分类:
编程语言 时间:
2014-08-22 10:56:46
阅读次数:
261
对于java初学者很重要的知识:Integer与int之间的区别...
分类:
编程语言 时间:
2014-08-22 10:50:46
阅读次数:
233
相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的认识。在解决java内存溢出问题之前,需要对jvm(java虚拟机)的内存管理有一定的认识。jvm管理的内存大致包括...
分类:
编程语言 时间:
2014-08-22 10:46:25
阅读次数:
173
类型检查Java的任意变量和引用经过类型声明(type declaration),才能使用。我们之前见过对象数据、类数据、方法参数、方法返回值以及方法内部的自动变量,它们都需要声明其类型。Java是一种强类型(strongly typing)语言,它会对类型进行检查。如果我们错误的使用类型,将造成错...
分类:
编程语言 时间:
2014-08-22 10:45:45
阅读次数:
229
看API文档介绍几个方法:JDK1.5中提供了多线程的升级解决方案: 特点:1.将同步synchronized显示的替换成Lock 2.接口Condition:Condition替代了Object监视器方法(wait、notify、notifyAll),分别替换成了await(),signal() ...
分类:
编程语言 时间:
2014-08-22 10:40:36
阅读次数:
280
对象引用我们沿用之前定义的Human类,并有一个Test类:public class Test{ public static void main(String[] args){ Human aPerson = new Human(160); } class Human{ public Human(....
分类:
编程语言 时间:
2014-08-22 10:34:06
阅读次数:
230
接口继承接口继承(inheritance)与类继承很类似,就是以被继承的interface为基础,增添新增的接口方法原型。比如,我们以Cup作为原interface:interface Cup{ void addWater(int w); void drinkWater(int w);}我们在继承C...
分类:
编程语言 时间:
2014-08-22 10:32:15
阅读次数:
159
我们一直是为了产生对象而定义类(class)的。对象是具有功能的实体,而类是对象的类型分类。这是面向对象的一个基本概念。static数据成员有一些数据用于表述类的状态。比如Human类,我们可以用“人口”来表示Human类的对象的总数。“人口”直接描述类的状态,而不是某个对象。类的所有对象共享“人口...
分类:
编程语言 时间:
2014-08-22 10:31:16
阅读次数:
212
Scala是一门混合了函数式和面向对象的语言。Scala运行在JVM上,在Scala中你可以直接使用Java API,并且你还可以享受到Scala所带来的便捷,尤其是在多线程应用中。你应该首先安装JDK,然后下载Scala,开发工具推荐intelli J,你用eclipse也可以。首先看第一个Sca...
分类:
其他好文 时间:
2014-08-22 00:15:45
阅读次数:
329
1.JVM运行时数据区域的划分 a.程序计数器(Program Counter Register) 一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。每个线程拥有独立的一个计数器,如果当前执行的是Native方法,则计数...
分类:
编程语言 时间:
2014-08-21 22:58:45
阅读次数:
483