Java基础语法之数组

数组的定义与初始化

数组的创建

大体上有如下三种创建方式:

int[]array1 = {1,2,3,4,5};
int[]array2 = new int[]{1,2,3,4,5};
int[]array3 = new int[5];

一般创建框架就是T[ ]=new T[ ];T是数组中元素的类型,T[ ]是数组类型

如果是double[],则对应new double。

注意 int array[]={1,2,3,4,5}也可以,但不推荐。

new->Java中的关键字

new是关键字,通过new来实例化对象,可以理解为数组是一个新类型,所以要用new,(其实String类也是)具体的会在类和对象中详细展开

初始化

1.动态初始化:在创建数组时直接指定元素个数

int[]array3 = new int[5];

此时数组中默认元素为5个0;

int,byte,short,long型,默认为0;float,默认为0.0f;double默认为0.0;char默认为/u0000(/u是转义字符,表示对应Unicode编码);boolean默认为false。

注意:这是不可以给数组填充指定元素,即int[]array3 = new int[5]{1,2,3,4,5};是错误的,编译无法通过。

2.静态初始化:在创建数组时,不直接指定元素个数,而是直接指定具体数据

int[]array3 = new int[]{1,2,3,4,5};
int[]array3 = {1,2,3,4,5};

编译器会根据{}中元素个数来确定数组长度

数组的使用

数组长度

数组名.lenth就是数组的长度。

数组的遍历

方法一:

for(i=0;i

方法二: 

for(int x:array){
    System.out.println(x);
}

  这是通过for-each遍历数组。是for循环的另外一种使用方式

 其中,int表示元素类型,array是数组名

方法三:

String ret= Arrays.toString(array);
 System.out.println(ret);

将数组转化为字符串

Arrays是一个类,其下有很多方法,其中toString就是将数组转化为字符串;

拓展:Arrays.sort(数组名)可以将数组从小到大排序

注意

数组坚决不可以越界访问,否则编译不通过,而不是简简单单的警告。

数组是引用类型

Java虚拟机运行时的数据区被分成了五份,其中有虚拟机栈和堆

int []arr=new int[]{1,2,3,4,5};

arr是main方法的一个局部变量,局部变量在栈上开辟空间,而关键字new一旦被使用,就会在对上开辟空间

所以上述代码是:new被使用后,在堆上开辟了存放五个整型的空间,这个空间有一个起始地址,这个地址就被存放到了栈上给arr开辟的空间中。

什么是引用类型变量

存放地址的变量就是引用类型的变量,也叫引用。(相当于指针,但不是指针)

也就是说,arr是一个局部变量,它的类型是引用类型,所以提示引用类型的局部变量。简称引用变量

Java基础语法之数组_第1张图片

这段代码的结果都是99,2,3,4,5

认识null

因为arr是局部变量,在Java中,局部变量必须初始化,所以当不知道给arr初始化为什么时,就用null

int []arr1=null;

这表示:arr不指向任何对象。

你可能感兴趣的:(算法,java,Java基础语法)