导读
关于Java数组,它是一种数据的容器。但这种容器是有规定,不同数据类型的容器,会存储不同的数据。
整数有int类型的数据——
注意:数组的元素是怎么确定位置的呢,对,就是从0开始的,最后一个是arr.lenght-1(最后一个)。
数组的定义及赋值方式:
①、第一种方式:int[] arr = {1,2,3,4,5,6,7,8,9,10};
②、第二种方式:int[] arr = new int[]{20,30,40};
③、第三种方式:int[] arr = new int[3];
arr[0] = 11'
arr[1] = 12;
arr[2] = 13;
这是Java的一维数组,可以保存单个与之对应的变量。
int a = 10;
int b = 20 ;
// 这样是可以的,因为a和b都是int类型——
int arr = {a,b};
其实第四种赋值方式,可以变为数组拷贝就可以完成赋值功能!!!
====================================================
数组的遍历分两种:
一、for循环
for(int i = 0 ; i < arr.length; i++)
{
System.out.println(arr[i]);
}
二、Arrays工具类
// 因为Arrays工具类已经封装了对数组的元素的打印——
System.out.println(Arrays.toString(arr));
内存分析:
因为Java数组是一个引用类型数据类型,因此它需要使用到Java的关键字:new
但为什么它还可以定义:int[] arr = {}; // 这种方式,因为它已经隐式地帮我们调用了构造器,JVM是这样的,它是方法的多态性的,也就是说它先识别int[]是一个数组,根据JVM编译规则的语法推断,赋值的过程必须是要求对象来处理,所以它调用了它的构造器来实例化,这样做就是构造器的创建会做三件事:
①、开辟内存空间
②、调用构造器并初始化
③、将生成的地址返回
【这就是类的实例化过程】——
栈内存 | 堆内存 |
arr | = {1,2,3,4}; |
Clazz c | = new Clazz(); |
如果,将地址返回,那么这个值就是一个hashCode和十六进制数据!
小例子培养编程思维:
题目:把一个无序数组排序,并且找到最小值和最大值,请问您怎么样设计最快速!
分析:有两种方式,第一种是自己编写算法处理,然后调用即可。第二种,如下:
int[] arr = {12,1,10,3,2,18,23,45};
Arrays.sort(arr); // 我们有工具类,为什么不用呢?对不对!这样就快速按升序排列元素了。
// 获取第一个(其实就是最小值)
System.out.println(arr[0]);
// 获取最后一个(其实就是最大值了)
System.out.println(arr[arr.length-1]);
小结:
我之所以这样写这个小例子,不是说必须要这样做。
而是想透过这样的一个理念来告诉大家一句话:如果日常开发中,时间比较紧迫。
但您有不想自己去处理这些业务的话,ok~您可以采用工具辅助开发的办法来处理业务是完全没有问题的!