java学习-一维数组

数组的概述

数组:数组是多个相同类型数据按照一定顺序排列的集合,并使用一个名字命名,通过编号的方式对这些数据进行统一管理。
数组属于引用数据类型的变量。
数组元素可以是基本数据类型,也可以是引用数据类型。
数组在内存中是一组连续的内存单元,数组的长度一旦确定,就不能修改。

一维数组的初始化

  1. 一维数组的声明和初始化
  2. 如何调用数组的指定位置的元素
  3. 如何获取数组的长度
  4. 如何遍历数组
  5. 数组元素的默认初始化值
  6. 数组的内存解析

一维数组的声明和初始化

public class test {

	public static void main(String[] args) {
		//数组声明
		int[] numbers;
		//静态初始化:数组的初始化和数组的赋值操作分开进行
		numbers = new int[] {1001,1002,1003,1004};
		//动态初始化:
		String[] names = new String[5]; 
	}
}

调用数组的指定位置的元素

names[0] = "jiangjiang";

如何获取数组的长度

System.out.println(names.length);

遍历数组元素

for (int i = 0; i < names.length; i++) {
			String string = names[i];
			System.out.println(names[i]);
		}

数组元素的默认初始化值

public class Array{
int[] Array =  new Array[6];
for(int i = 0;i<names.length();i++){
	System.out.println(Array[i]);
	}
}

输出默认的数组初始化值
在这里插入图片描述

byte、int、short的默认初始化值都是0,double、float的初始化值为0.0
char类型的默认初始化值为ASII码值的0,非字符‘0’
boolean的默认值是false
String的默认值是null

数组内存的解析

  • 栈(stack)
    局部变量:放在方法中的变量都是局部变量
  • 堆(heap)
    new出来的:对象、数组
  • 方法区()
    静态域:static修饰的
    常量池:Sring
//数组静态初始化:
int[] arr = new int[]{1,2,3};
//在栈上声明一个int型数组:arr
//在堆上开辟一段连续的12个字节的空间
//把这段空间的首地址赋值给arr,把1、2、3、分别赋值给这段连续的空间

//动态数组初始化:
String[] arr1 = new String[4];
//在栈上声明一个int型数组:arr1
//在堆上开辟一段类型是String,长度为4的连续空间
//把这段空间的首地址赋值给arr1
arr[1] = "张三";
//arr[1]赋值
arr[2] = "李四";
//arr[2]赋值(实际张三、李四会放在常量池中,现在先不管)
arr1 = new String[3];
//在堆上再开辟一段空间,类型是String,长度为3的连续空间
//给arr1重新赋值
/*此时的原来的长度为4的没有引用
*那么会在适当的时机被jvm的垃圾回收机制回收掉
*/
System.out.println(arr1[1]);

这些都是定义在方法中的变量
当方法执行完以后,存在栈中的变量值会相继出栈
变量出栈以后,开辟的空间也会变成没有引用的空间 所以也会被回收掉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值