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

Java数组的初始化大小_对Java接口实现的建议**二维数组:**元素是一维数组的数组。格式一:publicclassArrayDemo{publicstaticvoidmain(String[]args){//格式一int[][]arr=newint[3][2];System.out.println(arr);//[[I@1b6d3586System.out.println(arr[0]);//[I@4554617c

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1 一维数组初始化

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 二维数组初始化

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

格式二内存图分析:

二维数组格式2

格式三内存图分析:

二维数组格式3

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


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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android 串口调试_串口转usb需要驱动吗

    Android 串口调试_串口转usb需要驱动吗本文背景:是真的不喜欢脑子记这些引脚,串口节点,动不动忘记了。1.首先记录一下硬件引脚—-tty节点对应关系2.找一组/dev/ttyHSL1,先测试一下自环,然后写个app,从app里面读写这个节点3.后续,通过串口和单片机通信,和esp8266通信,实现一个androidapp控制单片机硬件平台配置:平台:msm8909默认log串口:Board_KERNEL_CMDLINE.

    2022年10月10日
    2
  • webservice常用框架_webservice开发框架

    webservice常用框架_webservice开发框架2019独角兽企业重金招聘Python工程师标准>>>…

    2022年9月21日
    1
  • Python基础:标准库和常用的第三方库「建议收藏」

    Python基础:标准库和常用的第三方库「建议收藏」Python的标准库和第三方库。

    2022年10月14日
    2
  • spa 单页面_浅谈数学在生活中的应用论文

    spa 单页面_浅谈数学在生活中的应用论文https://blog.csdn.net/huangpb123/article/details/86183453单页Web应用(singlepagewebapplication,SPA):SPA是一种特殊的Web应用,是加载单个HTML页面并在用户与应用程序交互时动态更新该页面的。它将所有的活动局限于一个Web页面中,仅在该Web页面初始化时加载相应的HTML…

    2022年4月19日
    51
  • blob对象介绍[通俗易懂]

    blob对象介绍[通俗易懂]一个Blob对象表示一个不可变的,原始数据的类似文件对象。Blob表示的数据不一定是一个JavaScript原生格式blob对象本质上是js中的一个对象,里面可以储存大量的二进制编码格式的数据。创建blob对象创建blob对象本质上和创建一个其他对象的方式是一样的,都是使用Blob()的构造函数来进行创建。构造函数接受两个参数:第一个参数为一个数据

    2025年6月19日
    3
  • 菜鸟的数学建模之路(一):最短路径算法「建议收藏」

    菜鸟的数学建模之路(一):最短路径算法「建议收藏」最短路径算法主要有两种,Dijkstra算法和floyd算法,当时在学习这两种算法时经常弄混了,关于这两种算法,记得当时是在交警平台设置的那一道题目上了解到的,就去查很多资料,花了不少时间才基本了解了这两种算法的基本用法,在总结的时候,我更多的是用代码的方式去做的总结,当时想的是等到要用的时候,直接改一下数据,运行代码,得到想要的最短路径就可以了。记得我们老师说过数学建模的知识没必要过于深入的去学…

    2022年6月4日
    160

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号