最近一直在做毕业设计,这一块的学习又落下了,先把之前记录的一些东西发一下,估计又得重新回顾一遍了,真心是不能间断啊!
第五章 方法
1. 带返回值的方法必须有return语句,且保证每一种情况都可以执行到return语句,否则会编译错误,例如下图,左图中编译器认为方法会有可能不返回任何值:
2. 每当调用一个方法时,系统都会将参数和局部变量存储在一个堆栈(一种内存区域,数据后进先出)中,当一个方法调用另外一个方法时,调用者的堆栈空间保持不动,新开一个空间供新方法使用。当一个方法结束返回到调用者时,其相应的空间也会被释放。
3. 参数是通过值传递完成,即:在传递时,将实参的值传给形参,在方法中,只改变形参的值,不改变实参的值。
4. 被重载的方法必须有不同的参数列表;而且不同的参数列表不能造成歧义,即不能出现同一组参数可以调用不同参数列表的方法,这样会产生编译错误。例如:f(1,2)可同时匹配f(double,int)以及f(int,double),那么着两个方法就会造成歧义
第四章 一维数组
1. list1 = list2;
这一个语句不是把list2的内容复制给list1,而是把list2的引用值复制给list1,使得list1指向list2所指向的数组。list2原先引用的数组不再被引用,将被java虚拟机回收。
2. 复制数组有三种方法:
- 使用循环语句逐个复制数组的元素
- 使用System类的静态方法arraycopy
- 使用clone方法
3. 将数组作为参数传给方法,传递的是数组的引用,所以,在方法中修改数组,方法外的数组也会发生变化
4. JVM将数组存储在一个叫堆的内存区域中,堆用于动态内存分配,在堆中,内存块可以按随意的顺序分配和释放
5. 可以把类型相同但个数可变的参数传给方法,需在方法声明中在指定类型后紧跟省略号(…),如下例:
public static void f(double…numbers){……}
java将可变长参数当成数组对待,可以将一个数组或可变个数的参数传递给该方法