写这篇文章的初衷是为了深入的分析PermGen OOM发生的原因,在深入分析的基础之上理解PermGen OOM的应对措施,从"为什么会发生PermGen OOM"到"到底为什么会发生PermGen OOM"。希望对大家更深入的认识PermGen OOM和PermGen OOM的应对措施起到作用。
同步和线程安全的许多底层混淆是 Java 内存模型 (JMM)的一些难以直觉到的细微差别。并不是所有的多处理器系统都表现出缓存一致性假如有一个处理器有一个更新了的变量值位于其缓存中,但还没有被存入主存,这样别的处理器就可能会看不到这个更新的值。在缓存缺乏一致性的情况下,两个不同的处理器可以看到在内存中同一位置处有两种不同的值内存模型描述的是程序中各变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存取出变量这样的低层细节。
说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(JavaAPI)。
了解java的内存大致划分<br>栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中。<br>堆:存放用new产生的数据<br>静态域:存放在对象中用static定义的静态成员<br>常量池:存放常量。