最近一直在做毕业设计,这一块的学习又落下了,先把之前记录的一些东西发一下,估计又得重新回顾一遍了,真心是不能间断啊!

第五章 方法

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. 复制数组有三种方法:

  1. 使用循环语句逐个复制数组的元素
  2. 使用System类的静态方法arraycopy
  3. 使用clone方法

3. 将数组作为参数传给方法,传递的是数组的引用,所以,在方法中修改数组,方法外的数组也会发生变化

4. JVM将数组存储在一个叫堆的内存区域中,堆用于动态内存分配,在堆中,内存块可以按随意的顺序分配和释放

5. 可以把类型相同但个数可变的参数传给方法,需在方法声明中在指定类型后紧跟省略号(…),如下例:

  public static void f(double…numbers){……}

  java将可变长参数当成数组对待,可以将一个数组或可变个数的参数传递给该方法