本节内容:
1:数组概念、定义格式说明
2:数组初始化定义&动态初始化
3:数组在内存中的模型
本文是《凯哥陪你学系列之java基础篇》中第22篇数组1数组概念&动态初始化&内存中模型
一:数组概念和定义格式说明
1:为什么需要有数组这个东西?
数组其实就是一个容器,什么容器呢?
是为了存储同种数据类型的多个值
2:数组概念
什么是数组?
数组是存储同一种数据类型多个元素的集合。也可以看作是一个容器
数据既可以存储基本数据类型,也可以存储引用数据类型
3:数组定义的格式
数据类型数组名 =new数据类型[数组的长度]
public class DemoArray1 {
public static void main(String args) {
int x=10;
x=15;
System.out.println("x = "+ x);//此时输出的就是15而不是10因为10被覆盖了
int y = 20;
int m=30;
System.out.println("x ="+x+" y="+y +" m="+m);//输出的是 x=15 y=20 m 30
//如果还有 40 50 ...怎么办?一直什么变量吗?
//此时就可以使用数组了。
//数组的格式:
//数据类型数组名= new数组类型[数组长度]
int arr = new int [5];
/**
*说明:
*左边
* int :数据类型
* :代表的是数组。几个中括号就代表及维数组。
* arr:数组名称。合法的标识符
*
*等号右边:
* new :表示创建新的实体或者是对象
* int:数据类型
* :依然代表的数组
* 5:代表数组的长度
*
*所以上面一行代码的含义就是:
*创建了一个长度为5的int类型的一维数组
*/
}
}
二:数组的初始化&动态初始化
1:什么是数组的初始化
就是为了数组开辟连续的内存空间,并为每个数组元素赋予值。
2:如何对数组进行初始化?
2.1:动态初始化,
只指定长度,由系统给出初始化值。
比如 int arr = new int [5];
这句话什么意思?
就是先有系统创建一个长度为5的int类型的数组。并赋默认值。后续我们需要的时候,在动态的给这个输入arr对应位置赋新值。这个就是动态初始化。
数组arr在内存中模型:
思考:
int arrnewint[5];
system.out.println(arr[0]);//此时输出的是多少呢?
为什么会是0呢?
在内存中一个刚初始化的int类型的一维数组模型:
动态给arr赋值
2.1.2:八中基本类型系统初始化默认值说明
整数类型:byte、short、int、long默认初始化值是0
浮点型:float,double默认值是0.0
布尔类型(boolean):boolean默认初始化值是false
字符类型:char默认初始化值是'u0000'
说明:char在内存中占的两个字节,是16个二进制。
u0000,每个0其实代表的是16进制中的0,那么4个0就是代表16个二进制位。
2.1.3:数组在内存中的
[I@39ff48d8解释:
[ :半个中括号其实就是代表的是数组
I :代表的是int类型的
@39ff48d8:表示arr这个数组在内存中真实的地址(哈希值)16进制的
下节课预告:
java中内存分配及棧、堆的区别
欢迎关注凯哥公众号:凯哥Java
本文凯哥个人网站地址:http://kaigejava.com/article/detail/58
欢迎访问凯哥个人网站:http://www.kaigejava.com
网友评论