数组

数组(Array):可以一次定义得到多个类型相同、功能相似的变量。

一、数组类型

Java类型:基本类型(byte、short、int、long、float、double、char、boolean 共8个)、引用类型(数组、类、接口、枚举)

基本类型添加一组方括号就变为数组类型。( int —> int[] ,元素类型 —> 数组类型)

二、定义数组

  1. 静态初始化:只指定元素,不指定长度。
    new 类型[]{元素1,元素2,元素3······}

  2. 动态初始化:只指定长度,不指定元素。系统会为每个元素分配初始值,其分配规则为:
    -所有数组元素为数值类型时,数组元素初始值为0。
    -所有数组元素为boolean时,数组元素初始值为false。
    -所有数组元素为引用时,数组元素初始值为null。
    new 类型[长度]

三、使用数组

  1. 数组都有一个length属性,返回数组长度。数组一旦创建,其长度是固定的(其在内存中的位置也是固定的)。
  2. 每个数组元素就相当于一个变量。数组元素类型就是数组类型去掉一组方括号。
  3. 遍历数组——依次使用每个元素
  4. 使用foreach循环遍历数组。
    for(元素类型 变量名:数组名)
    {
    循环体
    }
  • 数组有几个元素,该循环就执行几次,变量回自动、依次等于每个元素。
  • foreach遍历只能访问数组元素的值,不能修改数组元素的值。

四、数组的内存机制

  • Java程序的内存可分为:
    -堆(heap)内存:Java虚拟机启动时分配的一块永久的、很大的内存空间。堆内存中的对象,如果没有引用变量指向它,那它就变成了垃圾,等待VM的垃圾回收器来回收它。
    -栈(stack)内存:每次方法运行时分配的一块临时的、很小的内存区。每个方法都有自己对应的栈区,方法结束时对应的栈区就会被回收。
  • 在方法中定一定的、局部变量(不管什么类型)都放入对应的方法栈。
  • new出来的东西都在堆内存。

五、基本类型和引用类型

计算机的每个内存单元(byte、字节)在操作系统都有一个编号,就像一栋楼要为每个房间按编号一样。

  • 变量赋值的区别:
    基本类型的赋值:直接将改制存入变量所在内存。
    引用类型的赋值:将该对象所在第一个内存单元的编号(内存地址)存入变量。
	int a = 20;
	int b = a;//基本类型赋值:直接将值存入变量所在内存
	System.out.println("a:"+a); //a:20
	System.out.println("b:"+b); //b:20
	b = 13;//将13存入b所在内存
	System.out.println("a:"+a); //a:20
	System.out.println("b:"+b); //b:13

基本类型赋值

	int[] arr = new int[]{20}; //引用类型的赋值:将该对象所在第一个内存单元的编号(首地址)存入变量。
	int[] brr = arr; // 引用类型的赋值:只存首地址
	System.out.println("arr[0]:"+arr[0]); //arr[0]:20
	System.out.println("brr[0]:"+brr[0]); //brr[0]:20
	brr[0] = 13;
	System.out.println("arr[0]:"+arr[0]); //arr[0]:13
	System.out.println("brr[0]:"+brr[0]); //brr[0]:13

引用类型赋值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值