当前位置:首页 > JAVA教程 > JAVA基础

07java中的内存划分

1.基本结构

java的内存有五个部分:
【1】栈(stack):存放的是方法中的局部变量,方法的运行一定要在栈中运行
局部变量:方法中的参数或{}中的内部变量
作用域:一旦超出作用域,立刻从栈中消失
【2】堆(heap):凡是new出来的东西都在堆中
堆内存里的东西都有一个地址:16进制
堆内存里面的数据,都有默认值,规则:
A.整数类型:0
B.浮点类型:0.0
C.字符类型:’u0000’
D.布尔类型:false
E.引用类型:null
【3】方法区(method area):储存.class相关的信息,包含方法的信息
【4】本地方法栈(Native Method Stack):与操作系统相关
【5】寄存器(pc register):与cpu相关

2.数组的内存图

【1】两个数组的内存图

【2】两个引用指向同一个数组的内存图

3.常见问题

【1】数组索引越界异常
ArrayIndexOutOfBoundsException
原因:索引编号不存在
【2】空指针异常
NullPointerException
原因:数组需要new初始化才能使用其中的元素
如果只是赋值了一个null,没有进行new创建


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!