java并发编程之volatile详解

引言: 在多线程并发编程中synchronized和volatile都扮演着重要的角色,volatile是轻量级的synchronized,它在多线程开发中保证了共享变量的“可见性”,可见性的意思是当一个线程修改了一个共享变量时,其他的线程能读到这个修改的值。在某些情况下,volatile比syn...

2015-07-30 17:33:03

阅读数:338

评论数:0

JVM运行时刻内存的分配详解

文字描述: jvm内存区域(JMM)有一块区域是jvm虚拟机栈,每一个线程运行时都有一个自己的线程栈,线程栈保存了线程运行时候变量值信息,且线程之间互不干扰。当线程访问某一个对象的值的时候,首先通过对象的引用找到该对象在对应的堆内存里的具体值,然后把堆内存里变量的具体值load到线程本地内存中,建...

2015-07-30 16:22:54

阅读数:458

评论数:0

java并发编程之CountDownLatch详解

最近遇到这样一个功能要求:假设现在有T1,T2,T3共3个线程,如何保证T4第4个线程在前3个线程执行完毕后再执行(jdk层面实现)? 实现方式:使用CountDownLatch 代码: CountDownLatchExample.java package com.ccr.common.thre...

2015-07-29 11:59:18

阅读数:429

评论数:0

java用volatile或AtomicBoolean实现高效并发处理 (只初始化一次的功能要求)

最近碰到一个这样的功能要求:实现高效并发处理,只初始化一次.       实现方式: 1)

2015-07-28 19:56:12

阅读数:1426

评论数:1

JVM垃圾分代回收算法详解

注明,本文转载至:http://pengjiaheng.iteye.com/blog/524024 为什么要分代     分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。       在Java程序运...

2015-07-24 18:43:26

阅读数:311

评论数:0

java可变参数使用总结

java1.5新特性中增加了可变参数:       特点:       适用于方法参数类型确定,数量不确定的情况。       注意: 写法中...位于变量类型和变量名之间 ,前后有无空格都可以;一个方法最多只能有一个可变参数,且该可变参数只能是该方法的最后一个参数;调用方法的时候,可以给可变...

2015-07-22 18:17:04

阅读数:369

评论数:0

java中对get和set方法的理解

首先,理解一下java面向对象编程中的封闭性和安全性。 封闭性即对类中的域变量进行封闭操作,即用private来修饰他们,如此一来其他类则不能对该变量访问。这样我们就将这些变量封闭在了类内部,这样就提高了数据的安全性,当我们想要操作这些域变量怎么办呢?我们可以通过两种方法,第一中即通过public...

2015-07-21 17:29:34

阅读数:2007

评论数:0

JVM类加载—编译与泛型

java中的泛型,是伪泛型,只是简单的在API级别做了"模样",但是对于类的编译过程,则会导致泛型类型的擦除,即编译过程或者编译之后的文件中,最终泛型仍然以"原生类型"表示.即在运行时无法直接还原"泛型",java还支持了反射机制,为了让...

2015-07-20 16:22:24

阅读数:716

评论数:0

JVM类加载双亲委派模型

双亲委派模型         JVM并没有使用继承关系来组织这三种类加载器,而是采取了组合关系(即classLoader.setParent(...)).         工作过程:如果一个类加载器接收到了类加载的请求,它首先把这个请求委托给他的父类加载器去完成,每个层次的类加载器都是如此...

2015-07-20 15:56:02

阅读数:297

评论数:0

JVM类加载机制总结

一、类加载 1、概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。      虚拟机把描述类的数据从...

2015-07-20 15:09:54

阅读数:338

评论数:0

guava cache编程实践总结

guava cache是google开源代码库中的一个辅助功能模块,可以作为JVM嵌入式cache来使用,基于key-value模型。对于Rdedis、Memcached,这种缓存系统,我们称之为“分布式缓存”,它们通过集群扩容,可以将海量数据cache在远端。而guava cache,作为“嵌入...

2015-07-20 12:16:28

阅读数:1582

评论数:0

基于SpringMVC的web应用的ContextLoaderListener与DispatcherServlet标准组合配置

A standard spring web application create a web.xml with ContextLoaderListener and DispatcherServlet.  I understand that the ContextLoaderListener sh...

2015-07-13 17:11:00

阅读数:271

评论数:0

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