动态内存分配堆内存分配与释放C/C++定义了四个内存区间:代码区,全局变量与静态变量区,局部变量区(栈区),动态内存区(堆区)通常定义变量(或对象),编译器在编译时都可以根据该变量(或对象)的类型知道所需内存空间的大小,从而系统在适当的时候为他们分配确定的存储空间。这种内存分配称为静态存储分配。有些...
分类:
其他好文 时间:
2014-06-29 15:33:25
阅读次数:
246
一、预先需要掌握的知识(java虚拟机) 1)java虚拟机的方法区:
java虚拟机有一个运行时数据区,这个数据区又被分为方法区,堆区和栈区,我们这里需要了解的主要是方法区。方法区的主要作用是存储被装载的类
的类型信息,当java虚拟机装载某个类型的时候,需要类装载器定位相应的class文...
分类:
编程语言 时间:
2014-06-07 04:26:02
阅读次数:
269
1.线程 也称为轻量级进程,每个线程有自己的堆栈、程序计数器、局部变量。与进程相比,进程中的线程之间隔离程度要小2.Java实现①implements
Runnable②extends Thread一般推荐①3.sleep()、yield()sleep()方法对当前线程操作,指定以毫秒为单位的线程最...
分类:
编程语言 时间:
2014-05-30 12:38:41
阅读次数:
285
[内存结构]C程序通过编译-汇编-连接,最后到可执行文件。载入内存有这几个部分:text:正文段,存放的是可执行的机器码段data:存放初始化之后的全局变量和静态变量bbs:存放未初始化的静态变量和全局变量heap:堆,由程序员自己分配和释放,程序结束时,操作系统也会释放。stack:
栈,编译器自...
分类:
编程语言 时间:
2014-05-30 08:35:07
阅读次数:
373
IOS设备的内存很有限,所以在OC中内存管理至关重要,虽然现在有ARC机制(自动管理内存),但是我们还是需要了解和清楚OC的内存管理。非OC对象是不需要进行内存管理的,因为非OC对象一般放在栈里面(栈内存会被系统自动回收),OC对象是放在堆里面的。1.oc中对象创建Person
*p = [Pers...
分类:
其他好文 时间:
2014-05-30 06:50:10
阅读次数:
327
ECMAScript变量基本类型:5引用类型存于内存栈实际对象位于内存堆按值访问,可操作保存在变量中实际的值js不能直接操作对象的内存空间,而是操作它的引用不可添加属性和方法可添加属性和方法变量复制是一个实际的值,互不干扰变量复制是一个指针,指向相同的对象,改变其中一个变量会影响另一个Undefin...
分类:
编程语言 时间:
2014-05-30 03:07:45
阅读次数:
313
堆和栈的区别(转贴)非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(he...
分类:
其他好文 时间:
2014-05-29 13:24:06
阅读次数:
246
一个DBA同事昨天在执行一个命令行工具的时候发现程序hang住,问题挺有意思,值得记录下。
首先用pstack看了下程序的调用栈,这是个多线程程序,pstack结果看到几乎所有的线程都等在write调用上。如下是pt-pmp的输出结果:Tue May
27 18:30:06 CST 2014 ...
分类:
其他好文 时间:
2014-05-29 13:06:39
阅读次数:
351
一、寄存器的英文全称AH&AL=AX(accumulator):累加寄存器
BH&BL=BX(base):基址寄存器 CH&CL=CX(count):计数寄存器 DH&DL=DX(data):数据寄存器
SP(Stack Pointer):堆栈指针寄存器 BP(Base Pointer):基址指针寄...
分类:
其他好文 时间:
2014-05-28 19:09:52
阅读次数:
300
1 // 这段代码显示,在C语言修改函数的返回地址 2 int test1() 3 { 4
return 0; 5 } 6 7 int test2(int a) 8 { 9 *(&a-1) = (int)test1; //
将返回地址修改为test1 10 retu...
分类:
编程语言 时间:
2014-05-28 15:25:28
阅读次数:
320