“free store” VS “heap” 当我问你C++的内存布局时,你大概会回答: “在C++中,内存区分为5个区,分别是堆、栈、自由存储区、全局/静态存储区、常量存储区”。 如果我接着问你自由存储区与堆有什么区别,你或许这样回答: “malloc在堆上分配的内存块,使用free释放内存,而n ...
分类:
编程语言 时间:
2020-07-24 16:03:35
阅读次数:
87
问题 在我们查看很多配置文件的时候都会有一大堆注释影响我们阅读配置,我们可以采取下面的方法过滤掉注释进行阅读: cat server.properties |grep -v "#" 这样就只会查看到配置,不会看到注释 ...
分类:
系统相关 时间:
2020-07-24 15:59:43
阅读次数:
111
JavaScript 1、原始值和引用值类型和区别 原始值类型:Number、String、Boolean、Null、Undefined 引用值类型:Object、Array、Function、Date、RegExp 区别:原始值存储在栈中,引用值把引用变量存储在栈中,而实际的对象存储在堆中,每一个 ...
分类:
Web程序 时间:
2020-07-24 09:21:02
阅读次数:
124
堆(heap)是一个巨大的对象池。在这个对象池中管理着数量巨大的对象实例。而池中对象的引用层次,有的是很深的。一个被频繁调用的接口,每秒生成对象的速度,也是非常可观的。对象之间的关系,形成了一张巨大的网。虽然 Java 一直在营造一种无限内存的氛围,但对象不能只增不减,所以需要垃圾回收。 那 JVM ...
分类:
其他好文 时间:
2020-07-23 23:27:13
阅读次数:
135
搜索依然爆炸的烂,继续加油吧。 题解:按照 h 排序的大根堆,每次寻找四周 h 小的接上dp串。 #include <iostream> #include <queue> #include <algorithm> using namespace std; /* * time: 2020.7.23 * ...
分类:
其他好文 时间:
2020-07-23 23:26:22
阅读次数:
94
堆和栈都是Java用来在RAM中存放数据的地方。 堆 (1)Java的堆是一个运行时数据区,类的对象从堆中分配空间。这些对象通过new等指令建立,通过垃圾回收器来销毁。 (2)堆的优势是可以动态地分配内存空间,需要多少内存空间不必事先告诉编译器,因为它是在运行时动态分配的。但缺点是,由于需要在运行时 ...
分类:
编程语言 时间:
2020-07-23 23:06:45
阅读次数:
75
Java运行时数据区: 主要分为线程共享部分和线程独占部分两个部分 线程共享部分: 所有线程都能访问的内存区域,随着虚拟机或者GC而创建和销毁,主要分为方法区和堆内存 方法区: JVM用来存储加载的类信息,常量,静态变量,编译后的代码等数据 方法区在java虚拟机规范中是一个逻辑区划,不同虚拟机的实 ...
分类:
编程语言 时间:
2020-07-23 22:25:11
阅读次数:
85
既然是队列那么先要包含头文件#include <queue>, 他和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队 优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的 和队列基本操作相同: top 访问队头元 ...
分类:
编程语言 时间:
2020-07-23 16:30:46
阅读次数:
89
初始化 方法1:插入法: 从空堆开始,依次插入每一个结点,直到所有的结点全部插入到堆为止。 时间:O(n*log(n)) 方法2:调整法: 序列对应一个完全二叉树;从最后一个分支结点(n div 2)开始,到根(1)为止,依次对每个分支结点进行调整(下沉), 以便形成以每个分支结点为根的堆,当最后对 ...
分类:
其他好文 时间:
2020-07-23 16:19:52
阅读次数:
68
1.什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能实现的。java虚拟机包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收堆和一个存储方法域。JVM屏蔽了与具 ...
分类:
其他好文 时间:
2020-07-23 01:54:16
阅读次数:
111