Java数组的初始化

article/2025/9/20 2:12:00

Java数组初始化

      • 1 一维数组初始化
      • 2 二维数组初始化

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@1b6d3586System.out.println(arr[0]); // [I@4554617cSystem.out.println(arr[1]); // [I@74a14482System.out.println(arr[2]); // [I@1540e19dSystem.out.println(arr[1][0]); // 0System.out.println(arr[2][1]); // 0System.out.println("------------------------");arr[1][0] = 3;arr[2][1] = 4;System.out.println(arr); // [[I@1b6d3586System.out.println(arr[0]); // [I@4554617cSystem.out.println(arr[1]); // [I@74a14482System.out.println(arr[2]); // [I@1540e19dSystem.out.println(arr[1][0]); // 3System.out.println(arr[2][1]); // 4*/// 格式二(动态初始化)/*int[][] arr = new int[3][];System.out.println(arr); // [[I@1b6d3586System.out.println(arr[0]); // nullSystem.out.println(arr[1]); // nullSystem.out.println(arr[2]); // null// 打印arr相同,都是地址;但是对于arr[0] arr[1] arr[2]结果都是null,因为列的维度没有指定,不知道如何分配内存。// System.out.println(arr[0][0]); // NullPointerExceptionSystem.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]); // nullSystem.out.println(arr[1]); // [I@4554617cSystem.out.println(arr[2]); // [I@74a14482System.out.println(arr[1][0]); // 1System.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@1b6d3586System.out.println(arr[0]); // [I@4554617cSystem.out.println(arr[1]); // [I@74a14482System.out.println(arr[2]); // [I@1540e19dSystem.out.println(arr[1][0]); // 4// System.out.println(arr[2][1]); // ArrayIndexOutOfBoundsException}
}

格式一内存图分析:

二维数组格式1

格式二内存图分析:

二维数组格式2

格式三内存图分析:

二维数组格式3

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


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


http://chatgpt.dhexx.cn/article/7PrnnQh3.shtml

相关文章

java类初始数组_java中数组初始化的三种方式是什么

java中数组初始化的三种方式是:1、静态初始化,如【int a[] {2, 0, 1, 9, 2020}】;2、动态初始化,如【int[] c new int[4]】;3、默认初始化,如【int[]dnew int[5]】。 初始化方式: 1、静态初始…

Java数组初始化、赋值与输出

文章目录 Java数组相关知识数组初始化一维数组二维数组 数组输出一维数组二维数组 Java数组相关知识 数组初始化 一维数组 初始化为0 int[] a; a new int[5]; int[] b new int[5]; 初始化为指定值 int[] a new int[]{0,1,2,3,4};//正确 int[] b {0,1,2,3,4};//正确&a…

java初始化array_java数组初始化方式

在使用一个新的数组之前,要先对其中的数值进行设置,也就是我们常说的初始化工作。因为数组有长度和内容的区分,所以常见的两种初始化方法是动态和静态,另外一种就是默认初始化。下面我们对数组的初始化概念进行理解,区…

c++ lamuda表达式mutable

1.lambda表达式 C11引入了Lambda表达式。Lambda表达式的引入,方便了简短函数的定义,为常用的一次性函数的定义和使用提供了很大的便利。 Lambda表达式实际上是一种匿名函数定义,常用来定义简单和不重复使用的函数。其可使用的外部变量、定义方…

const和mutable关键字

const修饰变量表示改变量内容不可修改,在类中,const还可以修饰成员函数,修饰成员函数后就不可以更改成员变量了。 可以看出,this指针是const*const类型,既不可以修改其内容,也不能修改其指向。 想一下&…

C++的mutable

一、介绍 mutable的中文意思是“可变的,易变的”,正好与const相反。在C中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 二、用法 如果类的成员函数…

Scala集合的mutable和immutable解释

Scala集合的mutable和immutable解释 概述集合API概述 概述 Scala 集合类系统地区分了可变的和不可变的集合。可变集合可以在适当的地方被更新或扩展。这意味着你可以修改,添加,移除一个集合的元素。而不可变集合类,相比之下,永远不…

C++之mutable

