方法重载:
1.在同一个类中
2.方法名相同
3.参数列表不同
4.与返回值类型无关
参数列表不同:
1.参数的个数不同
2.参数的类型不同
数组的格式:
数据类型数据名[]
数组的动态初始化:只定义数组的长度,数据的内容系统会自动默认初始值
数据类型数据名[]=new 数据类型[ 数组长度]
数组的静态初始化:只给出初始化的值,系统自动定义长度
如何获取数组中的元素:
数组名[索引]
索引其实就是每个元素的编号,从0开始,最大索引应该数组的长度-1
数组名.length可以获取数组的长度
注意:不能同时用动态初始化和静态初始化
如:int a[]=new int[5]{1,2,3,4,5}是错误的
接下来重点理解一下数组开辟空间的过程
java为了提高程序的效率,对数据进行不同的内存空间分配,总分为:栈,堆,方法区,本地方法区,寄存器。
鉴于目前掌握的知识程度,先讲解栈和堆
栈:存放所有的局部变量
堆:存放所有new出来的东西(暂且这么理解)
局部变量:方法中或者方法声明上的变量
栈内存地特点:
栈内存使用完毕后的数据会被jvm回收,被释放掉
相对的,堆内存的特点:
每一个new出来的东西都会有地址值
堆内存的每个变量都有默认值
堆内存使用完毕后不会立即回收,等垃圾回收器有空的时候回收
byte/short/int/long 0
boolean false
float double 0.0
char '\u0000'
注意几个点:
Int [][] a=new int [2][1]
System.out.println(a) 输出二维数组的地址值
System.out.println(a[1]) 输出第二个一维数组的地址值
System.out.println(a[1][0]) 输出第二个一维数组第一个元素的值(默认为0)
Int [][] a=new int [][]
System.out.println(a) 输出二维数组的地址值
System.out.println(a[1]) 由于没有元素,所以为null
System.out.println(a[1][0]) 由于没有元素,所以为null