Java——数组
- 数组的使用
数组的使用
(数组既可以是基本类型,也可以是引用类型)
//1. 声明数组
int[ ] a;
//2. 分配空间:一块连续的空间
a = new int[6];
//3. 赋值
a[0] = 8;
//4. 处理数据
a[0] = a[0]+5;
数组创建中各步骤的逻辑原理
在数组中,当声明数组时(启用栈内存),就是在栈中创建一个指向堆内地址的变量a;
而在分配空间时(启用堆内存),就是在堆内分配一个连续空间,将空间的首地址(0x…开头的16进制)赋值给栈内引用好的变量a。
最后就是在堆空间内进行赋值操作。
数组的创建方式:
-
声明并分配空间(表示数组的中括号可以在任意的相关位置,不受限制):
int[ ] a = new int[6];
int [ ] a = new int[6];
int a[ ] = new int[6];
-
声明并赋值(在赋值的过程中就同时也将数组的空间根据其长度来分配 好了,简单声明时不规定相关数组长度):
int[ ] a = new int[]{1,2,19,36,54};
int[ ] a = {1,234,43,67};
另外值得注意的是:
- 数组元素存在默认初始化,对比如下:
public class ArTest {
public static void main(String[] args){
int i ;
int a ;
System.out.println(a);
}
}
结果:运行失败![]()
Java——数组声明,赋值等一些细节问题数组的使用
public class ArTest {
public static void main(String[] args){
int[] i ;
int[] a = new int[3];
System.out.println(a[0]);
//System.out.println(i[0]);
}
}
运行结果:运行成功,值为0![]()
Java——数组声明,赋值等一些细节问题数组的使用
由此我们可以看出,在java中各类型数据以及数组未进行初始化的时候并没有默认值,可以存在同时不报错,但是如果运用的话就会报错,而各类型的数组在分配空间后,同时并未给定具体值的情况下都拥有一个默认值。
个人认为可以这么理解,由于在数据或数组声明的时候都并未给其分配相应的空间,则不占其中内存,自然也就不会报错。而数组在分配空间时,需要一个值进行空间占位,所以会有默认值。
- 声明:就好像客人预定了酒店,但是没有入住,所有房间都是空的他也可以随时取消,
- 分配空间:就好像办理入住手续后,哪怕他没有入住,但是在系统中他的房间已经被占用了。
对于默认值:
- int :0
- String:null
- boolean:false
- char: (是’ ')