博文说明
本文章是本人在bilibili视频的学习笔记,视频地址清华大学java语言49讲(郑莉教授)
数组
- 数组的声明
- 数组的创建
- 数组元素的初始化
- 数组的引用
- 多维数组
java数组的声明和创建是两回事 !!!
声明:
声明干了两件事,1是定义了数组元素的所属类型(基本数据类型/对象所属类的类型),2给数组起了个名字。但这个时候并没有数组的实体(未为数组开辟内存空间)。
就像一个孩子还没出生,家里人就猜他是男孩,并给他提前取好名字,但孩子还未真正诞生
元素类型 [] 数组名
int [] a; //中括号[]表示数组
创建:
【格式】用new操作符来创建一个object
格式1
元素类型[ ] 数组名 = new 元素类型 [数组长度];Shape [ ] s=new Shape[9] //对象数组
int [ ] a = new int[10] //基本数据类型数组
格式2
元素类型[ ] 数组名 = new 元素类型[]{元素,元素,……};
int[] arr = new int[]{3,5,1,7};
可以在一条声明语句中创建多个数组
String[] s1 =new String[3],s2=new String[8]
数组元素的初始化
创建数组时,如果没有指定初始值,数组便被赋予默认值初始值- 基本数据类型数值数据,默认初始值为0
- boolean类型数据,默认值为false
- 引用类型元素的默认值为null
c需要可用1/0表示真假,java只能用true/false
java数组是安全的,如果数组越界,jvm会停止程序,抛出属于越界异常。而c会造成错误结果(莫名其妙的结果)
myArray[]=new int[10];
myArray[10]=100;//将产生数组越界异常,最多下标9
c语言用字符数据表示和存放字符串,没有string类型(因语法没有,不得已而为之)
多维数组
几维数组就是多少行
int [ ] [ ] uneven=
{ {1,9,,4},
{0,2},
{0,1,2,3,4},
}
System.out.println("Lengthis :"+uneven.Length) //3
Java中数组是一个对象(object)
C语言数组是基本数据类型,结构体的组合,一系列相同对象组成的集合体
从逻辑上和一样c一样,从物理实现上,是一个对象
!每个数组都有一个由 public final修饰的成员变量:length,即数组含有元素个数
(数组名是一个引用变量,左右实际上和指针一样)(reference)