| 个人理解只有一句话,在参数传递的过程中,基本类型变量是值传递,引用型变量时地址传递(类似于c++中的指针,不过java中没有指针这个说法) 
 下面具体说下,声明变量,定义变量是的内存分配问题
 
 在java中基本类型变量声明是,系统直接为该变量分配内存空间(c++中不是这样,c++中只用在定义的时候才会分配内存空间,声明的时候不会分配),因此内存中可以直接操作。
 
 引用型变量声明时,只为该变量分配引用空间,数据空间尚未分配,因此引用类型不可直接使用
 
 如:
 
 mydate today;
 mydate.today=14;
 上面这句话明显是错误的。
 
 正确的是:
 
 mydate today;
 today=new mydate()
 其实,第一条语句的执行将给today变量分配一个保存引用的空间  today  null
 
 第二句话将分两步进行,第一步执行new mydate(),给today变量开辟数据空间,第二部为today中的成员变量赋值,默认初始化为0。
 
 
 
 引用变量间的赋值,就行当于指针间的赋值,改变一个对另外一个有影响(传址)。
 |