zoukankan      html  css  js  c++  java
  • Java内存空间的划分

    堆内存:new创建的对象和数组(成员变量存放在堆内存中),由Java虚拟机的自动垃圾回收器来管理

    栈内存:基本类型的变量数据和对象的引用变量都在函数的栈内存中分配(局部变量存放在栈内存中),当该变量退出该作用域后,Java会自动释放掉为该变量所分配的内存空间

    常量池:final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。

    (1)java中基本类型的包装类的大部分都实现了常量池技术,即Byte,Short,Integer,Long,Character,Boolean这6种包装类默认创建了数值[-128,127]的相应类型的缓存数据,如果超出则存入堆内存不存入常量池中

    (2)两种浮点数类型的包装类Float,Double并没有实现常量池技术。

    实际上,栈中的变量指向堆内存中的变量(栈中的变量引用了堆中的变量),这就是Java中的指针!

    一个程序中的内存调用图:

  • 相关阅读:
    5.共享文件夹
    4.CentOS安装
    JS 递归
    Gulp 笔记
    Js call apply bind区别
    Js new 过程解析
    Js 原型和原型链
    JS blur和click 顺序冲突
    重新认识button disabled属性
    英语笔记3
  • 原文地址:https://www.cnblogs.com/ztz-99a/p/9189047.html
Copyright © 2011-2022 走看看