java的内存结构
来源:互联网 发布:医疗网络咨询 编辑:程序博客网 时间:2024/06/06 16:38
1java内存区域的划分:寄存器 方法区 堆内存 栈内存 本地方法区
1)栈内存的特点:存储都是局部变量
(函数参数,函数内定义的变量,语句中定义的变量)变量一旦使用完(作用域结束),就会在栈内存中自动释放。
2)堆内存特点:存储的是实体,对象
存储由new创建的对象和数组,由java虚拟机的垃圾回收装置管理。
1.堆内存中的实体都有首内存地址值.
2.堆内存中的变量都有默认初始化值.
3.对于没有任何引用变量指向的实体,会视为垃圾,会被垃圾回收机制所回收。
(数组和对象,只要是new的,都在堆内存中)
栈内存中存储的是指向arr 指向堆内存的地址 ,而new char [5]则在堆内存中开辟出 内存空间 存储实例对象,有默认值
String s1="ddsa"
String s2="ddsa" 先在栈中创建一个对String类的对象引用变量str, s1==s2 返回true
String s1=new String("ddsa") 新建对象 地址不同
Person p = new Person("Xcc",19);这句话都做了什么?1,因为new用到了Person.class,所以会先找到Person.class文件并加载到内存中2,执行该类中的static代码块,如果有的话,给Person.class类进行初始化3,在堆内存中开辟空间,分配内存地址4。在堆内存中建立对象的特有属性,并进行默认初始化(name=null age=0 country=null)5。对属性进行显示初始化(也就是属性初始化,如果没有赋值就是默认初始化的值 name=null age=0 country="cn")6。对对象进行构造代码块初始化7。对对象进行对应的构造函数初始化8。将内存地址赋给栈内存中的p变量
java中常用的内存区域
在java中主要存在4块内存空间,这些内存的名称及作用如下:
- 栈内存空间:保存所有的对象名称(更准确地说是保存了引用的堆内存空间的地址)
- 堆内存空间:保存每个对象的具体属性内容。
- 全局数据区(静态域):保存static类型的属性。
- 全局代码区:保存所有的方法定义。
0 0
- java的内存结构
- java的内存结构
- Java内存分配的结构
- Java内存划分的结构
- Java虚拟机的内存结构
- Java虚拟机的内存结构
- Java虚拟机的内存结构
- java类的结构的内存解析
- 黑马程序员-java的内存结构
- JAVA的内存模型及结构
- [精]JAVA数组的内存结构详解
- JAVA的内存模型及结构
- JVM初窥:Java对象的内存结构
- Java内存结构及参数的传递
- java内存结构
- java 内存结构
- JAVA程序内存结构
- Java虚拟机内存结构
- 【OpenCV学习笔记】【函数学习】九(RGB空间各通道分离)--Mat类型
- cmd命令大全
- android TextView图文混排
- iOS开发 一些基础控件知识
- javascript正则表达式
- java的内存结构
- RESTKit 使用教程
- C Programming Language学习中遇到的问题
- 关于Unity打Android包自动添加权限的问题
- 24-《电子入门趣谈》第四章_自己制作电路板-4.3Altium Designer (第三部分)
- 转发js代码测试工具介绍
- USG双机热备vrrp+hrp配置(上接二层,下接三层的交叉组网模式)
- Selenium Webdriver元素定位的八种常用方式
- redis - 空格引起的bug