zoukankan      html  css  js  c++  java
  • java数组小结

    ---恢复内容开始---

    1、概述

      由于java是典型的静态语言,因而java中的数组也是静态的;java数组变量是引用类型的变量,(ps:java中的引用有些许像c++和c中的指针)当我们使用java数组的时候,主要有2部分操作;分别是定义引用变量(相当于c++/c中的定义一个指针(指NULL))和实例化数组对象。

      在java内存分配机制中,定义局部变量和引用变量是在相应的方法栈内存中申请一块空间;而引用变量所指向的对象(类对象、数组对象)是在堆内存中申请了内存;栈内存容易访问(直接访问),堆内存不易访问(需要借助引用变量来访问堆内存)。

    2、数组初始化

      java数组的初始化分为2种;分别是静态初始化和动态初始化。

      静态初始化:

      在定义数组的时候同时对数组对象进行初始化操作;但是不可以对数组长度进行赋值

      例:int []a=new int[]{1,2,3,4};

        String []b=new String[]{"Kylin","shanshan"};

      动态初始化:

      定义数组的时候只对数组长度进行了赋值,并没有对具体的数组对象进行初始化(由系统默认初始化)

      例如:int []c=new int[4];

         String []d=new String[3];

      对于c数组的实例化对象的值,分别是c[0]==0  c[1]==0  c[2]==0  c[3]==0 

      d数组对象的值分别是 null  null  null;

      为什么会这样呢? 这是由于java有一套默认的初始化机制,下面介绍一下java为数组元素分配的初始值:

      整型类型(byte,short,int,double)默认初始值是0

      浮点类型(double,float)默认初始值0.0

      布尔类型(boolean)默认初始值false

      引用类型(数组、类、接口、String)默认初始值为null

      字符类型(char)默认初始值'u0000'

    3、二维数组(多维)

      初始化多为数组的时候可以先只初始化最左边维度,java允许讲多维数组当成是一维数组来处理,废话不多说,上例子。

         int [][]a=new int[3][];
            //java中二维数组的数组名代表一维数组的首地址(和c++/c一样)
            System.out.println(a.length);
            for(int i=0;i<a.length;i++)
            {
                //让一维数组的元素再指向新的一维数组;就形成了二维(多维)数组;这里可以指向很多长度不同的新数组
                a[i]=new int[4];  
            }
            for(int i=0;i<4;i++)
            {
                System.out.print(a[0][i]+" ");
            }

      运行结果如下:

      

       

        

    ---恢复内容结束---

  • 相关阅读:
    【转】HEIF图片存储格式探秘
    【转】Maven项目中将配置文件打包到jar包中
    C++ 单词接龙
    vector vector int 初始化
    哈夫曼树的特点
    哈夫曼树的构造
    单链表的逆转(测试数据)
    单链表的逆转
    二叉搜索树的插入
    二叉搜索数的应用
  • 原文地址:https://www.cnblogs.com/shan-kylin/p/7710069.html
Copyright © 2011-2022 走看看