Java学习DAY4

第四章 数组

1.定义

数组是存储多个变量的容器,这些变量的数据类型要一致。
在这里插入图片描述

2.初始化

动态初始化:
数据类 [ ] 数组名= new 数据类型[数组长度];
此时的内存分配:
在这里插入图片描述

如果两个数组拿的是同一个堆内存的地址,任何一个数组对堆内存数据进行了修改,另一个访问到的也是修改过的。
public static  void  main(String[] args) {

        int[] arr=new int[3];
        int[] arr2=arr;
        System.out.println(arr);
        System.out.println(arr2);
        System.out.println("-----------------------");
        arr[0]=100;
        arr2[0] = 200;
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr2);
        System.out.println(arr2[0]);
        
    }

结果:

[I@16b98e56
[I@16b98e56
-----------------------
[I@16b98e56
200
[I@16b98e56
200

Process finished with exit code 0

静态初始化 :
数据类型[ ] 数组名= new 数据类型[ ]{元素1,元素2…};
简化成:数据类型[ ] 数组名={元素1,元素2…};
内存分配:
在这里插入图片描述

3.常见问题
public class keyword {
    //两个常见问题:
    //     ArrayIndexOutOfBoundsException(数组索引越界)
    //     NullPointerException(空指针异常)
    public static  void  main(String[] args) {

        int[] arr={1,2,3};
        System.out.println(arr[3]);


        int[] arr2=null;
        System.out.println(arr2[1]);

    }
}

内存理解;
在这里插入图片描述

4.实例:

例1:

public class keyword {
    //评委打分问题
    public static  void  main(String[] args) {
        int[] arr= new int[6];
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入6个评委的打分:");
        for(int x=0;x<arr.length;x++){
              int score= sc.nextInt();
               arr[x]=score;
        }
        int max=arr[0];
        int min=arr[0];
        int sum=0;
        for(int x=0;x<arr.length;x++){
            if (arr[x]>max){
                max=arr[x];
            }
            if(arr[x]<min){
                min=arr[x];
            }
            sum+=arr[x];
        }
        int avg=0;
        avg=(sum-max-min)/4;
        System.out.println("最终得分是:"+avg);


    }
}

结果:

请输入6个评委的打分:
78
86
90
92
65
77
最终得分是:82

Process finished with exit code 0

例2:

public class keyword {
    //不死神兔问题,问到第20个月有多少兔子
    public static  void  main(String[] args) {
        int s =1;
        int[] arr= new int[20];
        arr[0]=1;
        arr[1]=1;
        for(int x=2;x<20;x++){
               s=arr[x-1]+arr[x-2];
               arr[x]=s;
        }

        System.out.println(arr[19]);
    }
}

结果:

6765

Process finished with exit code 0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值