今天学习学习了一点关于java数据在内存中的存放的知识,现在写在下面,既可以加深自己对于java的理解,也方便日后复习。注意:这里不同于《java编程思想》里面的。
内存区域划分为5个部分,分为:
一,寄存器
寄存器在cpu内部,与cpu的交往很“亲密”,但是我们java程序员不能操控它。通常寄存器的数量比较少,存储一些重要的并且速度要求高的数据。
二,本地方法区
java程序运行的时候要调用的系统程序,存放的程序跟系统有关
三,方法区
用来存放静态方法和静态数据
四,栈内存
用于存放局部变量或者是对象的引用,特点:当局部变量的作用范围结束以后,该变量自动释放。
代码示例:
package myday03;
public class ArrayDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
{//局部代码块,用来限定局部变量的生命周期
int n=3;
}
System.out.println(n);//此行报错
}
}
五:堆内存
凡是使用new来创建对象,都存储在堆中。每个对象有一个首地址,相当于一个指针,将此地址“赋值”給
栈内存中的引用时,就可以用这个引用来操控对象。有如下特点:
1.每一个实体都有首地址
2.堆内存中每一个人变量都有初始值。整形初始值为0,小数初始值为0.0,boolean的初始值为false,char值为‘\u0000’,String的初始值为null
3.在堆中创建的对象都可以被垃圾回收机制回收。