黑马程序员-->Java基础-->数组

来源:互联网 发布:qq的网络传输协议 编辑:程序博客网 时间:2024/05/21 11:10

-------android培训java培训、期待与您交流! ----------

一、数组的定义

用于存储同一类型数据的一个容器。
好处:可以对该容器中的数据进行编号,从0开始。数组用于封装数据,就是一个具体的实体。
格式:
元素类型[] 数组名 = new 元素类型[元素个数或数组长度]
如:int[] arr = new int[5]
元素类型[] 数组名 = new 元素类型[]{元素,元素,...}
如:int[] arr = new int[]{1,3,5,7};
   int[] arr = {1,3,5,7};

 

二、栈内存和堆内存

栈内存:某一个函数被调用时,这个函数会在栈内存里面申请一片空间,以后在这个函数内部定义的变量,都会分配到这个函数所申请到的栈。当函数运行结束时,分配给函数的栈空间被收回,在这个函数中被定义的变量也随之被释放和消失。

堆内存:通过new产生的数组和对象分配在堆内存中。堆内存中分配的内存,由JVM提供的GC(垃圾回收机制)来管理。
在堆内存中产生了一个数组对象后,我们还可以在栈中定义一个变量,这个栈中变量的取值等于堆中对象的首地址。栈内存中的变量就成了堆内存中数组或者对象的引用变量。我们以后就可以在程序中直接使用栈中的这个变量来访问
我们在堆中分配的数组或者对象,引用变量相当于数组或者对象起的一个别名,或者代号。

 

三、数组操作常见问题

int[] arr = new int[3];
arr = null;//当引用没有任何指向值且为null的时候,该引用还在用于操作数组,会报NullPointerException异常
System.out.println(arr[3]);//访问到数组中不存在的角标时会报ArrayIndexOutofBoundsException异常

 

四、数组常见操作

(1)获取数组中的元素,通常会用到遍历,示例:

 

(2)获取最值

 

(3)对给定数组的排序
选择排序:

 

冒泡排序:

 

折半查找:

 

查表法(各类进制的转换):

 

五、数组中的数组(二维数组)

二维数组定义:一维数组作为元素存储到一维数组中

 

 -------android培训java培训、期待与您交流! ----------

0 0
原创粉丝点击