全局变量:静态存储区 非静态局部变量(包括形参):动态存储区 >栈(stack) 建立内存动态分配区域,存放临时数据 >堆(heap)由于未在声明部分定义他们为变量,只能通过指针来引用。
分类:
其他好文 时间:
2016-03-23 14:25:09
阅读次数:
167
用几个词来概括下漏洞原理:Arm+heap overflow(house of force)+dl-resolve Info leak: 在printf key8时,泄漏堆上地址。 增大top chunk的大小 可以保证下一次malloc时,申请到任意地址内存 申请内存,覆盖secret, name
分类:
其他好文 时间:
2016-03-23 11:20:36
阅读次数:
223
主要是为了“效率” 和 “安全性” 的缘故。若 String允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所以String被定义成final。 只有当字符串是不可变的,字符串池才有可能实现。字符串池的实现可以在运行时节约很多heap空间,因为不同的字符串变量都指向池中的同一个字符串。但
分类:
其他好文 时间:
2016-03-22 19:25:04
阅读次数:
216
以上的输出很简单,第四行起开始输出此进程的JAVA使用的环境。Heap Configuration:指java应用启动时设置的JVM参数。像最大使用内存大小,年老代,年青代,持久代大小等。 Heap Usage:当时的heap实际使用情况。包括新生代、老生代和持久代。 其中新生代包括:Eden区的大
分类:
其他好文 时间:
2016-03-22 18:58:26
阅读次数:
207
Given an integer array, heapify it into a min-heap array. Given [3,2,1,4,5], return [1,2,3,4,5] or any legal heap array.
1栈 -- 由编译器自动分配释放。 2堆 -- 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。 3全局区(静态存储区)-- 全局变量和静态变量的存储是放在一块区域 ,程序退出后自动释放 。全局区又分为全局初始化区和全局未初始化区。初始化的全局变量和静态变量存放在全局初始化区,未初始
分类:
移动开发 时间:
2016-03-20 17:48:45
阅读次数:
201
最近复习数据结构,又回去再看塞神的课件,看到PriorityQueue的实现。自己也根据塞神的代码写一写。 下面使用Binary Heap实现了一个简单的 Max-oriented PriorityQueue。 http://algs4.cs.princeton.edu/24pq/
What is ASLR? Address space layout randomization (ASLR) is an exploit mitigation technique that randomizes Stack address. Heap address. Shared library...
分类:
系统相关 时间:
2016-03-19 21:15:04
阅读次数:
601
JAVA 内存管理总结 java 是如何管理内存的 Java 的内存管理就是对象的分配和释放问题。(两部分) 分配 :内存的分配是由程序完成的,程序员需要通过关键字 new 为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。 释放 :对象的释放是由垃圾回收机制决定和
分类:
编程语言 时间:
2016-03-19 14:17:56
阅读次数:
250
堆排序是一种树形选择排序,是对直接选择排序的有效改进。 基本思想: 堆的定义如下:具有n个元素的序列(k1,k2,...,kn),当且仅当满足 时称之为堆。由堆的定义可以看出,堆顶元素(即第一个元素)必为最小项(小顶堆)。 若以一维数组存储一个堆,则堆对应一棵完全二叉树,且所有非叶结点的值均不大于(
分类:
编程语言 时间:
2016-03-18 21:36:13
阅读次数:
200