1.对象与对象引用
对象:是类的实例,具有自己的属性、方法等。
对象引用:相当于C++中的指针,其指向堆内存中的对象实例。
一个对象至少占据16个字节,其中包含12字节的对象头信息,还有实例数据与对其填充字节;一个对象引用变量占据4个字节。
实例:Object ob = new Object();
new Object():将对象分配在堆heap上,创建了对象
Object ob:声明了对象引用ob,ob为局部变量分配在栈stack上
ob= new Object():赋值操作将新创建的Object对象的首地址赋给对象引用ob,使ob指向实际对象,可以通过ob操纵该对象
2.对象作为参数传递的特点
当对象作为参数传递时,实际上传递的是一份“引用的拷贝”。
例一:
public class test {
public static void main(String[] args) {
int i = 1;
System.out.println("before change, i = "+i);
change(i);
System.out.println("after change, i = "+i);
}
public static void change(int i){
i = 5;
}
}
前:i=1
后:i=1
例二:
public class test {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("Hello ");
System.out.println("before change, sb is "+sb.toString());
change(sb);
System.out.println("after change, sb is "+sb.