堆和栈的区别是什么? 首先,讨论的堆和栈指的是内存中的“堆区”和“栈区”,OC语言是C语言的超集,所以先了解C语言的内存模型的内存管理会有很大的帮助。C语言的内存模型分为5个区:栈区、堆区、静态区、常量区、代码区。每个区存储的内容如下: 1、栈区:存放函数的参数值、局部变量等,由编译器自动分配和释放 ...
分类:
其他好文 时间:
2019-07-25 12:11:24
阅读次数:
100
C++基础知识 static关键字 用于声明静态对象; 静态函数只在本文件可见。(默认是extern的) 全局静态对象:全局静态对象,存储在全局/静态区,作用域整个程序,在程序结束才销毁; 局部静态对象:在函数内部加上static声明的变量,在首次调用时初始化,然后一直驻留在内存,作用域是该函数,可 ...
分类:
编程语言 时间:
2019-07-19 22:33:27
阅读次数:
547
一 数据类型 1.1 8种基本数据类型 1.2 引用数据类型 1.3 java内存机制 1.3.1 寄存器 1.3.2 栈 1.3.3 堆 1.3.4. 静态区/方法区 1.3.5. 运行时常量池(Runtime Constant Pool) 1.3.6 直接内存(Direct Memory) 二: ...
分类:
编程语言 时间:
2019-07-17 20:25:05
阅读次数:
135
在《C++ Primer 中文版(第五版)》(电子工业出版社)中的说法有: 当一个对象被用作右值的时候,用的是对象的值(内容);当对对象被用作左值的时候,用的是对象的身份(在内存中的位置)。 而我在再次学习计算机原理中的“代码区、常量区、全局(静态)区、堆区、栈区”后想到的一个新理解是: 右值是不可 ...
分类:
其他好文 时间:
2019-07-16 00:25:51
阅读次数:
126
题目背景 这是一道ST表经典题——静态区间最大值 请注意最大数据时限只有0.8s,数据强度不低,请务必保证你的每次查询复杂度为 O(1)O(1) 这是一道ST表经典题——静态区间最大值 请注意最大数据时限只有0.8s,数据强度不低,请务必保证你的每次查询复杂度为 O(1)O(1) 题目描述 给定一个 ...
分类:
其他好文 时间:
2019-07-16 00:19:02
阅读次数:
104
JVM 的内存划分 JVM 将内存主要划分为:方法区、栈、本地方法栈、堆、程序计数器。 方法区存:又叫静态区,存放所有的class和static变量;方法区中包含的都是在程序中永远的唯一的元素。 虚拟机栈:执行引擎每调用一个函数时,就为这个函数创建一个栈帧,并加入虚拟机栈。换个角度理解,每个函数从调 ...
分类:
其他好文 时间:
2019-07-01 18:38:07
阅读次数:
127
1.代码区: 代码区Code,程序被操作系统加载到内存的时候,所有的可执行代码都加载到代码区,也叫代码段,这块内存是不可以在运行期间修改的。 2. 静态区 所有的全局变量以及程序中的静态变量都存储在静态区。 3.堆区 对于一个32位操作系统,最大管理4G内存,其中1G是给操作系统自己用的,剩下的3G ...
分类:
其他好文 时间:
2019-06-24 00:24:31
阅读次数:
101
概述 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的。也就是说,既然属于类,就可以不靠创建对象来调用了。 静态共享数据原理 static 修饰的内容: 是随着类的加载而加载的,且只加载一次。 存储于一块固定的内存区域(静态区),所以 ...
分类:
其他好文 时间:
2019-06-16 00:43:50
阅读次数:
137
概述 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的。也就是说,既然属于类,就可以不靠创建对象来调用了。 静态共享数据原理 static 修饰的内容: 是随着类的加载而加载的,且只加载一次。 存储于一块固定的内存区域(静态区),所以 ...
分类:
其他好文 时间:
2019-06-09 23:41:48
阅读次数:
128
概述 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的。也就是说,既然属于类,就可以不靠创建对象来调用了。 静态共享数据原理 static 修饰的内容: 是随着类的加载而加载的,且只加载一次。 存储于一块固定的内存区域(静态区),所以 ...
分类:
其他好文 时间:
2019-06-01 21:27:08
阅读次数:
107