堆设置 -Xms:初始堆大小 -Xmx:最大堆大小 -XX:NewSize=n:设置年轻代大小 -XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4 -XX:SurvivorRatio=n:年轻代中Eden区与两个Sur ...
分类:
其他好文 时间:
2019-01-12 13:09:31
阅读次数:
197
当我们要在一组数据中找到最小/大值或者前K大/小值的时候,我们可以使用传统的遍历方法。那么这个时候时间复杂度就是$O(N^2)$,但我们可以使用"堆"来进行优化,我们可以把找到最小/大值的复杂度降低到$O(logN)$。插入一个新值的复杂度也是$O(logN)$。 维护一个堆关键的就是向下维护和向上 ...
分类:
其他好文 时间:
2019-01-11 18:05:06
阅读次数:
188
堆(heap) 1. 堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。 根节点最大的堆叫做最大堆、大根堆或大顶堆 根节点最小的堆叫做最小堆、小根堆或小顶堆 常见的堆还有二叉堆、斐波那契堆等。 2. 堆是在程序运行时 ...
分类:
其他好文 时间:
2019-01-03 22:41:04
阅读次数:
209
目录介绍6.0.0.1运行时数据区域有哪些?Java虚拟机栈是做什么的?本地方法栈又是做什么的?6.0.0.2对象的内存布局?对象的访问定位方式有哪些?使用指针访问和使用句柄访问各具有何优势?6.0.0.3说一下对象的创建过程?变量创建过程种放在虚拟机哪里?6.0.0.4OutOfMemoryError异常在哪些数据区域中可能会出现?分别说一下这个数据区域出现OOM的场景和缘由?6.0.0.6Ja
分类:
编程语言 时间:
2018-12-27 03:31:17
阅读次数:
169
一、准备知识 1.堆 堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。 将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二 ...
分类:
编程语言 时间:
2018-12-24 23:30:33
阅读次数:
248
java内存结构 一、垃圾回收机制 堆内存分为:新生代,老年代 默认比例: 1:2 新生代:刚出生不久的对象,存放在新生代里面,存放不是经常使用的对象 老年代:存放比较活跃的对象,存放经常被引用的对象 垃圾回收机制回收在新生代比较频繁,老年代回收的次数比较少。 二、jvm参数调优 常见参数配置 -X ...
分类:
其他好文 时间:
2018-12-23 18:02:18
阅读次数:
194
二叉堆可以被看作是一个数组,也可以简单的看作是一个近似的完全二叉树,二叉堆有最大堆和最小堆,分别具有堆的性质:最大堆的某个结点的值最多与其父结点一样大,最小堆则是某个结点的值最多与其父结点一样小。所以最大堆中最大的结点永远是根结点,最小堆中最小的结点永远是根节点。 既然二叉堆是一种数据结构,就有其支 ...
分类:
其他好文 时间:
2018-12-22 17:28:49
阅读次数:
187
脑袋不够用,所以记录下来 python 版本 构建 最大堆 class Utils(object): @staticmethod def buildMaxHeap(l=None,heap_size=None): if heap_size is None: heap_size = len(l) for ...
分类:
编程语言 时间:
2018-12-12 14:52:24
阅读次数:
261
堆是一种类似二叉树的数据结构,分为最大堆和最小堆,最大堆得定义是当前节点必须大于左右子节点,堆中所有节点都要符合这个定义。最小堆反之。这一点不同于二叉树排序。假设有数组int a[10] = {90,45,21,43,22,77,13,89,56,84},根据最大堆来初始化数组 最大堆初始化代码思路 ...
分类:
编程语言 时间:
2018-12-11 18:15:18
阅读次数:
230
堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制.32位系统 下,一般限制在1.5G~2G;64为操作系统对内存无限制.我在Windows Server 2003 系统,3.5G物理内存,JDK5. ...
分类:
其他好文 时间:
2018-12-06 20:27:48
阅读次数:
192