一: 数组
- 数组就是容器,同一种类型数据的集合
- 数组的格式1:数组类型[] 数组名 = new 数组类型[元素个数或数组长度]
- 格式1:int [ ] arr =new int [5];
public class TestArry{
public static void main(String[] args){
int [] arr=new int [3];
arr[0]=89;
System.out.println(arr[0]);
}
}
运行结果:
4.数组的格式2:int 【】arr=new int [ ]{1,3,5,7}
public class TestArry{
public static void main(String[] args){
int [] arr=new int [3];
arr[0]=89;
System.out.println(arr[0]);
System.out.println("-------------");
testArry1();
}
public static void testArry1(){
int [] arr={89,34,270,17};
System.out.println(arr[2]);
return ;
}
}
结果:
5. 数组的好处:方便操作元素,可给数组元素从0开始编号
二:数组内存的划分
1.寄存器
2.本地方法区
3.方法区
4.栈内存
1.存储的局部变量
2.而且变量所属作用域一旦结束,该变量则自动消失
5.堆内存
- 存储是数组和对象(数组就是对象)----凡是new建立在堆中
- 特点:每一个实体都有首地址值
- 堆内存中每一个变量都有默认初始化值,根据类型不同而不同。(整数0,小数0.0或0.0f,boolean false,char ‘\u0000’------u代表UNICORN代码–0000代表两个字节)
数组的例题
1.打印数组中数据
public class TestArry{
public static void main(String[] args){
int [] arr=new int [3];
arr[0]=89;
System.out.println(arr[0]);
System.out.println("-------------");
testArry1();
}
public static void testArry1(){
int [] arr={89,34,270,17};//存储已知具体数值
System.out.println(arr[2]);
System.out.println("-------------");
for(int x=0;x<4;x++){ //x<arr.length若数据多时使用
System.out.println(arr[x]);//获取所有的元素
}
}
}
运行结果:
public class TestArry2{
public static void main(String[] args){
int age=3;
System.out.println(age);
System.out.println("-------------");
int [] arr=new int [3];
arr[0]=89;
System.out.println(arr[ 0]);
System.out.println("-------------");
for(int x=0;x<3;x++){
System.out.println(arr[x]);
}
System.out.println("-------------");
testArry3();
}
public static void testArry3(){
int [] arr={89,34,99,66};
System.out.println("length:"+arr.length);
for(int x=0;x<arr.length;x++){//x<arr.length若数据多时使用
System.out.println("arr["+x+"]="+arr[x]+";");
/*for(int x=arr.length-1;x>=0;x--){
System.out.println("arr["+x+"]="+arr[x]+";");
}
可以用来反向输出最后的值 */
}
}
}
运行结果:
数组之最值的实例
/*
需求一:获取数组的最大值( 最值 )
思路: 1,需要进行比较,并定义变量记录住每次比较后较大的值
2,对数组进行遍历,取出并和变量的元素进行比较,若遍历后的数据大于变量记录的元素,就用变量记录此最大值
3,遍历后的结果该变量记录就是最大值
定义一个函数功能,获取数组最大的数
明确是否有结果? 有,数组中的元素,int 类型
明确二,是否有未知内容? 有, 数组中最大值数据
*/
public class TestArrayGetMax{
public static void main(String[] args){
int[] arr= {23,45,67,98,187};
//int[] tempArr={};
//int tempMax=getMax(tempArr);不能是空数组,否则系统报错,超出边界
int max=getMax(arr) ;
System.out.println("max="+max);
int maxIndexOfValue=getMax2(arr);
}
public static int getMax(int[] arr){
int max =arr[0];
for(int x=1;x<arr.length;x++){
if (arr[x]>max)
max=arr[x];
//System.out.println("max="+max);
}
return max;
}
public static int getMax2(int[] arr){
int maxIndex=0;//角标
for(int x=0;x<arr.length;x++){
if (arr[x]>maxIndex)
maxIndex=x;
System.out.println("maxIndex="+maxIndex);
}
return arr[maxIndex];
}
public static void testFunc(int first){
System.out.println("first="+first);
}
}
public static void print(int a,int count){
for (int i=0;i<count;i++) {
System.out.println(a);
}
}
}
运行结果: