数组

数组:是一组相关变量的集合

数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组
数据的有点
不使用数组定义100个整形变量:int i1;int i2;int i3
使用数组定义 int i[100];
数组定义:int i[100];只是一个伪代码,只是表示含义的
一维数组

一维数组可以存放上千万个数据,并且这些数据的类型是完全相同的,
使用java数组,必须经过两个步骤,声明数组和分配内存给该数组,
声明形式一
声明一维数组:数据类型 数组名[]=null;
非配内存给数组:数组名=new 数据类型[长度];
声明形式二
声明一维数组:数据类型 [] 数组名=null;

java数据类型分为两大类
基本数据类型
int、long操作的时候本身就是具体的内容
引用数据类型:数组、类、接口

引用传递的就是一个内存的使用权,一块内存空间,可能有多个人同时使用

事例声明数组

package com.qn.array;

public class Test {
    public static void main(String[] args) {
  int score[]=null;//声明数组
  score=new int[3];//开辟空间,大小为3
 }
}


数组的声明格式里,数据类型是数组元素的数据类型,常见的有整形、浮点型、与字符型等
数组名是用来统一这组相同数据类型元素的名称,其命名规则和变量的相同
数组声明后实际上是在栈内存中保存了此数组的名称,结下了是要在堆内存中配置数组所需要的内存,齐产固定是告诉编译器,所声明的数组要存放多少个元素,而new 则是命令编译器根据括号里的长度

 

基本数据类型偶读有其默认值:int 0;只要是引用数据类型默认值就是null

事例

package com.qn.array;

public class Test {
    public static void main(String[] args) {
  int score[]=null;//声明数组
  score=new int[3];//开辟空间,大小为3
  System.out.print("score[0]="+score[0]);
  System.out.print("\tscore[1]="+score[1]);
  System.out.print("\tscore[2]="+score[2]);
 }
}


堆栈内存的解释
数组操作中,在栈内存中保存的永远是数组的名称,只开辟了栈内的空间,数组是永远无法使用的,必须有指向的对内存才可以使用,要想开辟新对内存空间必须使用new关键字,之后就是将对内存的使用权交给对应的栈内存,而且一个堆内存空间可以同时被多个栈内存空间指向,比如一个人可以有多个名字,人就相当于对内存,名字就相当于栈内存

声明数组的同时分配内存空间
声明数组的同时非配内存
数据类型 数组名[]=new 数据类型[个数]
int score[]=new int[10];
声明一个元素个数为10的整形数组score,同时开辟依靠内存空间工期使用
java中,由于整形数据类型占用的空间为4个byte,而整个数组score可保存的元素有10个。所以上例中占用的内存共有4*10=40个字节


 数组的访问

数组中元素的表示方法
想要访问数组里的元素可以利用索引来完成,java的数组索引标号由10开始,以一个score[10]的整形数组为例,score[0]代表第一个元素
一直向下,最后一个为score[9]



取得数组的长度
在java中取得数组的长度(也就是数组元素的长度)可以利用数组名称.length完成,
数组名称.length--返回一个int类型的数据

package com.qn.array;

public class Test {
    public static void main(String[] args) {
  int score[]=null;//声明数组
  score=new int[3];//开辟空间,大小为3
  System.out.println(score.length);
 }
}

结果


数组的静态初始化
之前的数组,所采用的都是动态初始化,所有的内容在数组声明的时候并不具体的指定,而是以默认值的形式出现
静态初始化是指在数组声明后直接为数组指定具体的内容
如果想要直接在声明的时候给数组赋初始值,可以采用大括号完成,只要在数组的生命格式后面加上初值的赋值即可,
数据类型 数组名 []={初始值0,初始值1,初始值3,....初始值n};

package com.qn.array;

public class Test {
    public static void main(String[] args) {
  int score[]={1,2,3,4,5,6};//使用静态初始化声明数组
  System.out.println(score.length);
 }
}

结果

6

posted @ 2017-06-04 00:05  从头做起  阅读(135)  评论(0编辑  收藏  举报