学习笔记——数组

数组:
数组是一种数据类型的集合容器
数组的定义格式:
数据类型[] 变量名 =new 数据类型[长度];
int [] arr=new int[50];
数组的初始化方式:
1.动态初始化
数据类型[] 变量名 =new 数据类型[长度];
2.静态初始化:
数据类型[] 变量名 ={元素1,元素2,…}
数组的好处:
对分配到数组中对象中每一个数据都分配一个编号(索引值、角标、下标)索引值的范围是从0开始,最大值是长度-1.

分析数组 int[] arr=new int[4]的内存图:
在这里插入图片描述
1.栈内存的特点:栈内存存储的都是局部变量,变量一旦出了自己的作用域,那么马上从内存中消失,释放内存空间。
2.堆内存的特点:堆内存存储的都是对象数据,对象一旦被被使用完,并不会马上在内存中消失,而是等垃圾回收器不定时把垃圾对象回收,这时候对象才会消失,释放内存。
对象如果没有变量引用了,那么该对象就是一个垃圾对象了。
3.凡是以new关键字创建的对象,jvm都会在堆内存中开辟一个新的空间,创建一个新的对象。
4.局部变量:如果声明一个变量是在一个方法内声明的,那么该变量就是一个局部变5.量成员变量:成员变量是定义在方法之外,类之内。

int[] arr=new int[4];
arr[0]=10;
arr[1]=20;
arr[2]=30;
arr[3]=40;
//查看数组中所有的数据
for(int i=0;i<arr.length;i++){
  System.out.println(arr[i]);
}

数组中常见的问题:
1.NullPointException:控制住异常
原因:引用类型变量没有指向任何变量,而访问了对象的属性或者是调用了对象的方法

int[] arr=new int[2];
arr=null;//null是让该变量不要引用任何对象,不要记录任何的内存地址

垃圾对象:没有引用任何变量多指向的对象就是垃圾对象。

2.ArrayIndexOutOfBoundsException:索引值越界
原因:访问了不存在的索引值

int[] arr=new int[4];
arr[0]=10;
arr[1]=20;
arr[2]=30;
arr[3]=40;
System.out.println(arr[4]);

练习:定义一个函数,接受一个int类型的数组对象,找出数组中的最大值返回给函数的调用者

public class Test6 {
  public static int getMax(int[]arr){
  int max=arr[0];
  for(int i=0;i<arr.length;i++){
   if(arr[i]>max){
    max=arr[i];
     }
  }  
  return max;  
 }
 public static void main(String[] args) {
  int[] arr={10,20,56,40};
  int result=getMax(arr);
  System.out.println("在这个数组中,最大值为:"+result);
  }
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值