HotSpot虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,没有最好的垃圾收集器,只有最适合的垃圾收集器。根据新生代和老年代各自的特点,我们应该分别为它们选择不同的收集器,以提升垃圾回收效率。 新生代垃圾收集器: a) 单线程:只开启一条GC线程进行垃圾回收,并且在垃圾回收过程中停止一切用户 ...
分类:
其他好文 时间:
2019-03-31 18:07:30
阅读次数:
183
一、对象创建的过程:当虚拟机遇到一条含有New的指令时,会进行一系列对象创建的操作。 a) 如果含有的话,直接进行下一步 b) 如果常量池中没有这个符号引用的话,说明这个类还没有被定义,回报ClassNotFounddError的异常。 2.检查该符号引用所属的类是否已经被加载到JVM中 a) 如果 ...
分类:
其他好文 时间:
2019-03-31 18:06:46
阅读次数:
132
1.让程序阻塞(抛出异常会导致程序结束,所以在抛出异常之前阻塞) 2. windows控制台 cd到jdk目录下的lib目录,找到sa-jdi.jar 执行: java -classpath sa-jdi.jar "sun.jvm.hotspot.HSDB" 出现如下窗口: 点File—>Attac ...
分类:
编程语言 时间:
2019-03-29 17:23:46
阅读次数:
277
由于在Hotspot虚拟机中中不区分虚拟机栈和本地方法栈,因此通过-Xoss修改参数是无效的,可以通过修改-Xss设定。 如果线程请求的栈深度大于虚拟机允许的最大深度,将抛出StackOverflowError异常。 如果虚拟机在扩展栈时无法申请到足够的内存空间,将抛出OutOfMemoryErro ...
分类:
编程语言 时间:
2019-03-29 01:18:04
阅读次数:
190
对象创建 对象创建 虚拟机遇到一个new指令时,首先去,检查这个指令的参数是否在常量池中定位到一个雷的符号引用,并且检查这个符号引用代表的雷是否已被加载、解析、初始化过。 在类加载检查通过后,虚拟机将会为新对象分配内存,对象所需要的内存大小在加载后可以确定,为对象分配内存的任务就是把一块确定大小的内 ...
分类:
其他好文 时间:
2019-03-28 00:31:07
阅读次数:
143
官方地址是: http://hg.openjdk.java.net/ jdk8的下载地址: http://hg.openjdk.java.net/jdk8/jdk8/hotspot/ 点击zip即可开始下载,实际下载地址(以jdk8为例): http://hg.openjdk.java.net/jd ...
分类:
其他好文 时间:
2019-03-24 18:51:40
阅读次数:
190
问题: 在使用java-1.8.0-openjdk环境查看JVM使用情况的时候,遇到了如下报错: 解决: 经过多方查询找到了原因:这里-heap参数会调用用到了sun.jvm下的debug包,而默认openJDK的安装中不包含! 解决方法: 下载并安装一个java-openjdk-debug插件!而 ...
分类:
其他好文 时间:
2019-03-21 20:24:37
阅读次数:
252
Java虚拟机(JVM)内部定义了程序在运行时需要使用到的内存区域 1、线程间共享的内存区域 (1)HEAP (堆) 大多数应用,堆都是Java虚拟机所管理的内存中最大的一块,它在虚拟机启动时创建,此内存唯一的目的就是存放对象实例。由于现在垃圾收集器采用的基本都是分代收集算法,所以堆还可以细分为新生 ...
分类:
编程语言 时间:
2019-03-21 20:19:39
阅读次数:
188
[oracle@tim1 ~]$ dbca## An unexpected error has been detected by HotSpot Virtual Machine:## SIGSEGV (0xb) at pc=0xb79b95e9, pid=6663, tid=2791447440## ...
分类:
数据库 时间:
2019-03-11 22:28:05
阅读次数:
255