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"); } } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~