ANDROID内存优化(大汇总——上)
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 内存简介: RAM(random access memory)随机存取存储器。说白了就是内存。 一般Java在内存分配时会涉及到以下区域: 寄存器(Registers): 速度最快的存储场所,因为寄存器位于处理器内部 , 我们在程序中无法控制 栈(Stack): 存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 堆(Heap): 堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器(GC)来管理。 静态域(static field): 静态存储区域就是指在固定的位置存放应用程序运行时一直存在的数据,Java在内存中专门划分了一个静态存储区域来管理一些特殊的数据变量如静态的数据变量 常量池(constant pool): 虚拟机必须为每个被装载的类型维护一个常量池。常量池就是该类型所用到常量的一个有序集和,包括直接常量(string,integer和floating point常量)和对其他类型,字段和方法的符号引用。 非RAM存储: 硬盘等永久存储空间 堆栈特点对比: 由于篇幅原因,下面只简单的介绍一下堆栈的一些特性。 栈 :当定义一个变量时,Java就在栈中为这个变量分配内存空间,当该变量退出该作用域后,Java会自动释放掉为该变量所分配的内存空间