针对的是堆内存。 Java中的每种数据类型大小都是确定的,所以所有的内存是由Java自己进行分配,意味着内存的管理和回收也是由JVM自己进行—在Java中一旦产生内存问题导致程序员无法处理。理论上在正常情况下Java中的堆内存是足够使用的 — 当堆内存使用的负荷量(一般情况下70%)超过一定限度的时 ...
分类:
其他好文 时间:
2018-09-09 18:04:37
阅读次数:
140
内存机制: Java的内存机制分为堆内存,栈内存,方法区等。 两者差别: 堆内存主要存放实体对象,用来存放new的对象和数组引用变量的实体对象。由虚拟机自动垃圾回收器管理。 栈内存主要存放基本基本类型的变量。 方法区主要存放一个类的模板和静态方法。 声明位置的不同决定储存位置 在方法中声明(局部变量 ...
分类:
编程语言 时间:
2018-09-09 15:06:00
阅读次数:
174
强引用:如果一个对象具有强引用,它就不会被垃圾回收器回收。即使当前内存空间不足,JVM 也不会回收它,而是抛出 OutOfMemoryError 错误,使程序异常终止。如果想中断强引用和某个对象之间的关联,可以显式地将引用赋值为null,这样一来的话,JVM在合适的时间就会回收该对象 。 软引用:在 ...
分类:
编程语言 时间:
2018-09-04 01:39:55
阅读次数:
149
1.使用new创建对象,在堆内存分配对象空间、初始化; 2.在方法栈中定义局部变量,吃用对堆内存中对象的引用; 3.方法执行完返回,栈内存自动释放,局部变量销毁; 4.如果堆内存中对象没有变量引用它,成为垃圾,有垃圾回收器回收,释放所占堆内存 5.Java垃圾回收器 (1)Java运行时系统有一个垃 ...
分类:
编程语言 时间:
2018-08-24 02:09:41
阅读次数:
151
什么是异常: 异常就是Java程序在运行过程中出现的错误。 骚话: 世界上最真情的相依就是你在try我在catch,无论你发什么脾气,我都静静接受,默默处理(这个可以不记) 异常继承体系图: 异常处理的方式: try{ 用来检测异常的 } catch(){ 用来捕获异常的 }finally{ 一定会 ...
分类:
编程语言 时间:
2018-08-12 21:51:27
阅读次数:
187
本章内容 垃圾回收器是什么,它如何工作,如何定位垃圾回收器产生的问题。 如何控制ElasticSearch的I/O操作数量。 预热器加快搜索速度的原理及其示例。 什么是热点线程以及如何获取热点线程的列表。 在诊断集群和节点故障时应使用哪个ElasticSearch API 6.1 了解垃圾回收器 6 ...
分类:
其他好文 时间:
2018-08-05 13:11:41
阅读次数:
195
垃圾回收 1. 小整数对象池 整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。 Python 对小整数的定义是 [-5, 257) 这些整数对象是提前建立好的,不会被垃圾回收。在一个 Python 的程序中,所有位于这个范围内的整数使用的 ...
分类:
编程语言 时间:
2018-08-03 23:17:13
阅读次数:
238
http://blog.jobbole.com/109170/ https://blog.csdn.net/baiye_xing/article/details/73743395 G1垃圾收集器关键技术。 G1垃圾回收器是如何划分堆空间的呢? G1垃圾回收器将内存分成一个个小块区域,这些小块区域的大 ...
分类:
其他好文 时间:
2018-08-03 16:25:12
阅读次数:
218
讲到垃圾回收,首先就要先知道哪些对象是可以回收的。 可达性算法 这里有必要先了解一下可达性算法,以“GC Roots”的对象作为起始点,若从“GC Roots”到某对象不可达时,此对象会被判定为可回收对象。 可作为GC Roots的对象包括下面几种: 1、虚拟机栈(栈帧中的本地变量表)中引用的对象。 ...
分类:
其他好文 时间:
2018-07-29 15:24:36
阅读次数:
175
Java四种引用包括强引用,软引用,弱引用,虚引用。 强引用:只要引用存在,垃圾回收器永远不会回收Object obj = new Object();//可直接通过obj取得对应的对象 如obj.equels(new Object());而这样 obj对象对后面new Object的一个强引用,只有... ...
分类:
编程语言 时间:
2018-07-26 21:13:14
阅读次数:
181