Array
class ArrayDemo
{
public static void main(String[] args)
{
/*
数组的定义方式:
元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
好处:数组可以存储多个数据,而且可以对数据进行编号,
从0开始。操作元素完成可以通过编号(索引)完成。
*/
int[] arr = new int[3];//通过new关键字创建了一个长度为3,元素类型是int的数组实体。
System.out.println(arr[1]);
//System.out.println(arr[3]);//ArrayIndexOutOfBoundsException:访问到了数组不存在的索引时,会发生该异常。
arr = null;
System.out.println(arr[0]);//NullPointerException:当使用没有任何实体指向的引用变量操作实体时,运行会发生该异常。
/*
Java对内存空间的划分:五部分:
栈,堆,方法区,本地方法区,寄存器。
栈内存:存储都是局部变量。只要是在方法中定义的变量都是具备变量。
一旦变量的生命周期结束该变量就被释放。
堆内存:存储都是实体(对象)
每一个实体都有一个首地址值。
堆内存的变量都有默认初始化值。不同类型不一样。int-0 double-0.0 boolean-false char-'\u0000'
当实体不在使用时,就会被垃圾回收机制处理。
*/
}
}
数组定义二
class ArrayDemo2
{
public static void main(String[] args)
{
//数组定义格式二:
//int[] arr = new int[]{34,12,89};
int[] arr = {34,12,89,50,11,78};
//如何获取数组的长度呢?通过数组的属性 length
System.out.println(arr.length);
for(int x=0; x<arr.length; x++)
{
System.out.println("arr["+x+"]="+arr[x]);
}
}
}
ArrayTest
class ArrayTest
{
public static void main(String[] args)
{
int[] arr = {23,14,22,88,45,90,17};
int[] arr2 = {3,1,45,7,9};
int sum = add(arr2);
System.out.println("Hello World!");
}
//获取多个数的和的功能。
/*
明确1:结果?和 int。
明确2:参数?多个数,定义多个参数合适吗?既然是一组数,数组。
*/
public static int add(int[] arr)
{
//1,定义变量记录和。
int sum = 0;
//2,通过循环对数组进行遍历。
for(int x=0; x<arr.length; x++)
{
sum = sum + arr[x];
}
return sum;
}
//两个整数求和的功能。
public static int add(int a,int b)
{
return a+b;
}
//三个整数求和。
public static int add(int a,int b,int c)
{
return a+b+c;
}
}
class ArrayTest2
{
public static void main(String[] args)
{
int[] arr = {23,15,67,25,90,33};
int max = getMax(arr);
System.out.println("max="+max);
}
/*
需求:获取多个整数中最大值。
思路:
1,数据多了为了便于操作,先存储起来。需要容器。用数组。
2,多个数据需要进行比较。每次都有较大的数,需要记录下来和下一个数比较。
3,将数组中的元素都比一遍。最后,就有了最大值。
步骤:
1,需要数组。
2,定义一个变量记录住较大的数。
3,对数组进行遍历。让元素和较大的值进行比较。
如果元素大于较大的数,用变量记录该元素。
4,遍历完成后,变量中记录就是最大值。
*/
//定义功能。
/*
明确1:结果?int
明确2:参数?int[]
*/
public static int getMax(int[] arr)
{
//1,定义变量。初始化为数组中的任意一个元素。
int max = arr[0];
//2,遍历数组。
for(int x=1; x<arr.length; x++)
{
//遍历的元素只要比max大,就用max记录下来。遍历到最后max中记录就是最大值。
if(arr[x]>max)
max = arr[x];
}
return max;
}
public static int getMax_2(int[] arr)
{
int max = 0;//初始化为数组中的任意一个角标。
for(int x=1; x<arr.length; x++)
{
if(arr[x]>arr[max])
max = x;
}
return arr[max];
}
}
来源:https://www.cnblogs.com/zhxy0526/p/10813535.html