zoukankan      html  css  js  c++  java
  • 052_数组_数组基本概念

    一、数组的概念介绍
      数组:数组是相同类型数据的有序集合. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们.
    二、数组的四个基本特点:
      1.其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
      2.其元素必须是相同类型,不允许出现混合类型。
      3.数组中的元素可以是任何数据类型,包括基本类型和引用类型。
      4.数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。

    三、数组的创建和初始化  

      1.声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关。因此,声明数组时不能指定其长度(数组中元素的个数),例如: int a[5]; //非法
      2.声明一个数组的时候并没有数组被真正的创建。
      3.构造一个数组,必须指定长度。

      声明(一维数组的声明方式有两种)

        1.type[] arr_name;(推荐使用这中方式)
        2.type arr_name[];

      初始化

      1. 静态初始化
      除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。
        int[] a = {1,2,3};
        Man[] mans = {
        new Man(1,1),
        new Man(2,2)
        };
      2.动态初始化
      数组定义与为数组元素分配空间并赋值的操作分开进行。
        int[] a = new int[2];
        a[0]=1;
        a[1]=2;

    四、演示示例  

    package edu.aeon.test;
    
    /**
     * [说明]:测试一维数组的创建及初始化
     * 
     * @author aeon
     *
     */
    public class TestArray {
    
        public static void main(String[] args) {
            int[] s = null; // 1
            s = new int[10]; // 2
            for (int i = 0; i < 10; i++) {
                s[i] = 2 * i + 1;
                System.out.println(s[i]);
            } // 3
        }
    
    }

    结果截图:

      

    该示例在内存中的内存结构图为:

    blob.png
       

    blob.png

    blob.png

      创建引用类型一维数组示例:

      

    1
    2
    3
    4
    5
    6
    7
    8
    9
    class Man{
    private int age;
    private int id;
    public Man(int id,int age) {
        super();
    this.age = age;
    this.id = id;
    }
    }

    blob.png

    blob.png
       

    1
    2
    3
    4
    public class AppMain {
    public static void main(String[] args) {
    Man[] mans;   
    mans = new Man[10];  //1

    blob.png

    1
    2
    3
    4
    5
    6
    Man m1 = new Man(1,11);
    Man m2 = new Man(2,22);  //2
    mans[0]=m1;
    mans[1]=m2;  //3
    }
    }

    blob.png

    如有任何疑问可联系邮箱: 给我发邮件、或直接联系QQ:1584875179 || 点返回首页

  • 相关阅读:
    Anaconda+Tensorflow环境安装与配置
    计算机视觉(视频追踪检测分类、监控追踪)常用测试数据集
    迁移学习( Transfer Learning )
    matlab函数_连通区域
    GMM的EM算法实现
    对​O​p​e​n​C​V​直​方​图​的​数​据​结​构​C​v​H​i​s​t​o​g​r​a​m​的​理​解
    opencv基于混合高斯模型的图像分割
    LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
    视频测试序列(转)
    高职扩招,拿大专学历
  • 原文地址:https://www.cnblogs.com/aeon/p/9981257.html
Copyright © 2011-2022 走看看