千家信息网

Java数组正确的写法是什么

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇"Java数组正确的写法是什么"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Ja
千家信息网最后更新 2026年10月31日Java数组正确的写法是什么

这篇"Java数组正确的写法是什么"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Java数组正确的写法是什么"文章吧。

索引:命名规则、自动类型推断、静态动态初始化、多维数组的其他写法、常见错误写法、数组下标越界、默认值问题、数组长度问题、数组内存解析

正确写法:

1.步骤分类:(以下int可以替换为char String double等等)
①一步写法:

int [] ids = new int []{1001,1002,1003};// 声明+初始化int ids [] = new int []{1001,1002,1003}; // [ ]位置有两种放法int ids [] = {1001,1002,1003};//自动类型推断,new int []可省/**********错误示范***错误示范***错误示范***错误示范************/int ids [] = new [] int{1001,1002,1003};//只有定义时的[]可以乱动

自动类型推断:仅在一步写法中适用,可以省略=右边的new int [ ]

②两步写法:

int ids [] ;   //声明ids = new int [ ] {1001,1002,1003} ;   //初始化/**********错误示范***错误示范***错误示范***错误示范************/int ids [];ids [] = new int {1001,1002,1003};//分两步时,左边不加[]int ids [];ids = {1001,1002,1003};//分两步时,没有类型推断

2.状态分类:静态动态必须二选一,给长度不加{},给{}不加长度

①静态初始化:

两个[ ]均为空String [] name = new String [] {"张三","李四"} ;//也可写为String [] name = {"张三","李四"};

②动态初始化:

后面的[ ]必须带数字规定长度,并且不能{}赋值String [ ] name ;name = new String [2] ;//可以合为一步写String name [] = new String [2];/**********错误示范****错误示范****错误示范********/int ids [3][4] = XXXXXXXXX;int ids [3][ ] = XXXXXXXXX;int ids [ ][4] = XXXXXXXXX;

多维数组

int arr1 [][] =XXXXXXXXXXX;int [] arr2 []=XXXXXXXXXXX;int [][] arr3 =XXXXXXXXXXX;//都是正确写法Java主张 int [] arr = new int []{}; 写法//多维数组同理int [] arr[][] =XXXXXXXX;int [][] arr[] =XXXXXXXX;随便瞎基8放都是正确的Java主张 int [][] arr = new int [][]{};写法不过我个人不习惯。。。
int arr0 [][] = {{1,2},{3,4},{5,6}};//正确:静态、自动类型推断int arr1 [][] = new int [3][2];int arr2 [][] = new int [3][ ];//正确:动态、可省列数[]int arr3 [][][] = new int [3][ ][ ];//正确:动态、可省后两个[]

默认值问题:动态[i][j]有默认值,静态{}没有默认值(末尾详解)

int arr0 [][] = new int [2][2];//动态初始化,分配内存//数组内的4个成员全部默认为0,编译运行都不会报错int arr0 [][] = new int [][]{ {1,2},{3} };//静态初始化,编译能通过,arr0[1][1]没有默认值(未分配空间)//编译能通过,运行到arr[1][1]会报错int arr0[][] = new int [3][] ;// 输出arr0[3][0]  arr0[3][1]  arr0[3][2]  arr0[3][3].......//都会报错

报错案例:

数组下标越界:arr[1][1]在静态初始化的时候没有给值,所以没有分配内存空间,编译能通过,但是访问的时候会报错。该静态初始化的数组范围仅限于arr[0][0] arr[0][1] 到arr[1][0]

深入内存理解:(末尾详解)

String cod [][] = new String [3][ ];//只定义了行,列数未知
System.out.println(cod[1][1]);//未定义列,不给默认值。运行报错

正确写法:加一步 cod[1]=new String [2\3\4....];分配列内存,给定默认值null

常见错误写法

① int [ ] arr1 = new int [ ] ; //静态忘带{}

② int [3] arr2 = new int [3] ; //前面[ ]必须空

③ int [ ] arr3 = new int [5] {1,2,3,4,5} ; //动态不能带{ }

数组一旦确定(声明+初始化),长度就固定了,不能更改

数组的内存分配是连续的,系统要为数组分配一个固定的空间,如果100个空间以后被其他内容占用内存,那么数组就只能用到前99个空间,如果长度可以改变,那么arr[100]就会更改其他内容产生bug

一个例子说明数组长度问题:

二维数组遍历,两层for循环:

public class Test2 {        public static void main(String args[]) {        int arr[][] = { {1,2,3},{4,5,6,7},{8,9},{10}};                                for(int i = 0 ; i 

运行结果:

arr.length是第一维度长度

arr[i].length是第i行的第二维度长度

arr[i][j].length是第i行j列的第三维度的长度

数组内存解析:

以二维数组为例,分为内层和外层。形如arr[0] arr[1]的是外层,完整表达arr[1][2]的是内层

一、对于一个外层arr[1]来说,它就是一个一维数组,就会分为"初始化"和"未初始化"的两种情况:

例1:

int arr1[][] = new int [3][];System.out.println( arr1[1] );//运行结果:null

此时只知道外层行数,但内层没有初始化,没有分配地址,故结果为null

int arr1[][] = new int [3][5];//任意给定列数System.out.println(arr1[1]);//运行结果:[I@15db9742

此时内层长度确定,初始化完成,arr1[1]指向一个首地址[I@15db9742

一个 [ 表示arr[1]的内层为一维数组,I是int的首字母,@后面是地址

例2:

String arr1[][] = new String [3][5];System.out.println(arr1);//运行结果:[[Ljava.lang.String;@15db9742

因为完整定义了String数组,故分配了空间,arr1指向arr1[0][0]的地址(整个数组的首地址)

两个[[表示里面有二维数组,java.lang.String;是包名

例3:

float arr1[][] = new float  [3][5];System.out.println(arr1[0]);//结果:[F@15db9742

外层元素初始化值为:地址值

内层元素初始化值为:与一维数组初始化情况相同

一维数组初始化:

1.数组元素是整形int long short : 0

2.数组元素是浮点型float double : 0.0

3.数组元素是boolean型:false

4.数组元素是引用类型 : null

5.数组元素是char型 :0 或 '\u0000' 而非'0'

数字0,而不是字符0,对应的ASCII码不一样

'\u0000'是Unicode码第0000号位,是一个空格符,但是不是键盘上的空格

验证如下:

經典例題:

解:b e可以,acdf都不行

以上就是关于"Java数组正确的写法是什么"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

数组 写法 错误 长度 示范 静态 内存 动态 分配 元素 内容 运行 内层 地址 空间 类型 结果 外层 推断 问题 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 精品咖啡豆 广东万易互联网科技有限公司惠州分公司 上海睿民互联网科技有限公司 科技股互联网 金诺互联网科技 美国互联网科技 融势互联网科技 滨湖区互联网智能科技产品供应 互联网科技生活的内容 中国科技互联网公司收入 宁夏众和广鑫互联网科技有限公司 呼和浩特新华互联网科技学院 互联网科技和法律行业 互联网金融科技名词解释 21世纪互联网科技成就 吉林省码上互联网科技电话 互联网科技的前景 第三届互联网大会安防黑科技 青岛易易互联网科技 广东猫王互联网科技有限公司电话 互联网科技工作委员会主任 互联网科技公司的优势 猪兼强互联网科技 百单互联网科技有限公司 狮子座互联网科技培训 上海电发互联网科技有限公司 知域互联网科技有限公司大骗子 链环科技传统企业怎么转型互联网 江苏苏星互联网科技有限公司 华人运通互联网科技公司
0