在JAVA中,可以使用变量定义数组。
一维数组:
- 格式一:数据类型[] 数组名 = new 数据类型[5];
- 格式二:数据类型[] 数组名 = new 数据类型[]{1,1,2,3,4};
- 格式三:数据类型[] 数组名 = {1,1,2,3,4};
for-each循环:
- 特点:用于数组,但不可以通过下标索引
for(表达式1:表达式2){
}
Java内存分布:
-
栈:存放方法定义中或方法声明上定义的变量;数据使用完就消失
-
堆:存放new出来的东西,有默认值
- byte,short,int,long : 0
- float,double:0.0
- char:’\u0000’
- boolean false
- 引用类型:null
- 数据使用完后,在垃圾回收器空闲的时候回收 -
方法区:类信息 或静态变量
-
本地方法栈:native方法:底层由c/c++实现,特点:块
-
程序计数器:存放下一条要执行的指令的地址
-
运行时常量池:存放字面量与符号引用。(注意:JDK 1.7 开始,存放在堆上)。
二维数组: -
格式一:数据类型[][] 数组名 = new 数据类型[m][n]; //列固定
-
格式二:数据类型[][] 数组名 = new 数据类型[m][]; //列不固定
-
格式三:数据类型[][] 数组名 = new 数据类型[][]{{…},{…},{…}};
-
格式四:数据类型[][] 数组名 = {{…},{…},{…}};
数组长度:.length是属性
- 一维数组:数组名.length;
- 二维数组:数组名.length; 数组名[i].length
字符串长度:.length()是方法
String str = "mxhdoit";
int num = str.length();
**数组输出:**以字符串类型;相当于数组转字符串
Arrays.toString(array); //Array操作数组的工具类;要导入包
数组拷贝:
- for 循环
- System.arraycopy(array,0,brr,0,array.lenth);
- brr = Array.copyOf(array,array.length);
- brr = array.clone(); //array:拷贝的数组 -》
- 注意:
System.arraycopy()与Array.copyOf的区别?
arraycopy是一个被native修饰的方法;
Array.copyOf内部调用了arraycopy方法;
arraycopy速度更快;