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