CSDN话题挑战赛第2期
参赛话题:Java技术分享
Java技术er集合啦!大家可分享关于Java技术知识,包括但不限于微服务,分布式等前沿技术,快来沉淀自己的技术,一起写出未来吧!
你可以从以下几个方面着手(不强制),或者根据自己对话题主题的理解进行创作,参考如下:
提醒:在发布作品前请把不用的内容删掉
引言
提示:本目录下,介绍相关的技术,简单的进行讲述,从而更清晰的让读者认识本篇博文的技术分享主题。
为什么要使用这个技术?
数组是用来存放一组具有相同类型数据的数据结构。可以通过整型下标来访问数组中的每一个值。数组是可以通过在某种数据类型后面加上 [] 来定义,在此之后跟上变量名就可以定义相应类型的数组变量了。例如:int[] a;还可以使用另一种方法定义数组,例如:int a[] ;以上这两种方法的定义是等价的。在这里只定义了一个整型数组变量 a ,但是还没有将a 真正的初始化为一个数组。为将一个数组初始化可以使用 new 关键字,也可以使用赋值语句进行初始化。数组一旦被创建,就不能改变它的大小。例如:a = new int[10]; // 将 a 初始化为大小为 10 的整型数组。int[] b = {0,1,2,3} // 将 b 初始化为大小为 4 的整型数组,// 并且 4 个分量的值分别等于 0 , 1 , 2 , 3数组的下标从 0 开始计数,到数组大小减 1 结束。在 Java 中不能越过数组下标的范围去访问数组中的数据。例如:a[10] = 10;如果越过数组的下标访问数据,则会产生一个名为 ArrayIndexOutOfBoundsException 的运行时错误。为避免产生这种错误,可以通过在访问某个下标的数组元素前检查数组的大小来避免。数组的大小可以通过数组的变量 length 返回。例如:for (int i=0;i<a.length;i++)a[i] = i;由于在 Java 中数组实际上是一个类,因此两个数组变量可以指向同一个数组。请读者5 预测以下这段代码的运行结果:
技术案例,实战分享
int[] a = {1,1,1};int[] b = a;for (int i=0;i<b.length;i++)b[i]++;for (int i=0;i<a.length;i++)System.out.print(a[i]);在这段代码中对数组 b 的每个分量加 1 ,但是在输出数组 a 的每个分量时,可以发现 a的每个分量都发生了变化,都为 2 。其原因是赋值语句 int[] b = a; 只是将对于数组 a 的引用传递给变量 b ,此时数组变量 a 、 b 实际上是指向同一个数组空间。图 1-2 说明了这段代码运行时的情况。
难点分析
两个数组变量指向同一数组空间
技术小结
为了得到两个不同的但每个分量的值均相等的数组,可以使用循环语句或 System 类中的 arraycopy 方法来完成。同样当数组作为方法的参数传递时,也是传递的对于数组的引用,因此在方法中对数组进行的操作会影响到原来的数组。例如:public void changeArray(int[] a){for (int i=0;i<a.length;i++)a[i] = a[i] * 2;}那么如下代码int c = {2,2,2};changeArray( c );6 for (int i=0;i<c.length;i++)System.out.print(c[i]);的运行结果为: 444 。
提醒:在发布作品前请把不用的内容删掉