
java
figoren
这个作者很懒,什么都没留下…
展开
-
用数组实现堆栈和队列
package com.sms;/** * * @author Administrator * */public class Stack { public static int MAX_SIZE=10; private Object[] stack = new Object[MAX_SIZE]; int currentPos=-1;原创 2008-11-04 21:28:00 · 593 阅读 · 0 评论 -
深入理解Java内存模型(三)——顺序一致性
作者 程晓明 发布于 一月 28, 2013 | 17 评论 新浪微博腾讯微博豆瓣网TwitterFacebooklinkedin邮件分享更多 0稍后阅读我的阅读清单数据竞争与顺序一致性保证当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下:在一个线程中写一个变量,在另一个线程读同一个变量,转载 2013-05-06 16:25:11 · 1328 阅读 · 0 评论 -
深入理解Java内存模型(一)——基础
作者 程晓明 发布于 一月 22, 2013 | 23 评论 新浪微博腾讯微博豆瓣网TwitterFacebooklinkedin邮件分享更多 82稍后阅读我的阅读清单并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交转载 2013-05-06 16:18:17 · 669 阅读 · 0 评论 -
深入理解Java内存模型(七)——总结
作者 程晓明 发布于 三月 15, 2013 | 新浪微博腾讯微博 豆瓣网 TwitterFacebook linkedin 邮件分享 更多 稍后阅读我的阅读清单处理器内存模型顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照。JMM和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果转载 2013-05-06 16:31:02 · 566 阅读 · 0 评论 -
深入理解Java内存模型(六)——final
作者 程晓明 发布于 三月 08, 2013 | 10 评论 新浪微博腾讯微博豆瓣网TwitterFacebooklinkedin邮件分享更多 0稍后阅读我的阅读清单与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问。对于final域,编译器和处理器要遵守两个重排序规则:在构造函数内对一个f转载 2013-05-06 16:30:07 · 505 阅读 · 0 评论 -
深入理解Java内存模型(四)——volatile
作者 程晓明 发布于 二月 05, 2013 | 24 评论 新浪微博腾讯微博豆瓣网TwitterFacebooklinkedin邮件分享更多 0稍后阅读我的阅读清单volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个转载 2013-05-06 16:27:23 · 515 阅读 · 0 评论 -
深入理解Java内存模型(二)——重排序
作者 程晓明 发布于 一月 26, 2013 | 29 评论 新浪微博腾讯微博豆瓣网TwitterFacebooklinkedin邮件分享更多 0稍后阅读我的阅读清单数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型:名称代码示例转载 2013-05-06 16:22:36 · 544 阅读 · 0 评论 -
浅谈java内存模型
浅谈java内存模型 不同的平台,内存模型是不一样的,但是jvm的内存模型规范是统一的。其实java的多线程并发问题最终都会反映在java的内存模型上,所谓线程安全无非是要控制多个线程对某个资源的有序访问或修改。总结java的内存模型,要解决两个主要的问题:可见性和有序性。我们都知道计算机有高速缓存的存在,处理器并不是每次处理数据都是取内存的。JVM定义了自己的内存模型,屏蔽了底层平台转载 2013-05-06 11:37:19 · 561 阅读 · 0 评论 -
Java类加载原理解析
Java类加载原理解析 1 基本信息摘要:每个java开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。Java的类加载机制是java技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多,但是对其转载 2013-04-02 20:42:44 · 600 阅读 · 0 评论 -
深度解析Java内存的原型及工作原理
深度解析Java内存的原型及工作原理2012-06-29 13:54 悠虎 比特网 我要评论(2) 字号:T | T本文主要通过分析Java内存分配的栈、堆以以及常量池详细的讲解了其的工作原理。AD: 2013大数据全球技术峰会低价抢票中 本文主要通过分析Java内存分配的栈、堆以以及常量池详细的讲解了其的工作原理转载 2013-04-02 20:49:09 · 443 阅读 · 0 评论 -
JVM内存模型及垃圾收集策略解析(一)
JVM内存模型是Java的核心技术之一,之前51CTO曾为大家介绍过JVM分代垃圾回收策略的基础概念,现在很多编程语言都引入了类似Java JVM的内存模型和垃圾收集器的机制,下面我们将主要针对Java中的JVM内存模型及垃圾收集的具体策略进行综合的分析。一 JVM内存模型1.1 Java栈Java栈是与每一个线程关联的,JVM在创建每一个线程的时候,会分配一定的栈空间给线程。它主要用转载 2013-04-02 20:44:18 · 460 阅读 · 0 评论 -
volatile使用
在当前的Java内存模型下,线程可以把变量保存在本地内存(比如机器的寄存器)中,而不是直接在主存中进行读写。这就可能造成一个线程在主存中修改了一个变量的值,而另外一个线程还继续使用它在寄存器中的变量值的拷贝,造成数据的不一致。要解决这个问题,只需要像在本程序中的这样,把该变量声明为volatile(不稳定的)即可,这就指示JVM,这个变量是不稳定的,每次使用它都到主存中进行读取。一般说来,多任转载 2013-03-30 16:26:10 · 520 阅读 · 0 评论 -
CountDownLatch Race
import java.util.*;import java.util.concurrent.*;class Race{ private Random rand = new Random(); private int distance = rand.nextInt(250); private CountDownLatch start;转载 2013-03-30 15:24:09 · 537 阅读 · 0 评论 -
利用MDC在日志上增加用户或跟踪码
log4j.rootLogger=error,Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPatt转载 2013-03-30 16:07:33 · 3406 阅读 · 0 评论 -
深入理解Java内存模型(五)——锁
作者 程晓明 发布于 三月 05, 2013 | 新浪微博腾讯微博 豆瓣网 TwitterFacebook linkedin 邮件分享 更多 稍后阅读我的阅读清单锁的释放-获取建立的happens before 关系锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。下面是锁释放转载 2013-05-06 16:28:47 · 586 阅读 · 0 评论