c++在程序执行时,将内存大方向分为四个区: 代码区:存放函数体的二进制代码,由操作系统进行管理; 全局区:存放全局变量和静态变量以及常量; 栈区:由编译器自动分配释放,存放函数的参数值、局部变量等; 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收; 内存四区的意义:不同区域存放 ...
分类:
编程语言 时间:
2019-12-23 16:40:07
阅读次数:
97
内存分配相关 Xms 英文释义:Initial heap size(in bytes) 中文释义:堆区初始值 使用方法: Xms2g 或 XX:InitialHeapSize=2048m Xmx 英文释义:Maximum heap size(in bytes) 中文释义:堆区最大值 使用方法: Xm ...
分类:
其他好文 时间:
2019-12-16 22:21:54
阅读次数:
109
什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。 小总结 类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构, ...
分类:
其他好文 时间:
2019-12-11 19:03:41
阅读次数:
77
1)代码区:可执行程序代码存放区,这个我们不用关心;2)全局区:1全局与静态变量区:存放全局变量与静态变量,又可以区分为已经初始化的全局变量和静态变量区以及为初始化的全局变量和静态变量区;2常量区:字符串常量与const修饰的常量存放在常量区;3)堆区:用户动态申请的内存区,需要用户进行释放,否则有可能会造成内存泄漏;4)栈区:该区内存由系统自动分配和释放,存放局部变量以函数实参等。1全局区分析看
分类:
编程语言 时间:
2019-11-24 22:46:22
阅读次数:
185
作者:平凡希 原文地址:https://www.cnblogs.com/xiaoxi/p/6959615.html 一、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方 ...
分类:
编程语言 时间:
2019-11-23 23:38:18
阅读次数:
104
C语言占用的内存可以分为5个区: ①代码区(Text Segment):不难理解,就是用于放置编译过后的代码的二进制机器码。 ②堆区(Heap):用于动态内存分配。一般由程序员分配和释放,若程序员不释放,结束程序时有可能由操作系统回收。(其实就是malloc()函数能够掌控的内存区域) ③栈区(St ...
分类:
编程语言 时间:
2019-11-23 12:24:23
阅读次数:
96
深拷贝和浅拷贝: 浅拷贝:简单的赋值拷贝操作 深拷贝:在堆区重新申请空间,进行拷贝操作 深拷贝就是为了解决浅拷贝带来的问题而产生的 浅拷贝: 大家先看下这段代码: ...
分类:
其他好文 时间:
2019-11-15 00:10:38
阅读次数:
82
1、 简述JVM垃圾回收算法分类 常用的垃圾收集算法 JVM的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生、随线程而灭,因此这几个区域的内存分配和回收都具备确定性,就不需要过多考虑回收的问题,因为方法结束或者线程结束时, ...
分类:
其他好文 时间:
2019-10-29 14:10:14
阅读次数:
86
[Toc] 参考博客请看 "参考博客" 1、string和StringBuilder的区别 string创建后分配在栈区,大小不可修改,每次使用string类中的方法时,都要在内存中创建一个新的字符串对象,就需要再分配新的空间。所以有可能产生很大的开销。 StringBuilder创建后分配在堆区, ...
变量的可见性又叫做作用域。 一般来说变量如果是在栈上分配的,那么变量的可见性和生命周期是一样的。但在堆区,静态区,常量区的变量声明周期大于变量的可见性(如果理解有误,请大佬们指出)。 即指针对应的是可见性,而指针所指向的对象(也即指针所指向的内存)对应的是生命期。因为指针是在栈上分配存储的(指针也是 ...
分类:
其他好文 时间:
2019-10-26 10:42:56
阅读次数:
103