首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java入门小结——参数传递

2013-11-21 
java入门总结——参数传递????? 在说参数传递之前,先说一下栈和堆。其实我对它们也不是很了解-_-|||,不过我们

java入门总结——参数传递

?

?

??? 在说参数传递之前,先说一下栈和堆。其实我对它们也不是很了解-_-|||,不过我们可以去问度娘,所以我这里简单说一下,栈相当于缓存,堆相当于内存。

?

Java中参数传递包括两种,一种是值传递,一种是引用传递。

?

先说值传递。

?

八种数据类型(byte short int long float double char Boolean)和 String 类储存于栈中,即在栈中直接开辟出相应数据类型大小的空间,存储下这个值。当一个值传给这个值时,就该为传入的值,例如:

?

int n;//定义整型n,此时n被默认为0

?

n = 10;//10传给n,在栈中被储存的数据n值被改变,此时为10

?

再如:

?

int n;

?

int m = 10;

?

n = m;//m中存储的数据传给n,n此时为10

?

从上面两个例子,我们发现参数传递就是传递原始参数的值。n和m之间互不干扰,这很容易理解,n是n,m是m,其中哪一个改变也不会影响另一个。

?

?

?

引用传递

?

Java中引用传递只适用于对象类型和数组。

?

实际上在实例化对象的时候,new关键字在堆中开辟了与该类对应的空间,而对象名在栈中,此时对象名储存的不是对象中的属性和方法,而是对象在堆中的地址。

?

假设我们已经通过同一个类创建好对象obj1 和obj2,:

?

obj1 = obj2;

?

这时,obj2 传给obj1 的就是obj2 所储存的地址,也就是说obj1 此时储存的是obj2 的地址,这时候通过obj1 来调用方法和属性,都是obj2 的方法和属性。这时候obj2 就相当于两个对象名,而obj1 对象此时没有地址指向它。

?

对于数组也是如此。

?

热点排行