前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java数组的初始化大小_对Java接口实现的建议

Java数组的初始化大小_对Java接口实现的建议

作者头像
全栈程序员站长
发布2022-11-07 10:33:13
4550
发布2022-11-07 10:33:13
举报
文章被收录于专栏:全栈程序员必看

Java数组初始化

1 一维数组初始化

代码语言:javascript
复制
public class ArrayDemo1 { 

public static void main(String[] args) { 

// 格式一(动态初始化)
int[] arr1 = new int[3]; // 数组的长度(这里为3)必须指定
// 格式二(静态初始化)
int[] arr2 = new int[]{ 
1, 2, 3}; // 这里数组长度不能指定,花括号里面的元素个数就是数组长度
// 或者按照下面的简写形式
int[] arr3 = { 
1, 2, 3}; // 格式二的简写形式
}
}

内存图分析略。

2 二维数组初始化

代码语言:javascript
复制
public class ArrayDemo2 { 

public static void main(String[] args) { 

// 格式一(动态初始化)
/*int[][] arr = new int[3][2]; System.out.println(arr); // [[I@1b6d3586 System.out.println(arr[0]); // [I@4554617c System.out.println(arr[1]); // [I@74a14482 System.out.println(arr[2]); // [I@1540e19d System.out.println(arr[1][0]); // 0 System.out.println(arr[2][1]); // 0 System.out.println("------------------------"); arr[1][0] = 3; arr[2][1] = 4; System.out.println(arr); // [[I@1b6d3586 System.out.println(arr[0]); // [I@4554617c System.out.println(arr[1]); // [I@74a14482 System.out.println(arr[2]); // [I@1540e19d System.out.println(arr[1][0]); // 3 System.out.println(arr[2][1]); // 4*/
// 格式二(动态初始化)
/*int[][] arr = new int[3][]; System.out.println(arr); // [[I@1b6d3586 System.out.println(arr[0]); // null System.out.println(arr[1]); // null System.out.println(arr[2]); // null // 打印arr相同,都是地址;但是对于arr[0] arr[1] arr[2]结果都是null,因为列的维度没有指定,不知道如何分配内存。 // System.out.println(arr[0][0]); // NullPointerException System.out.println("------------------------"); // arr[1] = {1, 2, 3}; // 报错 arr[1] = new int[]{1, 2, 3}; arr[2] = new int[]{10, 20}; System.out.println(arr[0]); // null System.out.println(arr[1]); // [I@4554617c System.out.println(arr[2]); // [I@74a14482 System.out.println(arr[1][0]); // 1 System.out.println(arr[2][1]); // 20 // 总结:格式二需要new两次,并且Java中二维数组每行元素的个数可以不相同(和C/C++不同)。*/
// 格式三(静态初始化)
// int[][] arr = new int[][]{ 
{1, 2, 3}, {4, 5}, {6}}; // 此时行、列维度都不能指定
// int[][] arr = new int[2][]{ 
{1, 2, 3}, {4, 5}}; // 报错
// int[][] arr = new int[][3]{ 
{1, 2, 3}, {4, 5}}; // 报错
int[][] arr = { 
{ 
1, 2, 3}, { 
4, 5}, { 
6}}; // 格式三的简化形式
System.out.println(arr); // [[I@1b6d3586
System.out.println(arr[0]); // [I@4554617c
System.out.println(arr[1]); // [I@74a14482
System.out.println(arr[2]); // [I@1540e19d
System.out.println(arr[1][0]); // 4
// System.out.println(arr[2][1]); // ArrayIndexOutOfBoundsException
}
}

格式一内存图分析:

二维数组格式1
二维数组格式1

格式二内存图分析:

二维数组格式2
二维数组格式2

格式三内存图分析:

二维数组格式3
二维数组格式3

总结:数组初始化分为静态初始化动态初始化,一维数组和二维数组的静态初始化类似;对于动态初始化,一维数组只有一种形式,且必须指定数组的长度,二维数组有两种形式,且必须指定数组的行,列可以不用指定(这种情况要new两次)。


结束语:如果本篇博客对您有帮助,请点赞、收藏或关注,您的鼓励是博主进步的动力,感谢支持,共同进步。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/184301.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月9日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java数组初始化
  • 1 一维数组初始化
  • 2 二维数组初始化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档