Java基础小常识(4)

一、内存空间的划分

1.寄存器  

2.本地方法区

3.方法区

4.栈内存:存储的都是局部变量,而且变量所属的作用域一旦结束,该变量就自动释放。

5.堆内存:存储的是数组和对象(其实数组就是对象),凡是new建立的都是对象,存储在堆中。

     特点:1.每一个实体都是首地址值

        2.堆内存中的每一个变量都有默认初始化值,根据变量类型的不同。整数是0,小数是0.0或者0.0f,布尔(boolean)是false,char是 '/u0000';

        3.有一个垃圾回收机制

二、数组小问题

1. int[] arr = new int[3];

  System.out.println(arr[3]);

  编译可以通过,而运行出错,属于数组越界。

2. int[] arr = new int[3];

  arr = null;

  System.out.println(arr[0]);

  编译可以通过,而运行出错,数组是由Java虚拟机创建的,对于这个案例,属于空指针异常

3.  int[] arr = new int[3];

  System.out.println(arr);  //打印的结果为:[I@c12358,其中‘[’表示数组,I表示整型数据类型,@后面的值为数组的地址值。

 

posted @ 2017-04-10 15:33  Aftersoon_sun  阅读(107)  评论(0编辑  收藏  举报