day5

1,package Demoday05;

/*

* 数组:是一种容器,可以同时存放多个数据值* 1.数组是一种引用数据类型* 2,数组当中的多个数据,类型必须统一* 3.数组的长度在程序运行期间不可改变* 数组的初始化:在内存中创建一个数组,并且向其中赋予一些默认值* 两种常见初始化方式:* 1.动态初始化(指定长度)*2.静态初始化(指定内容)* 动态初始化数组的格式* 数据类型【】 数组名称=new 数据类型(数组长度)* 解析含义:* 左侧数据类型:也就是数组当中保存的数据,全都是统一的类型* 左侧的中括号:代表我是一个数组* 左侧数组名称:给数组取一个名字* 右侧的new:代表创建数组的动作* 右侧数据类型:必须和左边的数据类型保持一致* 右侧中括号长度:也就是数组当中,到底可以保存多少个数据,是一个int数字*

* */

public class Demo01Array {

public static void main(String[] args) {

int[] arryA=new int[300];

            double[] arryB=new double[10];

            String[] arryC=new String[5];

    }

}

2,package Demoday05;

/*

*动态初始化(指定长度):创建数组的时候,直接指定数组当中的数据元素个数*静态初始化(指定内容):直接将具体的数据内容进行指定* 静态初始化格式:* 数据类型[] 数组名称=new 数据类型【】{元素1,元素2,。。。。。。}

*注意:* 虽然静态初始化没有直接告诉长度,但是根据大括号里面的元素具体内容,可以自动推算* */

public class Demo02Array {

public static void main(String[] args) {

int[] arryA=new int[]{5,15,25};

        String[] arryB=new String[]{"hello","whorld"};

    }

}

3,package Demoday05;

/*

* 注意:* 1.静态初始化么有* 2.静态初始化格式可以拆分成两个步骤* 3.动态初始化也可以拆分成两个步骤* 4.静态初始化一旦使用省略格式,就不能拆分成两个步骤* 5.使用建议* 不确定数组当中具体内容用动态,否则静态* */

public class Demo03Array {

public static void main(String[] args) {

int[] arrayA={10,20,30};

      int[] attayB;

      attayB=new int[]{11,21};

      int[] arrayC;

      arrayC=new int[5];

    }

}

4,package Demoday05;

/*

* 直接打印数组名称,得到的是数组对应的内存地址值* 访问数组元素的格式:数组名称【索引值】* 索引值:就是一个int数字,代表数组当中元素编号* 注意:索引值从0开始* */

public class Demo04ArrayUse {

public static void main(String[] args) {

int[] array={10,20,30};

        System.out.println(array);

        System.out.println(array[0]);

        System.out.println(array[1]);

        System.out.println(array[2]);

        int num=array[1];

        //可以将数组当中的某一个元素单独打印

        System.out.println(num);

    }

}

5,package Demoday05;

/*

* 使用动态初始化数组的时候,其中的元素将会自动拥有一个默认值* 如果是int,默认0

* float,0.0

* char,‘\u0000’

*buer:false

* 引用:null

*注意:* 静态初始化其实也有默认值,不过自动替换*

*

*

* java的内存需要划分为五个部分:* 1.栈(stack):存放的都是方法中的局部变量* 局部变量:方法参数,或是方法{}内部的变量* 作用域:一旦超出作用域,立即从栈内存当中消失* 2.堆(Heap):凡是new出来的东西,都在堆当中* 堆内存里面的东西都有一个地址值:16进制* 堆内存里面的数据都有默认值:* 规则* 整数:20

* 浮点型:0.0

* 字符:\u0000

* 布尔:false

* 引用:null'

* 3.方法区(Method Area):存储。class相关类型,包含方法的信息* 4.本地方法栈(Native Method Stack):与操作系统相关* 5寄存器(pc Reqister):与cpu相关* */

public class Demo05ArrayUse {

public static void main(String[] args) {

int[] array=new int[3];

        System.out.println(array);

        System.out.println(array[0]);

        System.out.println(array[1]);

        System.out.println(array[2]);

        array[1]=123;

        System.out.println(array);

        System.out.println(array[0]);

        System.out.println(array[1]);

        System.out.println(array[2]);

    }

}

6,package Demoday05;

/*

* ArrayIndexOutOfBoundException

* 数组索引越界异常*

*

* */

