码迷,mamicode.com
首页 > 编程语言 > 详细

Java内存分配

时间:2017-06-14 02:13:03      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:寄存器   系统   作用域   index   垃圾回收器   point   访问   指针   使用   

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内存分配

标签:寄存器   系统   作用域   index   垃圾回收器   point   访问   指针   使用   

原文地址:http://www.cnblogs.com/lanshanxiao/p/7004516.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!