mutable大概两种用法 第一种,若想在GetName中对一个私有成员变量进行更改,那么只能将其设置为mutable. class test { private:std::string m_name;mutable int m_count; public:const std::string & GetName() const{m_count;return m_name;} };…

mutable

1.mutable 关键字 (C) 字典意思 adj. 易变的,不定的;性情不定的 语法意思 如果需要在const成员方法中修改一个成员变量的值,那么需要将这个成员变量修饰为mutable。即用mutable修饰的成员变量不受const成员方法的限制。 可以认为mutable的变…

安装prophet

1、创建一个新的环境 按照官网的做法,创建一个新的python环境 激活这个环境。 2、安装C的编译工具 因为网速的问题,有一个包安装失败了,再次执行命令,发现安装会继续执行上次没完成的: 3、安装依赖库 4、安装pystan …

Facebook时序预测工具Prophet实战分析

引言 去年Facebook开源了一套时序预测工具叫做Prophet。Prophet是一个预测时间序列数 据的模型。 它基于一个自加性模型,用来拟合年、周、季节以及假期等非线性趋势。 它在至少有一年历史数据的日常周期性数据,效果最好。 Prophet对缺失值,趋…

Prophet代码实战(一)趋势项调节

这里写目录标题 Prophet Quick StartProphet的缺点数据格式建模流程 Prophet详解趋势线性趋势逻辑斯蒂趋势无趋势 检测和设置趋势的分段点分段点的检测和可视化趋势的置信区间 Prophet Quick Start Prophet的缺点 时间t上的观测值的分布只能是高斯分布无法高效处理大量相关时…

fbprophet

1 Prophet 简介 Facebook 开源了一个时间序列预测的算法,叫做 fbprophet,它的官方网址与基本介绍来自于以下几个网站: Github:https://github.com/facebook/prophet官方网址:https://facebook.github.io/prophet/论文…

ML之prophet:prophet的简介、安装、使用方法之详细攻略

ML之prophet:prophet的简介、安装、使用方法之详细攻略 目录 prophet的简介 1、四大特点 prophet的安装 prophet的使用方法 1、基础案例 2、进阶案例 ML之prophet:利用prophet算法对维基百科页面的日志每日页面浏览量实现回归预测(时间序列的趋势…

Prophet学习(二) 时序预测开源工具包Prophet介绍

目录 一、Prophet 简介 二、Prophet 适用场景 三、Prophet 算法的输入输出 四、Prophet 算法原理 五、与机器学习算法的对比 六、代码 6.1 依赖安装 6.2 预测demo 七、参考资料 八、官方链接: 九、案例链接: 一、Prophet 简介 Prophet是Faceb…

【数据分析】利用机器学习算法进行预测分析(五):Prophet

时间序列预测中的机器学习方法(五):Prophet 本文是“时间序列预测中的机器学习方法”系列文章的第五篇,如果您有兴趣,可以先阅读前面的文章: 【数据分析】利用机器学习算法进行预测分析(一&…

关于导入Prophet库

在做项目时在参考别人的代码时,其from fbgrophet import Proghet给我造成了很大的困扰。我先是用conda装了能在里面找到的prophet,可以看到我在里面安装了prophet(p是小写的): 但这个并不能用import prophet来替代他的那句from fbgrophet im…

Prophet学习(一) Python API实现

目录 Python API 详细介绍 完整代码: Python API 详细介绍 Prophet遵循sklearn模型API。我们创建Prophet类的实例,然后调用它的fit和predict方法。 Prophet的输入总是一个有两列的数据帧:ds和y。ds(日期戳)列应该是Pandas期望的格式,理想…

Prophet时间序列

Prophet参数介绍 growth:趋势函数-默认是线性趋势(linear),还可以选非线性(logistic). changepoints:突变点-默认是none,可以手动选择,如6-18节日有活动,就可以指点突变点在6-18。 n_changepoints:突变点个数-若未指定&#xff0c…

Windows下安装Python版本的prophet

prophet是Facebook开源的一款时序预测的工具。地址。 在Mac和linux下比较好安装,在Windows下安装就比较坑了。所以,记录以下自己安装成功的过程。 我的环境是win10 64位,python 3.6.1 第一步:安装PyStan fbprophet依赖于PyStan…