zoukankan      html  css  js  c++  java
  • java中数组的内容

                  今天了解了一下java中数组的内容。

                  数组是用于存储一组有序数据的集合,可以通过数组来保存任何相同数据类型的数据,而数组本身属于引用类型。

                   以一维数组为例,数组的声明写成 数据类型[]  数组名。通过这条语句仅仅声明了一个数组变量,并没有创建一个真正的数组,也无法确定数组的长度,这时候数组还不能被访问。在声明了数组之后,就要具体规定数组的大小,给数组分配内存空间,可以通过new操作符来显示创建一个数组,在定义并用运算符new为数组分配空间后,才可以引用数组中的每个元素。当然数组的声明和数组的大小分配可以放到一起完成,即  type [] arr_name = new type[length];接下来就是对数组进行初始化,在java中,数组的初始化有两种,静态初始化和动态初始化。(而在java中,为了保证安全性,防止内存缺失,为已创建的数组提供了默认化初始机制,在创建成功一个数组后,将完成三个动作:1.创建一个数组对象  2.在内存中给数组分配存储空间  3.给数组的元素初始化一个相应的数据类型的默认值。)所谓静态初始化就是在定义数组的时候就对数组进行初始化,例:int k[]={1,3,5,7,9};动态初始化就是将数组的定义和空间分配与给数组元素赋值分开,例:char ch=new char[3];ch[0]=a;ch[1]=b;ch[2]=c;。

                 下面讲一下数组的内存空间和内存分配。先介绍java在内存分配时会涉及到的区域:寄存器,栈(存放基本类型和对象的引用,但对象本身不存放在栈中,而是存放在堆中),堆(存放用new产生的数据)。

                 首先介绍简单数据类型数组从定义到初始化的内存变化过程。在声明数组的时候,系统会给这个数组分配用于存放这个数组的内存空间,它会在堆内存空间中给数组分配一个空间用于存放数组引用变量,在栈内分配空间存入数组对象的引用;在创建简单数据类型的数组的时候,系统会分配合适的堆空间用来存放该种数据类型数据的内存空间,并且将这个数组的各个元素赋一个和数组类型匹配的初值;当对数组进行初始化时,会将值赋给对应的各个数组元素。

    如图:

             

                         引用数据类型数组从定义到初始化内存变化的过程。引用类型数组的定义和简单数据类型数组的定义基本相同;创建的时候也是首先给数组元素分配内存空间,然后赋给这些数组元素一个默认的初始值null;在进行初始化的时候,因为数组本身也是引用类型,而现在的数组元素也是引用类型,所以数组元素所引用的对象也要分配内存空间。

    如图:

  • 相关阅读:
    微软解决方案框架MSF4.0的预发布版本支持敏捷过程了
    Jackson 框架,轻易转换JSON
    [ lucene扩展 ] Spelling Checker using Lucene
    [ solr扩展 ] Solr Spellchecker internals (now with tests!)
    [ lucene扩展 ] An Introduction to Apache Lucene for FullText Search
    linux中 jdk 的卸载和安装[转]
    hadoop入门之单机版环境搭建[转]
    Redhat上两台服务器建立SSH信任关系[转]
    MYSQL常用命令[转]
    linux下vi命令大全
  • 原文地址:https://www.cnblogs.com/Wangjiaq/p/8541806.html
Copyright © 2011-2022 走看看