zoukankan      html  css  js  c++  java
  • Java

    一、数组:

    1.对于数组的理解:数组是一组数据类型相同的数据的组合,将这些数据统一的管理起来。

    2.存储类型数组本身是一个引用类型,数组内存储的类型可以是基本类型也可以是引用类型。

    3.特点:

      ①数组本身是一个引用数据类型;

      ②数组是在堆内存中的一串连续的地址存在;

      ③数组在初始化时必须指定长度;

      ④堆内存的数组空间长度一旦确定就不能再次改变;

      ⑤栈内存的变量汇中存储的是数组的地址引用;

      ⑥数组内部存储的类型可以是基本的也可以是引用的。

    4.数组的声明:

    数组类型 [] 数组名字
    int [] x;
    char [] y;
    boolean [] z;
    String [] m;

    二、数组的初始化:

    1.静态初始化:在定义数组的同时就为数组元素分配空间并赋值。

    简化格式   数据类型  [] 数组名称 = {值,值,值.......} int [] array = {1, 2, 3 ,4  ,5};
    完整格式 数据类型  [] 数组名称 = new 数据类型[] {值,值,值......} int [] array = new int[] {1, 2, 3, 4, 5};
    public class ArrayDemo {
        public static void main(String args[]) {
            int data[] = {1, 2, 3, 4};
            for(int i = 0; i < data.length; i++) {
                System.out.println(data[i]);
            }
        }
    }

    2.动态初始化:数组定义与为数组分配空间和赋值的操作分开进行。

    简化格式      
    完整格式 数据类型  [] 数组名称 = new 数据类型[数据长度]  int [] array = new int[5];
    数组的动态初始化
    
    public class ArrayDemo {
        public static void main(String args[]) {
            int data[] = new int[3]; /*开辟了一个长度为3的数组*/
            data[0] = 1; // 第一个元素
            data[1] = 2; // 第二个元素
            data[2] = 3; // 第三个元素
            for(int x = 0; x < data.length; x++) {
                System.out.println(data[x]); //通过循环控制索引
            }
        }
    }
    
    采用分步的模式开辟数组空间
    public class ArrayDemo {
        public static void main(String args[]) {
            int data[] = null; 
            data = new int[3]; /*开辟了一个长度为3的数组*/
            data[0] = 10; // 第一个元素
            data[1] = 20; // 第二个元素
            data[2] = 30; // 第三个元素
            for(int x = 0; x < data.length; x++) {
                System.out.println(data[x]); //通过循环控制索引
            }
        }
    }

    注意:动态初始化无值并不是真的无值,它有默认值。

        整数类型默认值:0

        浮点类型默认值:0.0

        字符类型默认值:0 --- char   97 --- ‘a’   65 --- ‘A’    48 --- ‘0’

        布尔类型默认值:false

        引用类型默认值:null       

    三、数组的操作:

    1.当数组开辟空间后,就可以采用如下的方式进行操作:

      ①数组的访问通过索引完成,即:“ 数组名称[索引] ”,数组的索引从0开始,索引范围为[ 0 ~ 数组长度-1],若访问超过数组的索引范围,则会产生java.lang.ArrayIndexOutOfBoundsException的运行异常信息;

      ②当数组采用动态初始化开辟空间后,数组中的每一个元素都是该数组对应数据类型的默认数值;

      ③数组本身是一个有序的集合操作,所以对于数组的内容操作往往会采用循环的模式完成,如通过for循环、增强型for循环对数组进行操作;

      ④在Java中提供有一种动态取得数组长度的方式:数组名称.length;

      ⑤数组属于引用数据类型,所以在数组使用之前一定要开辟空间[实例化],如果使用了没有实例化的数组则会出现NullPointerException的异常信息

    2.数组的遍历:

    1.使用普通for循环遍历数组:
    
    public class ArrayDemo {
        public static void main(String args[]) {
            int data[] = {1, 2, 3, 4};
            for(int i = 0; i < data.length; i++) {
                System.out.println(data[i]);
            }
        }
    }
    2.使用增强型for循环遍历数组:
    
    public class ArrayDemo {
        public static void main(String args[]) {
            int data[] = {1, 2, 3, 4};
              for (int var :data){
                          System.out.println(var);
             }
        }
    }

    3.基本数据类型和引用数据类型在内存结构上的区别:

      ①所有的变量空间都存储在栈内存;

      ②变量空间可以存储的基本数据类型也可以存储引用数据类型;

      ③如果变量空间存储的是基本数据类型,存储的是值,一个变量的值改变,另一个不会跟着改变;

      ④如果变量空间存储的是引用数据类型,存储的是引用地址,一个变量地址对应的值改变,另一个也会跟着改变。

  • 相关阅读:
    在Centos 7下编译openwrt+njit-client
    开博随笔
    Chapter 6. Statements
    Chapter 4. Arrays and Pointers
    Chapter 3. Library Types
    Chapter 2.  Variables and Basic Types
    关于stm32不常用的中断,如何添加, 比如timer10 timer11等
    keil 报错 expected an identifier
    案例分析 串口的地不要接到电源上 会烧掉
    案例分析 CAN OPEN 调试记录 进度
  • 原文地址:https://www.cnblogs.com/yyanghang/p/10959370.html
Copyright © 2011-2022 走看看