
java
文章平均质量分 60
run_forever1
这个作者很懒,什么都没留下…
展开
-
Java序列化的机制和原理,以及自定义序列化问题
一. Java序列化的机制和原理有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍。Java序列化算法透析Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。Java序列化API提供一种处理对象序列化的标准机制。在这里你能学到如何序列转载 2012-12-07 14:12:56 · 366 阅读 · 0 评论 -
java变量修饰符volatile的使用和性能
您只能在有限的一些情形下使用 volatile 变量替代锁。要使 volatile 变量提供理想的线程安全,必须同时满足下面两个条件:● 对变量的写操作不依赖于当前值。● 该变量没有包含在具有其他变量的不变式中。实际上,这些条件表明,可以被写入 volatile 变量的这些有效值独立于任何程序的状态,包括变量的当前状态。第一个条件的限制使 volatile 变量不能转载 2013-02-19 14:55:49 · 675 阅读 · 0 评论 -
AtomicStampedReference解决ABA问题
AtomicStampedReference解决ABA问题在运用CAS做Lock-Free操作中有一个经典的ABA问题:线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的现场已经和最初不同了,尽管CAS成功,但可能存在潜藏的问题,例如下面的例子:现有一个转载 2013-02-20 13:41:52 · 662 阅读 · 0 评论 -
非阻塞算法在并发容器中的实现
简介非阻塞算法在更细粒度的层面协调争用,它比传统的锁有更高的并发性。随着非阻塞算法在 Java 中的应用越来越广泛,java.concurrent 包中用非阻塞算法实现的并发容器也越来越多,ConcurrentLinkedQueue 就是其中的一个重要成员。鉴于 ConcurrentLinkedQueue 的非阻塞算法实现在并发容器中具有代表性,本文将结合 JDK Update23 的源代码来转载 2013-02-20 13:46:02 · 448 阅读 · 0 评论 -
java同步机制synchronized
AVA中synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。假如再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literals(类名称字面常量)身上。在进一步阐述之前,我们需要明确几点: A.无论synchronized关键字加在方法转载 2013-02-22 10:31:40 · 333 阅读 · 0 评论 -
java对象池示例
Java对象池示例 对象池使用的基本思路是:将用过的对象保存起来,等下一次需要这种对象的时候,再拿出来重复使用,从而在一定程度上减少频繁创建对象所造成的开销。 并非所有对象都适合拿来池化――因为维护对象池也要造成一定开销。对生成时开销不大的对象进行池化,反而可能会出现“维护对象池的开销”大于“生成新对象的开销”,从而使性能降低的情况。但是对于生成时开销可观的对象,池化技术就是提高性能的有效策转载 2013-02-25 14:32:26 · 6390 阅读 · 0 评论 -
java的几种单例模式
1、赖汉式public class LazySingleton {private static LazySingleton instance = new LazySingleton();private LazySingleton() {}public static LazySingleton getInstance() {return instance;原创 2015-03-16 15:07:14 · 389 阅读 · 0 评论 -
java volatile
volatile的作用有2个:1、禁止编译指令重排序;2、写入操作立马同步到主内存中。原创 2015-08-11 13:50:26 · 374 阅读 · 0 评论