内存的使用感觉好乱啊,需要整理一下!于是参考C++ primer与网上资源,整理如下: 一、综述:内存中的栈区分配的是局部变量空间;堆区是向上增长的用于分配程序员申请的内存空间(比如new 申请的动态内存),注意它与数据结构中的堆是两回事,分配方式倒是类似于链表;静态区(全局区)是分配静态变量,全局 ...
分类:
其他好文 时间:
2017-12-24 21:23:34
阅读次数:
155
栈区是先进后出,队列是先进先出。 栈区就相当于玻璃杯,往玻璃杯里放奥利奥,第一块放入的奥利奥,肯定是最后一个拿出来。 队列就相当于掉了底的玻璃杯,最先放入的,必定最先掉出来。 网上有个更绝的比喻:队列是吃多了拉,栈区是吃多了吐。 这里解析的是栈区和堆区的内存问题,说到了栈区自然引出队列,捎带提一笔。 ...
分类:
其他好文 时间:
2017-12-21 19:32:36
阅读次数:
155
1. 作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等 2. 内存存储方式不同:全局变量存储在全局数据区中,局部变量存储在栈区 3. 生命期不同:全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了 4. 使用方 ...
分类:
其他好文 时间:
2017-12-15 18:54:17
阅读次数:
135
一. 引言 接着看,把售票的问题给说完,这里涉及到一个小问题。 在我们进行线程任务封装,并进行线程对象创建的时候,我们发现确实通过四个线程能够将一百张票卖完。但是卖票的时候,会不会出现一些小问题呢?分析整个程序给大家展示一下。 现在有四个线程,都到了run方法中来运行。大家都知道,每个线程所属的栈区 ...
分类:
编程语言 时间:
2017-12-13 11:59:22
阅读次数:
185
连接上篇java探索之堆栈区分,启下对擦除的内在探索,可以了解掌握数组出错的两种方式 ...
分类:
编程语言 时间:
2017-12-13 01:57:22
阅读次数:
164
java程序在内存中的存储分配情况:一、堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身 栈区: 1.每个线程包含一个栈区,栈中只保存基础数据 ...
分类:
编程语言 时间:
2017-11-25 16:11:38
阅读次数:
187
1.内存按区域分类存放数据 栈区(stack):存放函数的参数值、返回值、局部变量等。 堆区(heap):用于动态内存分配。 未初始化静态全局区(bss):全局未初始化、静态未初始化数据。 初始化静态全局区(data):全局初始化、静态初始化数据。 文字常量区(rodata):字符串常量。 代码区( ...
分类:
其他好文 时间:
2017-11-24 23:59:49
阅读次数:
349
OC采用ARC机制,因此strong等属性也有了应用场景。当使用alloc为一个对象在堆中分配内存空间,然后让栈区使用一个强指针指向该内存地址,就能在指针被自动释放签前,保证堆内数据不被释放。那么如果不是用强指针,而是用弱指针执行该堆内存地址,那么在分配内存空间后就会自动释放。 那么,针对这种运用场 ...
分类:
移动开发 时间:
2017-11-13 19:52:24
阅读次数:
158
C/C++编写的程序在分配内存时,通常划分为四个区域: 栈区(stack):存放函数的参数值、局部变量的值等,通常由编译器自动分配和释放 堆区(heap):动态分配的内存空间,由程序员分配和释放。若程序员忘记释放,将造成内存泄漏 数据区: 常量区:存放常量 全局/静态区:存放全局变量和静态变量 代码 ...
分类:
其他好文 时间:
2017-11-06 22:59:46
阅读次数:
212
jvm 包含了堆栈区、方法区等存储区域、类装载子系统以及执行引擎。 jvm执行流程:编译(字节码)——》类装载(加入内存)——》类执行(分配内存执行) jvm 内存机制:堆内存(new出来的所有对象) 栈内存(基础数据类型、形参、new对象的引用) 静态方法区(方法代码、final常量、静态变量) ...
分类:
其他好文 时间:
2017-11-04 23:35:13
阅读次数:
248