堆排序的堆不是指内存区域里面的堆,而是一种数据结构。堆可以分为“大顶堆”和“小顶堆”,堆其实是一种特殊的二叉树,“大顶堆”中根元素总比叶子元素大,“小顶堆”中根元素总比叶子节点小。当然要创建这样的堆结构还是有一定难度的,请自行参考其他资料。
这里我们使用到的是 STL 中的 priority_queue 这个结构,这个默认就是一个“大顶堆”,所以用这个数据结构我们来实现排序就很简单了。代码...
分类:
编程语言 时间:
2015-08-21 19:35:26
阅读次数:
209
BSS(Block Started by Symbol)通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。特点是:可读写的,在程序执行之前BSS段会自动清0。所以,未初始的全局变量在程序执行之前已经成0了。
数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。
代码段:代码段(code segment...
分类:
系统相关 时间:
2015-08-20 16:53:52
阅读次数:
166
概述
共享内存是进程间通信中最简单的方式之一。共享内存允许两个或更多进程访问同一块内存,就如同
malloc() 函数向不同进程返回了指向同一个物理内存区域的指针。当一个进程改变了这块地址中的内容的时候,其它进程都会察觉到这个更改。
共享内存的特点:
1)共享内存是进程间共享数据的一种最快的方法。
一个进程向共享的内存区域写入了数据,共享这个内存区域的所有...
分类:
其他好文 时间:
2015-08-17 14:10:29
阅读次数:
175
程 序员都了解初始化的重要性,但常常会忘记同样重要的清除工作。毕竟,谁需要清除一个int 呢?但在使用程序库时,把一个对象用完后就“弃之不顾”的做法并非总是安全的。当然,Java有垃圾回收器来回收无用对象占据的内存资源。但也有特殊情 况:假定你的对象(并非使用 new)获得了一块“特殊”的内存区域,...
分类:
编程语言 时间:
2015-08-17 06:30:25
阅读次数:
189
java方法区【名词解析】 --->和java堆一样,方法区是一块所有线程共享的内存区域。 --->保存系统的类信息,比如,类的字段,方法,常量池等。 --->方法区的大小决定了系统可以保存多少个类,如果系统定义了太多的类,导致方法区溢出,虚拟机同样会抛出内存溢出的错误 --->jdk1.6和jdk...
分类:
编程语言 时间:
2015-08-16 19:47:11
阅读次数:
182
1. 定义: 野指针是指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为NULL来避免,而只能通过养成良好的编程习惯来尽力减少,对野指针进行操作容易造成程序错误。2. 形成原因:(1)指针变量未初始化 任何指针变量刚被创建时不会自动成为NULL指针,.....
分类:
其他好文 时间:
2015-08-16 11:59:12
阅读次数:
145
// main.m
// 03-僵尸对象(野指针)
//
// Created by wanghy on 15/8/13.
//
//什么叫野指针:野指针就是没有指向具体地址的指针野指针指指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为 NULL避免,而只能通过养成良好的编程习惯来尽力减少。对野指针进行操作很容易造成程序错误。
/*
僵尸对象...
分类:
其他好文 时间:
2015-08-15 21:35:11
阅读次数:
117
1:线程 1.1:线程是什么?线程与进程。 进程:正在运行的程序。windows是多进程的系统。每一个进程有自己的内存区域,也就是每个进程都会占用一定的内存。一般打开应用程序就会有进程的了。 线程:进程的一个分支,一个进程至少包含一个线程。一个进程就叫单线程。每个线程是共享一个内存区域,应该就是共享...
分类:
编程语言 时间:
2015-08-15 17:54:48
阅读次数:
138
流式IO 流(Stream)是字节的源或目的。 两种基本的流是:输入流(Input Stream)和输出流(Output Stream)。可从中读出一系列字节的对象称为输入流。而能向其中写入一系列字节的对象称为输出流。 流的分类 节点流:从特定的地方读写的流类,例如:磁盘或一块内存区域。 过滤流:使...
分类:
编程语言 时间:
2015-08-13 17:29:46
阅读次数:
239
1、内存区域的划分标准:代码段 存储代码 数据段 静态/全局数据、常量(const) 堆区(heap) 动态内存分配(更灵活的设置容器大小存储数据) 栈区(stack) 局部变量、函数参数2、内存分配方式的原理:静态分配和动态分配 静态分配:编译器在处理程序源代码...
分类:
编程语言 时间:
2015-08-13 11:32:39
阅读次数:
161