java入门总结——参数传递_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java入门总结——参数传递

java入门总结——参数传递

 2013/11/20 0:29:09  潇湘叶语  程序员俱乐部  我要评论(0)
  • 摘要:在说参数传递之前,先说一下栈和堆。其实我对它们也不是很了解-_-|||,不过我们可以去问度娘,所以我这里简单说一下,栈相当于缓存,堆相当于内存。Java中参数传递包括两种,一种是值传递,一种是引用传递。先说值传递。八种数据类型(byteshortintlongfloatdoublecharBoolean)和String类储存于栈中,即在栈中直接开辟出相应数据类型大小的空间,存储下这个值。当一个值传给这个值时,就该为传入的值,例如:intn;//定义整型n,此时n被默认为0n=10
  • 标签:总结 Java

?

?

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

?

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中存储的数据传给nn此时为10

?

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

?

?

?

引用传递

?

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

?

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

?

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

?

obj1 = obj2

?

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

?

对于数组也是如此。

?

发表评论
用户名: 匿名