首页 > 代码库 > Java内存分配
Java内存分配
Java程序为了提高程序的效率,就对数据进行了不同的空间分配:
具体的划分是如下的5个内存分配方式:
1.栈:存放的是局部变量
2.堆:存放的是所有new出来的东西
3.方法区:
4.本地方法区:(和系统相关)
5.寄存器:(CPU使用)
局部变量:在方法定义中或者方法声明上的变量都称为局部变量
堆内存的特点:
1.每一个new出来的东西都有地址值
2.每一个变量都有默认值
byte,short,int,long 为 0
float,double 为 0.0
char“\u0000”等同于空
引用类型 为 null
3.使用完毕就会变成垃圾,但是并没有立即回收,会在垃圾回收器空闲的时候回收。
栈内存的特点:
数据离开作用域就释放
数组名的值是地址,数组元素(即数组名[索引])的值是数组中存储数据的值。
int[] arr3 = arr; //这是将arr的地址给了arr3,现在arr和arr3首地址相同。
ArrayIndexOutOfBoundsException:数组索引越界异常
原因:访问了不存在的索引
NullPointerException:空指针异常
原因:数组名的值是null,不再指向地址值。而你还使用数组名访问了它的元素。
数组属性:length,用于获取数组的长度。
格式:数组名.length
Java内存分配
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。