java的数组问题感觉不太明白,谁能详细给我讲解下。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java的数组问题感觉不太明白,谁能详细给我讲解下。相关的知识,希望对你有一定的参考价值。

1:我看java从初学到精通这本书数组这感觉不太明: 声明一维数组变量的语法不太懂,总之,求能人帮我详细分析下,

public class ArrayTest
/**
* 初学就不讲的太深,这里只用最简单的基本类型做的数组举例子
* */
public static void main(String[] args)
/**数组的声明方式,等号左边有两种,见以下代码
* 这两种方式完全等价,但是一般推荐用第一种,
* 可以很直观的看出是声明一个int类型的数组,名字叫ary1
* */
int[] ary1;
int ary2[];

/**动态初始化,以下这句代码得到一个长度为5,每个元素都为0的数组
* 也就是说ary3 = 0,0,0,0,0;一旦初始化完成,数组的长度就被确定
* 就是说ary3中最多只能放5个元素,再多就会报越界异常
* */
int[] ary3 = new int[5];

/**
* 静态初始化,也就是初始化时直接给数组的每个元素赋值
* 以下代码初始化了一个有5个元素的数组
* 在这里数组长度也同样被固定为5,不可以再增加
* */
int[] ary4 = 1,2,3,4,5;
//还有一种方式同样是静态初始化,上下两种的作用是完全一样的
int[] ary5 = new int[]1,2,3,4,5;

/**
* 需要调用整个数组时,就直接使用数组名
* 比如现在将ary4交给ary1去引用,代码如下
* 这样一来两个数组就拥有了相同的值
* 这里注意,是完全相同的,如果我修改ary1中的值,ary4中的值也随之改变
* */
ary1 = ary4;

/**
* 如果用到数组元素的值,那就需要用[]中加上下标的形式
* 比如将ary5的值赋给ary3,可以用以下代码
* ary5.length的作用是获得ary5数组的长度
* i=0是因为数组下标都是从0开始的,循环从0到4刚好5个值
* 这样得到的ary3和ary5,现在也是两个拥有相同元素的数组
* 但是和上个例子不同,修改ary3并不会影响ary5
* */
for(int i = 0;i<ary5.length;i++)
ary3[i] = ary5[i];


追问

这里的ary1--ary5都是数组名字吧。。刚开始一看我还以为int[] ary5 = new int[]1,2,3,4,5;中的
ary5=1,2,3,4,5; 呢,不过翻开书对照看下,才发现我搞错了。。晕死呵呵。
其实我问这个问题是 对int[] ary1 这里搞错了,因为我常常弄成 int [5] ary
还有个问题,如何访问一维数组元素。

追答

第一个元素是ary[0]
第二个就是ary[1]......
第一个从0开始

追问

例如:(开头一些就不用打上了)
int mathScore[] = 78,93,84;
int englishScore[] = new int[3];
englishscore[0] = 98;
englishscore[1] = 72;
englishscore[2] = 65;
为什么englishScore不像int mathScore[] = 78,93,84这样模式?

englishscore[0] = 98;中的98这个数字是任意的么?是可以修改的么?98这个数字是变量么?

追答

int mathScore[] = 78,93,84;//这种模式叫静态初始化只有在数组声明的同时可以这么写
int[] mathScore;
mathScore = 78,93,84;//像这样分成2行写就会报错

第二个数组的动态初始化,应该更加广泛一点,毕竟不是每个数组在创建的时候就已经确定值的,我们先为其分配好大小空间,等需要的时候再赋值

数组每个元素的值当然是任意的,可以随便赋值修改.

另外是一个概念性的问题,98这是一个数字,自然是一个常量
englishscore[0] = 98//这句话中englishscore[0]叫做一个变量

参考技术A java 声明数组有两种方法
int [] i ;
这个和一般的的变量没什么区别啊 生命一个int 也就是int的数组 [] 名字是i
int i [];
这种是c语言里定义数组的方法 为了照顾从c转过来的人这么设计的
参考技术B n节车厢,每节车厢都有很多人..

以上是关于java的数组问题感觉不太明白,谁能详细给我讲解下。的主要内容,如果未能解决你的问题,请参考以下文章

谁能给我一个详细的Java通过Apache POI导出Excel方法,最好能给完整代码

javaee项目开发流程

谁能详细的给我讲述一下java里分dao,biz,util,web的包的含义么?详细解释。每个包都啥意思,做啥用的

谁能彻头彻尾详细地讲解一下Linux下安装某个软件的具体过程,谢谢了

谁能用语音给我讲讲c# wpf 中timer类的使用。新手,看不太懂msdn上那些。

如何在sh中使用'find'的'-prune'选项?