一、结论
1. 基本类型都是值传递
2. 引用类型都是引用传递(基本类型的包装类除外,如String、Integer、Double等,由于它们是immutable(不可变)类型,实际也为值传递)
二、扩展
1.基本类型
char、byte、short、int、long、double、float、boolean
2.引用类型
类Class
数组Array
接口 Interface
三、突然想到的问题
1. public void method(int num)和public void method(Integer num)是否可以重载?
答:可以, 重载的标准是方法参数个数不同或者对应的参数类型不同。虽然Integer是int的包装类,但Integer.class不等于int.class
public class InegerTest {
public static void main(String[] args){
System.out.println(Integer.class.equals(int.class));
}
}
//输出:false
2. public void method(Person person)和public void method(Woman woman)是否可以重载,Person是Woman的父类。
答:可以,道理同上
2. public void method(final Date date)和public void method(Date date)是否可以重载?
答:不可以,final仅使参数(引用变量)成为常量,但final不改变参数的类型。