数组Array
1.数组的初始化:静态初始化,动态初始化;
a) 静态初始化
初始化时由程序员显示指定每个数组元素的值由系统决定数组长度。
b) 动态初始化
初始化时程序员只指定数组长度,由系统为数组元素分配初始值。
系统初始化值:
类型 值
(byte、short、int、long) 0
(float、double) 0.0
(char) `\u0000`
(boolean) false
(引用类型(类、接口、数组)) null
2.数组的底层存储机制
数组是一种引用数据类型,数组引用变量只是一个引用,数组元素和数组变量在内存中是分开存放的。
3.几种equals的区别
值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。 equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
==比较的是2个对象的地址,而equals比较的是2个对象的内容。显然,当equals为true时,==不一定为true。
Arrays.equals(a,b)则是比较a,b中的元素个数与值是否相同
字符类型:java采用unicode编码
逃逸字符:/n /r /c /t
类型如图:
Tip:String是一个类,不是基本数据类型。String 无法使用foreach循环。(foreach值适合能够枚举的量)