Java学习笔记day3--一维数组

复制代码
package day4_array;
/*
 1.数组:
     数组是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,通过编号的方式对执行数据进行统一管理
 2.数组的常见概念    
     >数组名:
     >下标或索引:从0开始
     >元素:
     >数组长度:
 3.数组的特点:
     1)数组是有序排列的
     2)数组属于引用数据类型的变量,里面的元素可以是基本数据类型也可以是引用数据类型(比如String)
     3)数组创建的对象会在内存中开辟一块连续的空间
     4)数组的长度一旦确定,就不能修改
 4.数组的分类:
     1)按照维数:一维数组、二维数组
     2)按照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组
 5.一维数组的使用:
     1)一维数组的声明和初始化
     2)如何调用数组的指定位置的元素
     3)如何遍历数组
     4)如何获取数组的长度
     5)数组元素的默认初始化值
     6)数组的内存解析
 */
import java.util.Scanner;
public class ArrayTest {
    public static void main(String[] args) {
        
        int[] ids; //声明
        //静态初始化:数组的初始化和数组元素的赋值操作同时进行
        ids=new int[] {1001,1002,1003,1004};
        //动态初始化:数组的初始化和数组元素的赋值操作分开进行
        String[] names=new String[5];
        //无论动态还是静态初始化,初始化完成后,数组长度就已经确定了
        
        //通过索引调用数组元素
        names[0]="小明";
        names[1]="张学良";
        names[2]="王赫";
        names[3]="孙巨龙";
        names[4]="王宏志";
        
        //获取数组长度length方法
        System.out.println(names.length);
        System.out.println(ids.length);
        
        //遍历数组
        for(int i=0;i<names.length;i++) {
            System.out.println(names[i]);
        }
        
        //数组元素的默认初始化值
        //整型 byte chart int long默认为0;
        int[] arr=new int[4];
        for(int i=0;i<arr.length;i++) {
            System.out.println(arr[i]);
        }
        //浮点型float double默认为0.0
        float[] arr1=new float[4];
        for(int i=0;i<arr1.length;i++) {
            System.out.println(arr1[i]);
        }
        //char默认为ASCII码为0的字符,效果类似空格但不是空格
        char[] arr2=new char[2];
        System.out.println("----"+arr2[0]+"----");
        //布尔型默认初始值为false
        boolean[] arr3=new boolean[4];
        for(int i=0;i<arr3.length;i++) {
            System.out.println(arr3[i]);
        }
        //数组元素是引用数据类型时,例如String,默认值为null.
        String[] arr4=new String[4];
        System.out.println(arr4[0]);
        
        //数组内存解析JVM
        /*
         * 栈(stack):存放局部变量(放在方法中的变量都是局部变量)
             上述所有数组的数组名变量都存放在栈上,存放内容为该数组第一个元素的地址
         * 堆(heap):存放new出来的结果-->对象和数组
             上述所有数组的元素都保存在堆上,同一数组的元素的内存空间是连续的.
         * 方法区,由常量池、静态域等组成
        */
        
        //练习题
        /*
         水井坊单间出租4个月,5550元/月,空调卫生间厨房齐全,屋内均是IT人士,喜欢安静。
        联系方法如程序所示
         */
        int[] arr0=new int[] {8,2,1,0,3};
        int[] index=new int[] {2,0,3,2,4,0,1,3,2,3,3};
        String tel="";
        for(int i=0;i<index.length;i++) {
            tel+=arr0[index[i]];
        }System.out.println("联系方式:"+tel);
        //输出结果:18013820100
        
        /*
         从键盘读入学生成绩,找出最高分,并输出学生成绩等级
         成绩>=最高分-10,A
         成绩>=最高分-20,B
         成绩>=最高分-30,C
         其他           D
         提示:先读入学生人数,根据人数创建int数组
         */
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入学生人数:");
        int count=scan.nextInt();
        int [] scores=new int[count];
        int scoreMax=0;
        for(int i=0;i<count;i++) {
            System.out.println("请输入学生成绩:");
            scores[i]=scan.nextInt();
            scoreMax=(scoreMax>scores[i])?scoreMax:scores[i];
        }System.out.println("最高分是:"+scoreMax);
        for(int i=0;i<count;i++) {
            if(scores[i]>=scoreMax-10) {
                System.out.println("student "+i+" score is "+scores[i]+",and grade is A");
            }else if(scores[i]>=scoreMax-20) {
                System.out.println("student "+i+" score is "+scores[i]+",and grade is B");
            }else if(scores[i]>=scoreMax-30) {
                System.out.println("student "+i+" score is "+scores[i]+",and grade is C");
            }else {
                System.out.println("student "+i+" score is "+scores[i]+",and grade is D");
            }
        }
        
    }
}
复制代码

 

posted @   乐美  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示