这里先说两个概念:1、堆(heap)2、栈(stack)堆 是堆内存的简称。栈 是栈内存的简称。说到堆栈,我们讲的就是内存的使用和分配了,没有寄存器的事,也没有硬盘的事。各种语言在处理堆栈的原理上都大同小异。堆是动态分配内存,内存大小不一,也不会自动释放。栈是自动分配相对固定大小的内存空间,并由系统 ...
分类:
Web程序 时间:
2020-02-06 19:51:16
阅读次数:
95
众所周知, BST 的操作复杂度是 $O(\log n)$ ,但 BST 可能会退化成一条链,于是我们可以使用平衡树。 平衡树有很多种,但我还只会三种(我太菜了):Treap,Splay,fhq Treap Treap Treap 记录了一个优先级,并在满足构成 BST 的同时,会按照优先级的大小来 ...
分类:
其他好文 时间:
2020-02-03 17:23:30
阅读次数:
88
堆的详细创建过程:参考:https://www.jianshu.com/p/21bef3fc3030 明白堆的详细创建过程的前提是要理解Shift Down。 但是这明显不符合最大堆的定义,所以我们需要让该完全二叉树转换成最大堆!怎么转换成一个最大堆呢? 最大堆有一个特点就是其各个子树都是一个最大堆 ...
分类:
其他好文 时间:
2020-02-02 19:38:51
阅读次数:
61
OOM 异常 (OutOfMemoryError) OOM 异常 (OutOfMemoryError) Java 堆溢出 Java 虚拟机栈和本地方法栈溢出 方法区和运行时常量池溢出 直接内存溢出 Java 堆溢出 出现标志:java.lang.OutOfMemoryError: Java heap ...
分类:
编程语言 时间:
2020-02-01 19:47:03
阅读次数:
109
[toc] 容器结构分类 这里的衍生,并非继承关系,而是一种包含关系。 例如heap中包含一个vector。 通过萃取机traits萃取迭代器的型别 容器list list在要内存时,不光需要一个指针,还需要指向前后的两个指针。 list的定义 list的node定义 G2.9编译器的设计是如下所示 ...
分类:
其他好文 时间:
2020-02-01 14:51:31
阅读次数:
90
Java5以后开始支持枚举类型,枚举类型使用起来非常方便,其重要的作用是作为类型安全使用的。如果在不考虑系统内存开销的情况下大量的使用枚举也不会有什么问题。但是移动端还是需要注意的。 android系统在应用启动后会给应用单独分配一块内存。应用的dex code、heap以及运行时的内存分配都会在这 ...
分类:
移动开发 时间:
2020-01-31 00:57:25
阅读次数:
96
PAT 甲级 Advanced 1033 To Fill or Not to Fill (25) [贪?算法] ...
分类:
编程语言 时间:
2020-01-30 17:34:07
阅读次数:
71
连接与线程查看连接信息showprocesslist+----+------+------------------+------+---------+------+----------+------------------+|Id|User|Host|db|Command|Time|State|Info+----+------+------------------+------+---------
分类:
数据库 时间:
2020-01-28 21:15:14
阅读次数:
79
StackOverflowError 比较常见的问题,虚拟机栈中栈帧过多超出栈容量,常见发生在递归方法深度过深。 OutOfMemoryError java heap space java堆内存不足以放下新生成的对象实例,1.考虑是否程序中存在内存泄露导致大量不需要的实例仍然占用内存未被回收2.当前 ...
分类:
编程语言 时间:
2020-01-25 16:59:50
阅读次数:
75
7.1 简介 在 算法库里有一个强大的排序函数 ,使用方便,速度快,基本上能解决我们在平时遇到的大多数排序问题,使用 函数需要包含算法库: 7.2 排序 定义原型: 1. 2. 3. 对序列 区间的元素默认按升序,如有比较函数,按比较函数规则排序 4. 不是稳定排序( 相同 的 元素 在排序后相对位 ...
分类:
编程语言 时间:
2020-01-24 14:36:42
阅读次数:
109