public class Demo06ArrayIndex {

public static void main(String[] args) {

int[] array={15,25,35};

        System.out.println(array[0]);

        System.out.println(array[1]);

        System.out.println(array[2]);

    }

}

7.package Demoday05;

/*

* 所有的引用类型变量,都可以赋值为一个null值,但是代表其中什么都没有* 数组必须进行new初始化才能使其中的元素* 如果只是赋值了一个null

* 会发生* 空指针异常:NullPointerException

*

* */

public class Demo07ArrayNull {

public static void main(String[] args) {

int[] array=null;

        System.out.println(array[10]);

    }

}

8,package Demoday05;

/*

*如何获取数组长度;* 格式:* 数组名。length

* 数组一旦创建,程序运行期间,长度不变。* */

public class Demo08Arraylenth {

public static void main(String[] args) {

int[] arrayA=new int[3];

        int[] arrayB={10,20,30,12,2,3,5,2,6,7};

        int len=arrayB.length;

        System.out.println("  "+len);

        int [] arrayC=new int[3];

        System.out.println(arrayC.length);

        arrayC=new int[5];

        System.out.println(arrayC.length);

    }

}

例子:

1

package Demoday05.Demo;

/*

*

*

* */

public class Demo01ArrayOne {

public static void main(String[] args) {

int[] array=new int[3];

        System.out.println(array);

        System.out.println(array[0]);

        System.out.println(array[1]);

        array[1]=10;

        array[2]=20;

        System.out.println(array);

        System.out.println(array[0]);

        System.out.println(array[1]);

    }

}

2

package Demoday05.Demo;

/*

*

*

*

* */

public class Demo04Array {

public static void main(String[] args) {

int[] array={5,15,30,20,10000};

        int max=array[0];

        for(int i=1;i

if(array[i]>max){

max=array[i];

            }

}

System.out.println("最小值:"+max);

    }

}

3package Demoday05.Demo;

/*

* 数组元素翻转* 本来的样子:()* 1.数组元素翻转就是对称位置的元素交换* 2.通常遍历数组用的是一个索引:* int i

* 现在表示对称位置需要两个索引:* int min=0

* int max=array.length-1;* 3.如何交换两个变量* int a=10;* int b=20;* 借助第三数组* int temp=a;* a=b;* b=temp;* 用第三个变量倒手* 4.什么时候停止交换?* (1)min==max

* (2)min》max

* 什么时候应该交换:* min《max

* */

public class Demo05ArrayReverse {

public static void main(String[] args) {

int[] array={10,20,30,40,50};

        for (int i =0; i < array.length; i++) {

System.out.println(array[i]);

        }

System.out.println("++++++");

        for(int min=0,max=array.length-1;min

int temp = array[min];

            array[min]=array[max];

            array[max]=temp;

        }

for (int i =0; i < array.length; i++) {

System.out.println(array[i]);

        }}

}

4,

package Demoday05.Demo;

public class Demo06ArrayParam {

public static void main(String[] args) {

int[] array={10,20,30,40,50};

        printArray(array);

        System.out.println("+===========aaa=========");

        printArray(array);

        System.out.println("===========bbb========");

    }

/*

*

* */

    public static void printArray(int[] array){

for (int i =0; i < array.length; i++) {

System.out.println(array[i]);

        }

}

}

5,

package Demoday05.Demo;

/*

* 一个方法可以有0,1,多个参数* 任何数据类型都能作为方法的参数类型,或者返回值* 数组作为方法的参数,传递进去的其实是数组的地址值*            返回值,返回的* */

public class Demo07ArrayReturn {

public static void main(String[] args) {

System.out.println("");

    }

public static int[]calculate(int a,int b,int c){

int sum=a+b+c;

        int avg=sum/3;

        //需要一个数组

      // int[] array=new int[2];

//array[0]=sum;

//array[1]=avg;

        int[] array={sum,avg};

        return array;

    }

}

6

package Demoday05.Demo;

/*

*遍历数组:对数组当中的每一个元素都进行逐一处理。默认为打印*

* */

public class Demoo3Array {

public static void main(String[] args) {

int[] array ={15,25,35,40};

        System.out.println(array[0]);

        //循环,次数是数组长度

        for (int i =0; i <3; i++) {

System.out.println(array[i]);

        }

//int len=array.length;

        for (int i =0; i < array.length; i++) {

System.out.println(array[i]);

        }

for (int i =0; i < array.length; i++) {

System.out.println(array[i]);

        }

}

}

你可能感兴趣的:(day5)