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.基本数据类型和引用数据类型在内存结构上的区别:

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

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

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

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

  • 相关阅读:
    脏数据或者场景考虑不全面引发的生产问题
    框架那些事
    RMI远程方法调用和rpc远程过程调用
    如何提高开发效率
    什么是RPC
    TCP/IP协议和HTTP协议
    apache常见错误:VC运行库(找不到 VCRUNTIME140.dll)
    Apache报错:无法使用可靠的服务器域名
    Apache2.4 下载和安装
    Navicat Premium 15.0.17 破解激活(DFoX 注册机)
  • 原文地址:https://www.cnblogs.com/yyanghang/p/10959370.html
Copyright © 2011-2022 走看看