C++有3种管理数据内存的方式:自动存储、静态存储和动态存储(有时也叫做自由存储空间或堆heap) 1. 自动存储 自动变量是一个局部变量,作用域为包含它的代码块。 自动变量通常存储在栈中,执行代码块时,其中的变量依次加入到栈中,离开代码块时,按相反的顺序释放这些变量,这被称为后进先出(LIFO)。 ...
分类:
编程语言 时间:
2017-09-24 19:18:32
阅读次数:
198
选择排序是每次从序列中挑出一个最小的数字放在开始位置,依次往后即可,如何找到最小的元素可以有两种方法。 1、简单选择排序,就是直接找了,每次找到最小那个放在起始位置。 2、堆排序,在二叉树中执行,要求每个节点都比左右节点大,整个树的根节点就是最大的,然后将根节点与最后一个节点调换位置,并重新排列,这 ...
分类:
编程语言 时间:
2017-09-24 14:31:33
阅读次数:
191
获取进程id:ps -ef | grep 'tomcat' 分析线程:jstack -l <pid> > 1.txt 分析内存:jmap -heap <pid> 分析发现线程并没有死锁,内存也没满。通过测试程序,发现同事用的httpclient工具包没有设置超时时间,当网络异常的时候,就一直不返回, ...
分类:
其他好文 时间:
2017-09-23 12:26:59
阅读次数:
180
关于LOH(Large Object Heap)的。 .NET CLR中对于大于85000字节的内存既不像引用类型那样分配到普通堆上,也不像值类型那样分配到栈上,而是分配到了一个特殊的称为LOH的内部堆上,这部分的内存只有在GC执行完全回收,也就是回收二代内存的时候才会回收。因此,考虑如下情形: 假 ...
分类:
其他好文 时间:
2017-09-22 14:10:08
阅读次数:
170
背景: 问题: //2g表示内存大小,32位的jdk最大好像不能超过3g,超过最大允许内存大小时会报下面这个错误 Successfully started process 'command '/g3an/ci/jdk1.7.0_79/bin/java'' Invalid maximum heap s ...
分类:
移动开发 时间:
2017-09-20 23:19:11
阅读次数:
247
1、命令基本概述 Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。 使用方法 jmap -histo pid。如果使用SHELL ,可采用jmap -hist ...
分类:
其他好文 时间:
2017-09-20 11:55:40
阅读次数:
145
假如面试回答js的运行机制时,你可能说出这么一段话:“Javascript的事件分同步任务和异步任务,遇到同步任务就放在执行栈中执行,而碰到异步任务就放到任务队列之中,等到执行栈执行完毕之后再去执行任务队列之中的事件。”但你能说出背后的原因吗? 1.线程与进程 进程:是系统资源分配和调度的单元。一个 ...
分类:
编程语言 时间:
2017-09-17 20:53:59
阅读次数:
203
方法区、堆、栈、程序计数器、本地方法栈方法区(永久去):类定义,常量,静态变量,各个线程共享的内存区域,即时编译的代码heap:类对象,list,数组 线程共享区栈:程序执行时是线程,线程执行就是调用方法,有(局部变量),每个线程都有自己的(线程私有的);每个方法调用都产生一个栈帧,调用方法就是入栈 ...
分类:
编程语言 时间:
2017-09-17 19:04:10
阅读次数:
103
new class new关键字实际上是在heap(堆中)开辟了一块内存,而等号右边的这个对象实际上就是一个内存地址 getInstance() getInstance()主要是调用类中的static静态方法而获得的对象,属于单例对象,比如Calendar类的 区别: 1、getInstance() ...
分类:
其他好文 时间:
2017-09-17 00:23:29
阅读次数:
203
#include #include typedef struct node { int id; int pri; struct node *left; struct node *right; struct node *parent; }heapDataType; typedef struct { b... ...
分类:
其他好文 时间:
2017-09-16 16:14:03
阅读次数:
239