面试宝典第四章Java基础知识———4.5字符串和数组

时间:2023-01-07 15:57:14

4.5.5——Java中数组是不是对象
1.数组是指具有相同类型的数据的集合,它们一般具有固定的长度,并且在内存中占据连续的空间。在C/C++语言中,数组名只是一个指针,这个指针指向了数组的首元素,既没有属性也没有方法可以调用,而在java语言中,数组不仅有自己的属性(例如length属性),也有一些方法可以被调用(例如clone方法)。由于对象的特点是封装了一些数据,同时提供了一些属性和方法,从这个角度讲,数组是对象。每个数字类型都有其对应的类型,可以通过instanceof(关键字)来判断数据的类型。

4.5.6——数组的初始化方式有哪几种?
1.一维数组
1)一维数组有两种声明方式type arrayName[]或者 type[] arrayName(推荐使用第二种),其中,type既可以是基本的数据类型,也可以是类。
2)数字被创建后会根据数组存放的数据类型初始化成对应初始值
int[] arr 0
char[] ch 口(是一个这个形状的字符)
String[] st null
3)两种初始化方式
a.
int[] arr = new int [5];
int[] arr; arr = new int [5];
b.
int[] arr = new int [] {1,2,3,4,5};(这种方式可以缩写成int[] arr = {1,2,3,4,5};)
int[] arr; arr = new int [] {1,2,3,4,5};(注意声明和初始化分开,就不可以缩写了,就是不能int[] arr; arr ={1,2,3,4,5};
这里特别注意一下:{1,2,3,4,5}这种形式只能用于初始化中,后面的赋值一律要用new int[] {1,2,3,4,5}

2.二维数组
1)二维数组有三种声明方式type arrayName[][];type[][] arrayName和type[] arrayName[]。需要注意的是,在声明二维数组时,其中[]必须为空
2)同样的可以使用一维数组的两种声明方式
3)与C/C++语言不同的是,java语言中,二维数组的第二维长度可以不同,其定义方式如下
int[][] arr = {{1,3},(1,2,3)};
int[][] arr = new int [2][];arr[0] = new int[] {1,3};arr[1] = new int[] {1,2,3};