Java Classloader机制解析
转载,原文见:http://my.oschina.net/aminqiao/blog/262601 目录[-] JDK默认ClassLoader 双亲委托模型 如何自定义ClassLoader 1.loadClass 方法 2.findClass 3.defineClass 不遵循“双亲委托机制”的场景做Java开发,...
深入理解JVM之编译优化
在源码编译阶段将源码编译为JVM字节码,JVM字节码是一种平台无关的中间代码方式,要由JVM在运行期间对其进行解释并执行,这种方式成为字节码解释执行方式。对于面向对象的语言而言,最重要的是执行方法的指令,JVM有一套自己的执行方法的指令:invokestatic(调用static方法)、invokevirtual(调用对象实例的方法)、invo...
深入理解JVM之OOM
做Java程序开发,难免会遇到OutOfMemory,导致的原因也是不尽相同,下面我们来捋一捋OOM出现的场景。一,堆空间不足,这是最容易,也是最常见的OOM。了解Java内存结构的同学应该知道,Java里面创建的对象大部分都是位于堆空间的,当创建的对象太多,而堆空间不足时,很容易抛出OOM,如下:点击(此处)折叠或打开...
Java 理论与实践: JDK 5.0 中更灵活、更具可伸缩性的锁定机制
转载:http://www.ibm.com/developerworks/cn/java/j-jtp10264/多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个 Thread 类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发...
生产者与消费者
package test.java.util.concurrent;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;class Meal { private final int orderNum; public Meal(int orderNum) { this.orderNu...
Java并发之CopyOnWriteArrayList
CopyOnWriteArrayList
Java并发之ConcurrentHashMap
ConcurrentHashMap,线程安全的HashMap由于HashTable较重量级,他会给整个加锁,而ConcurrentHashMap只是给每个Segment加锁,所以性能快很多。除了initialCapacity、loadFactor之外,还有一个concurrentLevel属性,默认情况下,三个属性分别为16,0.75,16设置以上三个属性后,就得考虑锁加在哪?并怎样初始化加锁的对象...
Java锁的优化
啊啊
Java并发相关概念
对于working memory的操作分为lock、load、use、assign、store、unlockload:将main memory的值复制到working memoryuse:在workingmemory中改变值assign:对值进行其他操作,如从操作数栈弹出,赋给局部变量区store:将变量值从working memory复制到main memory对于main memory的操作分为:lock、read、write、unloc...
深入理解JVM之内存管理
1,方法区:存放类的信息(名称、修饰符等)、类中的静态变量、类中final型常量、类中的Field信息,类中的方法信息。方法区是全局共享的,在一定条件下也会被GC,当方法区要使用的内存超过其允许的大小事,会抛出OutOfMemory。JVM中这块区域对应Permanet Generation,又称为吃就带。默认最小为16MB,最大为64MB,可通过-X...
深入理解JVM之类加载
JVM将类加载过程分为三个步骤:装载、链接、初始化。装载、链接完成后,即可将二进制字节码转换为Class对象,初始化过程不是加载类时必须触发的,只要求在初次使用对象前执行即可,初始化主要给静态变量赋值、调用()等一,装载(load)JVM通过类的全限定名(com.sun.HelloWorld)及类加载器(ClassLoader实例)...
ExecutorService之submit与execute
ExecutorService的submit与execute方法都能执行任务,但在使用过程,发现其对待run方法抛出的异常处理方式不一样。两者执行任务最后都会通过Executor的execute方法来执行,但对于submit,会将runnable物件包装成...
DCL失效问题的探讨
最近我在研究DCL失效问题上,发现大多数资料基本上都是一个说法,都觉得DCL不安全,不要使用,所以,我就在本地测试了一把...import java.util.ArrayList; import java.util.HashMap; import ...