优秀网站设计网站百度搜索公司网站展现图片
2026/5/21 0:49:23 网站建设 项目流程
优秀网站设计网站,百度搜索公司网站展现图片,阿里云速美建站,做网站业务的怎么找资源目录前言一、先学定义#xff1a;数组的两种书写格式#xff08;推荐第一种#xff09;1.1 推荐格式#xff08;直观、规范#xff09;1.2 兼容格式#xff08;不推荐#xff0c;仅了解#xff09;1.3 关键提醒#xff1a;定义≠初始化二、静态初始化#xff1a;直接…目录前言一、先学定义数组的两种书写格式推荐第一种1.1 推荐格式直观、规范1.2 兼容格式不推荐仅了解1.3 关键提醒定义≠初始化二、静态初始化直接往收纳盒里放数据长度自动算2.1 语法格式两种写法都常用2.2 代码示例新手重点练2.3 核心特点三、动态初始化先定收纳盒大小再装数据有默认值3.1 语法格式3.2 核心数组的默认值规则新手必记3.3 代码示例动态初始化 赋值 默认值验证3.4 静态 vs 动态初始化四、数组长度的获取length 属性不是方法4.1 代码示例4.2 新手避坑别和 String 的 length () 搞混五、新手必避的 4 个 “初始化致命坑”5.1 坑 1静态与动态初始化混用最常见5.2 坑 2未初始化直接使用数组5.3 坑 3索引越界初始化后常见5.4 坑 4给数组赋值时类型不匹配总结前言上一节咱们搞懂了数组的核心概念 —— 它是装同类型数据的 “整齐收纳盒”。但光知道概念没用得学会 “怎么造这个收纳盒定义数组” 和 “怎么往里面装数据初始化数组”比如想装 5 个学生的成绩是先定盒子大小再装数据还是直接把成绩放进去让系统自动定大小为什么刚造好的盒子里会有默认值这一节咱们就聚焦数组的 “创建 初始化”从定义格式两种写法推荐更规范的那种到静态初始化直接装数据、动态初始化先定大小再装再到 length 属性获取长度最后拆解新手最容易踩的初始化误区。一、先学定义数组的两种书写格式推荐第一种定义数组就是 “声明要造一个什么样的收纳盒”Java 提供了两种合法格式新手优先记推荐格式更符合行业规范。1.1 推荐格式直观、规范数据类型[]数组名;示例// 声明一个装int类型成绩的数组收纳盒只装整数int[]scores;// 声明一个装double类型价格的数组收纳盒只装小数double[]prices;// 声明一个装String类型姓名的数组收纳盒只装字符串String[]names;核心优势[]跟在数据类型后一眼就能看出 “这是一个数组”比如int[]直接表示 “int 类型的数组”可读性更高。1.2 兼容格式不推荐仅了解数据类型 数组名[];示例// 效果和int[] scores一样但可读性差intscores[];为什么不推荐这种写法是为了兼容 C/C 语法[]跟在数组名后容易误以为 “scores 是 int 类型后面加 [] 是补充”新手容易混淆。1.3 关键提醒定义≠初始化新手容易犯的错以为定义数组后就能直接用 —— 比如int[] scores; scores[0] 90;这会编译报错因为定义只是 “说要造盒子”还没真正创建盒子分配内存必须初始化后才能用。二、静态初始化直接往收纳盒里放数据长度自动算静态初始化就是 “造盒子的时候直接把东西放进去”不用指定盒子大小系统会根据你放的元素个数自动计算数组长度。2.1 语法格式两种写法都常用写法 1完整格式清晰数据类型[]数组名new数据类型[]{元素1,元素2,...,元素n};写法 2简化格式常用数据类型[]数组名{元素1,元素2,...,元素n};2.2 代码示例新手重点练publicclassArrayStaticInit{publicstaticvoidmain(String[]args){// 写法1完整静态初始化装3个学生成绩int[]scores1newint[]{90,85,95};System.out.println(scores1的第1个成绩scores1[0]);// 输出90// 写法2简化静态初始化装4个商品价格double[]prices{9.9,19.9,29.9,39.9};System.out.println(prices的第2个价格prices[1]);// 输出19.9// 装字符串的数组静态初始化String[]names{张三,李四,王五};System.out.println(names的第3个姓名names[2]);// 输出王五}}2.3 核心特点元素类型必须和数组类型一致比如int[]里不能装90字符串编译报错长度由元素个数决定比如{90,85,95}有 3 个元素数组长度就是 3后续不能改简化写法只能在声明时用比如不能先定义再用简化写法下面的代码会报错// 错误示例简化初始化只能和声明写在一起int[]scores;scores{90,85,95};// 编译报错三、动态初始化先定收纳盒大小再装数据有默认值动态初始化就是 “先造一个指定大小的空盒子”暂时不装自定义数据系统会给每个位置赋默认值后续再手动赋值。3.1 语法格式数据类型[]数组名new数据类型[数组长度];示例// 造一个能装5个int类型成绩的空盒子长度固定为5int[]scoresnewint[5];3.2 核心数组的默认值规则新手必记刚动态初始化的数组每个元素都有 “默认初始值”规则按数据类型分记牢下面的表避免误以为 “空盒子里啥都没有”数据类型分类具体类型默认值示例int [5] 的默认值整数类型byte/short/int/long0scores[0] 0浮点类型float/double0.0prices[0] 0.0字符类型char‘\u0000’空字符不是空格chars[0] ‘\u0000’布尔类型booleanfalseflags[0] false引用类型String / 数组 / 对象null表示 “空”无指向names[0] null3.3 代码示例动态初始化 赋值 默认值验证publicclassArrayDynamicInit{publicstaticvoidmain(String[]args){// 1. 动态初始化造一个长度为3的int数组默认值都是0int[]scoresnewint[3];System.out.println(初始化后默认值scores[0]);// 输出0// 2. 手动给数组元素赋值scores[0]90;// 第1个位置装90scores[1]85;// 第2个位置装85scores[2]95;// 第3个位置装95// 3. 访问赋值后的元素System.out.println(赋值后第1个成绩scores[0]);// 输出90// 验证引用类型数组的默认值String数组String[]namesnewString[2];System.out.println(String数组默认值names[0]);// 输出null}}3.4 静态 vs 动态初始化初始化方式适用场景核心特点静态初始化知道要装的所有元素值直接赋值长度自动算动态初始化只知道数组长度元素值后续确定先定长度有默认值后续手动赋值例子装已知的 3 个成绩用静态初始化int[] scores {90,85,95}装 5 个还没统计的成绩用动态初始化int[] scores new int[5]后续统计后再赋值。四、数组长度的获取length 属性不是方法数组创建后能通过数组名.length获取长度收纳盒的格子数新手一定要注意length是属性不是方法后面没有()。4.1 代码示例publicclassArrayLength{publicstaticvoidmain(String[]args){// 静态初始化长度3int[]scores{90,85,95};System.out.println(scores数组长度scores.length);// 输出3// 动态初始化长度5double[]pricesnewdouble[5];System.out.println(prices数组长度prices.length);// 输出5// 遍历数组结合lengthfor(inti0;iscores.length;i){System.out.println(第(i1)个成绩scores[i]);}}}4.2 新手避坑别和 String 的 length () 搞混// 错误示例数组用length()编译报错System.out.println(scores.length());// 报错找不到方法length()// 正确对比StringstrJava;System.out.println(str.length());// 字符串是方法带()输出4int[]arr{1,2,3};System.out.println(arr.length);// 数组是属性不带()输出3五、新手必避的 4 个 “初始化致命坑”5.1 坑 1静态与动态初始化混用最常见错误示例既指定长度又直接赋值// 想同时指定长度3和元素{1,2,3}编译报错int[]arrnewint[3]{1,2,3};后果编译报错提示 “数组初始化器不是一个表达式”解决方法二选一// 要么静态初始化不指定长度int[]arr{1,2,3};// 要么动态初始化先指定长度后续赋值int[]arrnewint[3];arr[0]1;arr[1]2;arr[2]3;5.2 坑 2未初始化直接使用数组错误示例只定义不初始化直接赋值// 只声明数组未创建/初始化int[]scores;scores[0]90;// 编译报错可能尚未初始化变量scores后果编译报错定义只是 “说要造盒子”还没真正分配内存解决方法声明后立即初始化int[]scoresnewint[5];// 动态初始化scores[0]90;// 正常赋值5.3 坑 3索引越界初始化后常见错误示例访问超出数组长度的索引int[]arr{1,2,3};// 长度3索引0/1/2System.out.println(arr[3]);// 访问索引3运行时报错后果运行时抛出ArrayIndexOutOfBoundsException数组索引越界程序崩溃解决方法访问索引必须满足0 ≤ 索引 数组长度比如长度 3 的数组索引只能是 0、1、2。5.4 坑 4给数组赋值时类型不匹配错误示例int 数组装字符串int[]scoresnewint[3];scores[0]90;// 编译报错String无法转换为int后果编译报错数组只能装定义时指定类型的元素解决方法赋值类型必须和数组类型一致scores[0]90;// int类型匹配总结这一节咱们掌握了数组定义与初始化的核心技能记住 3 个核心点定义数组优先用数据类型[] 数组名更规范初始化二选一静态直接装数据长度自动算、动态先定长度有默认值不能混用获取长度用数组名.length属性无括号避免和字符串的 length () 混淆。数组的初始化是使用数组的基础掌握后就能真正把 “收纳盒” 造好并装数据。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询