java 数组定义和常用方法,如何理解数组一但定义长度就不能改变

 

自己得理解:数组一旦定义没有添加和删除得方法,印证了数组一旦定义数组得长度就固定了,如有

增删方法 则会导致数组得长度发生改变

  1. 数组得声明和定义
package day7.demo1;

/*
一:素组的特点
1.长度固定:没用增加只有赋值的方法,删除的方法
2.类型统一
3.存放引用数据类型
数组的创建(初始化)基本格式(标准格式)
二.动态初始化(告诉我指定长度) 数据类型[] 数组名=new 数据类型 [长度值];
如果为正数类型类型 那么默认为0
如果为浮点类型类型 那么默认为0.0
如果为字符串类型 那么默认为‘\u0000’
如果为布尔类型 那么默认为false
如果为引用类型 那么默认为null
三.静态初始化(告诉我指定内容) 数据类型[] 数组名称=new 数据类型 [] {元素1,元素2,元素3}
静态的初始化:先有默认值,{元素1,元素2,元素3}覆盖默认值
数组的创建(初始化)省略格式
四.静态初始化(告诉我指定内容) 数据类型[] 数组名称={元素1,元素2,元素3}
数组的打印:内存地址哈希值
二进制:01
十进制:0123456789
16进制:0123456789abcdef
五:数组常见得异常
System.out.println(arrayC[8]);//ArrayIndexOutOfBoundsException数组索引越界异常
int [] arraynull=null;
 System.out.println(arraynull[0]);//NullPointerException空指针异常
* */
public class Demo1Array {

    public static void main(String[] args) {
    //========声明和定义=====================================
     //数组是容器,可存储多个数据,变量只能存放1个数据
     //1.动态初始化
        int [] arrayA=new int [5];
    //动态初始化拆分为两部分写
        int [] arrayA1;
        arrayA1=new int [5];
     //2.静态初始化
        int [] arrayB=new int [] {1,2,3,4,5};
    //静态初始化拆分为两部分写
        int [] arrayB1;
        arrayB1=new int [] {10,20,30,40};
    //3.静态初始化省略格式,不能拆分俩个部分写
    int [] arrayC={11,22,33,44,55};

    //打印array ,[I@1540e19d I表示int
        System.out.println(arrayC);
    //访问元素
        int num1=arrayC[0];
        System.out.println(num1);


}

2.数组中常用得方法

package day7.demo1;


public class Demo1Array {

    public static void main(String[] args) {

    //1.定义.静态初始化省略格式,不能拆分俩个部分写
        int [] arrayC={11,22,33,44,55};
    

        // 1.=======================改变数组中的元素
        arrayC[0]=123;
        //2.=======================数组长度
        int arraylength=arrayC.length;

        //3.遍历数组:如数组中有5个元素,那么输出下标未0,1,2,3,4,得输出5次,才能输出完毕,刚好int i = 0;i <arrayC.length能执行5次
        //快捷建:循环次数.fori 如5.fori
        for (int i = 0;i <arrayC.length ; i++) {
            System.out.println(arrayC[i]);
        }
        //4..=======================求数组中得最大值得方法:和比武招亲得列子相同,第一个人是留在擂台上得,留在擂台上得人就是maxvule,
        // 参数得每一个人都要和台上得maxvule比较,如果比maxvule和厉害,那么maxvule这个头衔就是那个人得
        int maxvule=arrayC[0];
        for (int i = 1; i <arrayC.length ; i++) {
            if (arrayC[i]>maxvule){
                maxvule=arrayC[i];
            }
        }
        System.out.println("最大值是: "+maxvule);
        //5.=======================数组元素得反转,不能使用新数组,就只能使用唯一得数组
        //思路

        for (int i = 0; i < arrayC.length; i++) {
            System.out.println("反转前: "+arrayC[i]);
        }
       //反转代码:
        for (int minindex=0,maxindex =arrayC.length; minindex<maxindex ; minindex++,maxindex--) {
           int temp=arrayC[minindex];
            arrayC[minindex]=arrayC[maxindex];
            arrayC[maxindex]=temp;
        }
      //6.调用带数组参数得方法
    int [] arraytests={10,20,21,22,23,23};
    utarray(arraytests);//传递得是数组得地址
  //7.调用返回值是数组得方法
  int [] result=js(arraytests);
  System.out.println("合计"+result[0]+"平均值"+result[1]);

      
   }
 //6.=======================定义参数是数组得方法,传递进来得参数是一个地址值
        public static void outarray (int [] array ){
            System.out.println("接收到得参数是 "+ array);
            for (int i = 0;i<array.length; i++) {
                System.out.println(array[i]);
            }
        }

//7.=======================定义一个方法得返回值是数组得方法
public static int [] js (int [] array ){
    int sum=0;

  for (int i = 0; i < array.length; i++) {
      sum+=array[i];
  }
  int avg=sum/array.length;
    int [] result={sum,avg};
  return result;
}

}

 

 

 3.数组中得常见异常

package day7.demo1;


public class Demo1Array {

    public static void main(String[] args) {
   
    //3.静态初始化省略格式,不能拆分俩个部分写
    int [] arrayC={11,22,33,44,55};

        //========常见异常=====================================
        //数组常见问题:
        System.out.println(arrayC[8]);//ArrayIndexOutOfBoundsException数组索引越界异常

        int [] arraynull=null;
        System.out.println(arraynull[0]);//NullPointerException空指针异常ma
        }



}

 

posted @ 2021-05-25 23:13  程序杨%  阅读(810)  评论(0编辑  收藏  举报