问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

- 信息提示

发布网友 发布时间:2022-04-26 18:07

我来回答

5个回答

热心网友 时间:2023-10-27 01:42

如果你熟悉C/C++,Java数组的工作原理与它们不同。Java中的数组是对象,这就意味着与C++中的数组的根本不同.
1、数组不是集合,它只能保存同种类型的多个原始类型或者对象的引用。数组保存的仅仅是对象的引用,而不是对象本身。数组声明的两种形式:一、int[] arr; 二、int arr[]; 推荐使用前者,这是一个int数组对象,而不是一个int原始类型。
2、数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
4、在数组声明中包含数组长度永远是不合法的!如:int[5] arr; 。因为,声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关。
5、在数组构造的时候必须指定长度,因为JVM要知道需要在堆上分配多少空间。例:int[] arr = new int[5];
7、一维数组的构造。形如:String[] sa = new String[5]; 或者分成两句:String[] sa; sa = new String[5];
8、原始类型数组元素的默认值。对于原始类型数组,在用new构造完成而没有初始化时,JVM自动对其进行初始化。默认值:byte、short、 int、long--0 float--0.0f double--0.0 boolean--false char--'"u0000'。(无论该数组是成员变量还是局部变量)
10、对象类型的数组虽然被默认初始化了,但是并没有调用其构造函数。也就是说:Car[] myCar = new Car[10];只创建了一个myCar数组对象!并没有创建Car对象的任何实例!
11、*数组的构造。float[][] ratings = new float[9][]; 第一维的长度必须给出,其余的可以不写,因为JVM只需要知道赋给变量ratings的对象的长度。
12、数组索引的范围。数组中各个元素的索引是从0开始的,到length-1。每个数组对象都有一个length属性,它保存了该数组对象的长度。(注意和String对象的length()方法区分开来)
13、Java有数组下标检查,当访问超出索引范围时,将产生ArrayIndexOutOfBoundsException运行时异常。注意,这种下标检查不是在编译时刻进行的,而是在运行时!也就是说int[] arr = new int[10]; arr[100] = 100; 这么明显的错误可以通过编译,但在运行时抛出!
Java中的数组中既可以存储基本的值类型,也可以存储对象。对象数组和原始数据类型数组在使用方法上几乎是完全一致的,唯一的差别在于对象数组容纳的是引用而原始数据类型数组容纳的是具体的数值。在讨论关于数组的问题时,一定要先确定数组中存储的是基本值类型还是对象。特别是在调试程序时,要注意这方面。

热心网友 时间:2023-10-27 01:42

java中数组不是一个基本数据类型,想这样定义的话,只能int []a = new int[3];a[0]= 1;a[1] = 2; a[2]= 3;这是先声明,再赋值。

热心网友 时间:2023-10-27 01:42

java 里面定义变量格式
类型 变量名
int []a int 为类型 ,[]a为变量名,请查看变量名命名规则,[]中括号不能作为变量名

热心网友 时间:2023-10-27 01:43

Java语法的规定就是这样。在声明中,= 后面的内容叫做initializer,在赋值表达式中, = 后面应该跟表达式。而Java并不把{1,2,3}看作是表达式。其实我认为Java允许你的第一种写法是尽量向C靠拢。 其实在第一种写法的数祖初始化时,作了两件事情:创建数组对象,将数组对象的引用赋给标识符。而在赋值表达式中,就只是赋值,而不是创建数组。如果需要创建数组,需要使用数组创建表达式。简单说就是用new。你可以这样写:public int[]a;a=new int[]{1,2,3};

热心网友 时间:2023-10-27 01:44

int[] a = {1,2,4};
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
蛋上有疙瘩怎么回事 姻缘测试:属虎和属兔的合不合 婚姻怎么样 电脑能上网手机连上wifi不能上网? 为什么手机连上电脑WIFI却上不了网呢 win7开机黑屏安全模式正常是怎么回事 win7开机黑屏安全模式正常问题解 ... 电脑开机安全模式能进电脑可以进安全模式但正常系统为什么进不去 ...进笔记本电脑安全模式能开机但是正常模式开机黑屏 电脑开机黑屏但安全模式能进去电脑开机一启动系统就黑屏进安全系统正常... 12月份女生面试应该穿什么? 我想去哈尔滨玩几天,大概在十二月中旬,穿什么才不会被冻着?大概需要多... java里的数组初始化问题 java定义一个整型数组并初始化,将数组中的最大值与最小值进行交换,并最后将数组输出出来 java数组初始化 Java数组创建和初始化 java如何对象创建数组并初始化 java 中声明了int数组没有初始化时,int数组的默认值为什么是null而不是0? java数组怎么初始化private int[20] a=??? java数组的初始化 java中怎么数组初始化? java中怎么数组初始化 广州大学城有没有CISCO培训 广州改革开放40年来的成果及未来新科技的发展有哪些? 思科的CF卡是不是路由器跟交换机都通用的?广州什么地方有思科的CF卡卖?谢谢 广州体思科网络科技有限公司怎么样? 谁知道广州哪里思科认证培训机构? 广州这边有没比较好的思科培训机构 广州思科保安服务有限公司增城分公司怎么样? 广州思科保安服务有限公司天津分公司怎么样? 1971年属相属猪人女1971年生A型血想知道2011年运程 2015年农历三月初七属猪女运势 Java定义一个int类型数组,并初始化,把里面最大的数,放在这个数组最前面的位置? JAVA中int类型一维数组的默认值是多少 java中一维数组的定义及初始化的方法有哪几种? java数组初始化的简单问题 java 数组初始化问题 java中声明int数组没有初始化时,int数组的默认值为什么是null而不是0? 迷你小冰箱可以躺着工作吗? 买了个海尔冰箱 送到家时是平躺着送来的 有啥影响吗 2019百度沸点晚会在哪里举办? 百度沸点人气尖叫榜什么时候结束 沸点投票截止时间是什么时候??? 百度沸点榜单什么时候发布 2019女排全明星赛投票 怎样投票 2020百度沸点什么时候开始 百度沸点投票中奖,什么时候奖品才会到啊 如何删除 快速关机(快捷键Ctrl+Alt+End) 2010年百度娱乐沸点颁奖时间及地址。 百度沸点颁奖典礼在几台 百度娱乐沸点投票地址? 关机快捷键是那个?如何更改或取消?