数组:是多个相同类型数据按照一定顺序的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理
数组的元素:
下标、元素、数组的长度
package com.atguigu.contact;
/*
* 1.数组:是多个相同类型数据按照一定顺序的集合,
* 并使用一个名字命名,并通过编号的方式对这些数据进行统一管理
*
* 2.数组相关概念
* >数组名
* >元素
* >角标、下标、索引
* >数组的长度:元素的个数
*
* 3.数组的特点:
* 1)数组是有序排列的
* 2)数组是引用数据类型
* 引用数据类型有三中:类、数组、接口
* 3)数组中的元素可是基本数据类型可是引用数据类型
* 4)创建数组对象会在内存中开辟一整块连续的空间
* 5)数组的长度一旦确定不能修改
*
* 4.数组的分类
* 1)按照维数:一维数组、二维数组、三维数组
* 2)按照数组元素类型:基本数据类型元素的数组、引用数据类型元素的数组
*
* 5.一维数组的使用
* 1)一维数组的声明和初始化
* 2)如何调用数组的指定位置的元素
* 3)如何获取数组的长度
* 4)如何遍历数组
* 5)数组元素的默认初始化数值
* 6)数组的内存解析
* */
public class HelloWorld {
public static void main(String[] args){
//1.一维数组的声明和初始化
int[] ids;//声明,[]表明是数组,int表明元素的数据类型
//1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行
ids = new int[]{1001,1002,1003,1004};//数组是引用数据类型所以需要new,new int[]型的数组
//1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行
String[] names = new String[5];
//数组一旦初始化完成,其长度就确定了
//2.如何调用数组指定位置的元素:通过角标的方式调用
//数组的角标(或者索引)从0开始,到数组的长度-1结束
names[0] = "wang";
names[1] = "gao";
names[2] = "zhang";
names[3] = "sun";
names[4] = "liu";
//3.如何获取数组的长度
//属性:length
System.out.println(names.length);
System.out.println(ids.length);
//4.如何遍历数组元素
for(int i = 0; i < names.length;i++){
System.out.println(names[i]);
}
}
}
内存占用结构
栈(stack):局部变量
常量池
堆(heap):new出来的结构:对象、数组
方法区:静态域、常量池
package com.atguigu.java;
/*
* 5.数组元素的默认初始化
* >数组元素是整形:0(int、short、byte、long)
* >浮点型:0.0
* >char类型:0或者'\u000'而非'0'
* >数组元素是boolean型:false
* >数组元素是引用数据类型:null
* >数组的内存解析
*
* */
public class ArrayTest {
public static void main(String[] args){
//5.数组元素的默认初始化
int[] arr = new int[4];
for(int i = 0;i < arr.length;i++){
System.out.println(arr[i]);
}
String[] arr5 = new String[5];
System.out.println(arr5[0]);
}
}