1.几个基本的概念 进程(Process): 一个程序运行起来时在内存中开辟一段空间用来运行程序,这段空间包括heap、stack、data segment和code segment。例如,开一个QQ就表明开了一个QQ进程。 线程(Thread): 每个进程中都至少有一个线程。线程是指程序中代码运行 ...
分类:
编程语言 时间:
2018-11-09 00:52:42
阅读次数:
198
#include<iostream>#include<algorithm>#include<vector>using namespace std;int min(int a,int b){ return a>b?b:a;}template<class T> //堆的实现class Heap{ vec ...
分类:
其他好文 时间:
2018-11-08 23:19:31
阅读次数:
217
题意:给你n个数字s1~sn,要你把它们组成一棵棵二叉树,对这棵二叉树来说,所有节点来自S,并且父节点si<=子节点sj,并且i<j,问你树最少几棵二叉数、树 思路:贪心。我们往multiset加还能加子节点的节点,二分查找一个个大于等于当前插入节点的节点,然后插入,若找不到则重新建一棵树。 没想到 ...
分类:
其他好文 时间:
2018-11-08 00:13:46
阅读次数:
136
锁是指谁? Object o = new Object(); Synchronized(o); 我们一般认为Synchronized锁定的是这段代码块但事实上,Synchronized锁定的是锁这个对象。不仅如此Synchronized锁定的是heap内存中的这个对象而不是这个引用。 一个例子 / ...
分类:
其他好文 时间:
2018-11-06 11:06:34
阅读次数:
228
1)、java监控工具使用 jconsole是一种集成了上面所有命令功能的可视化工具,可以分析jvm的内存使用情况和线程等信息 visualvm 提供了和jconsole的功能类似,提供了一大堆的插件。 插件中,Visual GC(可视化GC)还是比较好用的,可视化GC可以看到内存的具体使用情况。 ...
分类:
编程语言 时间:
2018-11-04 17:04:18
阅读次数:
166
Java程序而言,Java虚拟机有自动内存管理机制,不需要开发人员去手动释放内空间,也不容易出现内存泄漏和溢出的问题,一切看起来都很完美。一旦出现内存泄漏和溢出方面的问题,如果不了解Java虚拟机是怎么样使用内存的,那么排查起来将困难。以往对内存的理解仅仅停留在栈、堆这两个部分,其实Java虚拟机的 ...
分类:
编程语言 时间:
2018-11-04 00:44:34
阅读次数:
212
好无聊啊,写博客吧。 众所周知,pq跑的比set快 好吧,但是pq的默认容器是vector,不吸氧不够快啊。 在数次尝试用pq卡常失败后,我决定看一看pq的实现。 发现这东西不是很行,就几十行代码,调用了三个函数,make_heap push_heap pop_heap 好吧,有内部实现还不能魔改吗 ...
分类:
编程语言 时间:
2018-11-04 00:40:54
阅读次数:
213
-XX:+HeapDumpOnOutOfMemoryError 添加 -XX:+HeapDumpOnOutOfMemoryError 启动参数,当出现 Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 异常时 ...
分类:
其他好文 时间:
2018-11-04 00:40:46
阅读次数:
123
转自:https://www.jianshu.com/p/5946c0a414b5 需要提前了解的知识点: JVM内存模型 JVM垃圾回收算法 下图是JVM内存区域划分的逻辑图 JVM内存区域逻辑图 从图中我们大概了解JVM相关的内存区域。 JVM内存包括区域 Heap(堆区) New Genera ...
分类:
其他好文 时间:
2018-11-03 23:13:52
阅读次数:
205
JavaScript中数据类型的存储 区别: 两种类型的区别是:存储位置不同 基本数据类型 原始数据类型是直接存储在栈(stack)中的简单数据段。因为占据空间小、大小固定,属于被频繁使用数据,所以放入栈中存储。 引用数据类型 引用数据类型存储在堆(heap)中的对象,占据空间大、大小不固定。如果存 ...
分类:
编程语言 时间:
2018-11-03 14:40:13
阅读次数:
174