方法重载、数组、栈堆内存的一些个人心得

方法重载:

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


猜你喜欢

转载自blog.csdn.net/deekuu/article/details/80458985