手机内存

手机内存是指手机的RAM,它包括以下几个部分:

  • 寄存器:速度最快的存储场所,因为寄存器位于处理器内部,在程序中无法控制。
  • 栈(Stack):存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中。
  • 堆(Heap):堆内存用来存放由new创建的对象和数组,在堆中分配的内存,由java虚拟机的GC来管理。
  • 静态存储区域(Static Field):静态存储区域就是指在固定的位置存放应用程序运行时一直存在的数据,java在内存中专门划分了一个静态存储区域来管理一些特殊的数据变量如静态的数据变量。
  • 常量池(Constant Pool):JVM虚拟机必须为每个被装载的类型维护一个常量池。常量池就是该类型所用到常量的一个有序集合,包括直接常量(基本类型,String)和对其他类型,字段和方法的符号引用。
注意:当定义一个变量,java虚拟机就会在栈中为该变量分配内存空间,当该变量作用域结束后,这部分内存空间会马上被用作新的空间进行分配。如果使用new的方式创建一个变量,那么就会在堆中为这个对象分配内存空间,即使该对象的作用域结束,这部分内存也不会立即被回收,而是等待系统GC进行回收。可以使用如下代码获得堆的大小:
ActivityManager activityManager= (ActivityManager) getSystemService(ACTIVITY_SERVICE);
                int heapSize=activityManager.getLargeMemoryClass();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这篇文章是我之前翻阅了不少的书籍以及从网络上收集的一些资料的整理,因此不免有一些不准确的地方,同时不同JDK版本的...
    高广超阅读 16,049评论 3 83
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,790评论 11 349
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,639评论 1 32
  • 冬雨一夜忙 被暖怨天寒 忽忆冰上行 逐跑雪染衫 窗棂碎碎响 疑是客来访 风瑟叶飘零 素裹与谁同
    近者悦远者来阅读 130评论 0 2

友情链接更多精彩内容