很多人认为方法区(或者HotSpot虚拟机中的永久代)是没有垃圾收集的,Java虚拟机规范中确实说过可以不要求虚拟机在方法区实现垃圾手机,而且在方法区进行垃圾收集的“性价比”一般比较低:在堆中,尤其是在新生代中,常规应用进行一次垃圾收集一般可以回收70%~90%的空间,而永久..
分类:
其他好文 时间:
2014-07-29 15:42:19
阅读次数:
246
死锁的总结
死锁的定义:
死锁一般是指两个(或两个以上)线程同时竞争两个(或者多个)资源,从而产生同时等待的现象,使得系统僵持不动。
顺便复习一下线程与进程的定义以及他们之间的区别。
进程:一个有独立功能的程序利用某些数据资源的一次远行过程。
线程:一个进程里面的一条执行路径(或者执行过程),同一条进程下的n多条线程之间可以互相通信(共享数据)。
区别:...
分类:
其他好文 时间:
2014-07-29 14:30:28
阅读次数:
314
1. 下载jdk:jdk-7u65-linux-x64.tar.gz2.解压这个包,可以用软件中心中下载的7Z解压 ,也可自己输入命令解压3.把解压的包移动到 /usr/lib/jvm下 sudo mv jdk1.7.0_65 /usr/lib/jvm4.修改当前登录用户配置文件: sudo ged...
分类:
其他好文 时间:
2014-07-29 11:52:36
阅读次数:
181
(转)http://www.cnblogs.com/shudonghe/p/3457990.html文主要介绍,JVM的组件,自动垃圾收集器是如何工作的,分代垃圾收集器的收集过程,使如何用Visual VM来监视应用的虚拟机,以及JVM中垃圾收集器的种类。一、JVM架构1、HotSpot 架构Hot...
分类:
编程语言 时间:
2014-07-29 11:49:46
阅读次数:
415
来张图:这个帖子写给新人的,老玩家就直接无视他,因为这个完完全全是白话基础原理。解释:上面的图是从上往下依次调用的关系。操作系统(Windows/Linux)管理硬件,让硬件能够正常、合理的运行,当然各种硬件的驱动实现了操作系统的接口,操作系统调用这些接口就能管理硬件,操作系统还像程序员提供了一层接...
分类:
编程语言 时间:
2014-07-28 23:52:44
阅读次数:
371
如果要向运行时常量池中添加内容,最简单的做法就是使用String.intern()这个Native方法。该方法的作用是:如果池中已经包含一个等于此String对象的字符串,则返回代表池中这个字符串的String对象;否则将此String对象包含的字符串添加到常量池中,并且返回此String对象的引用。..
分类:
其他好文 时间:
2014-07-28 16:44:34
阅读次数:
234
方法区用于存放Class的相关信息,如类名、访问修饰符、常量池、字段描述、方法描述等。对于这个区域的测试,基本的思路是运行时产生大量的类去填满方法区,虽然直接使用JavaSEAPI也可以动态产生类(如反射时的GeneratedConstructorAccessor和动态代理等),在本代码中借助CGLib直..
分类:
其他好文 时间:
2014-07-28 16:44:04
阅读次数:
281
DirectMemory容量可通过-XX:MaxDirectMemorySize指定,如果不指定,则默认与Java堆的最大值(-Xmx指定)一样。代码中越过了DirectByteBuffer类,直接通过反射获取Unsafe实例并进行内存分配(Unsafe类的getUnsafe()方法限制了只有引导类加载器才会返回实例,也就是设计者希望只有r..
分类:
其他好文 时间:
2014-07-28 16:43:04
阅读次数:
281
当Java处理的数据量比较大时常常会出现:java.lang.OutOfMemoryError: Java heap space意味着JVM的堆内存耗尽了。如果有需要的话,可以通过设置JVM的参数来调整Heap的大小。 这中间有几个参数:参数名称含义默认值-Xms初始堆大小物理内存的1/64(...
分类:
编程语言 时间:
2014-07-28 15:22:43
阅读次数:
257
一、基础知识:1、JVM、JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。 java语言是跨平台,jvm不是跨平台的。 JRE(Java Runtime Environment):java的运行环境,包括jvm+java的....
分类:
编程语言 时间:
2014-07-28 11:28:00
阅读次数:
244