语言的艺术 卡耐基【JAVA语言中的参数传递探究】

来源:求职职场 发布时间:2019-03-12 05:36:17 点击:

  摘要:在程序设计中,C语言或者C++语言的一些参数传值或者地址都十分明确,但是在JAVA中还存在着一些争论,甚至有所谓的结论认为:在JAVA里参数传递是按值传递。这种观点显然会误导别人。本文就通过实现分析,阐述JAVA语言中的参数传递。
  关键词:JAVA;参数传递
  
  一、按值传递
  所谓的按值传递是指在调用方法时,是根据值的拷贝进行参数传递,其最显著的特点也是其所传递的参数是值的拷贝,传递后即互不相干,可以通过以下示例说明:
  public class TempTest{
  private void test1(int a){
  a=5;
  System.out.println("test1方法中的a==="+a);
  }
  public static void main(String[]args){
  TempTest t=new TempTes(t);
  int a=3;
  t.test1(a);//
  在进行传递后,test1方法中所改变的变量值不会对此处的a产生影响。
  System.out.println("main方法中的a==="+a);
  }
  }
  运行结果是:
  test1方法中的a===5
  main方法中的a===3
  二、按引用传递
  所谓的按引用传递是指方法调用的过程中,按照引用实现参数的传递,其所传递的参数内容是引用地址,即变量对的内存空间地址。按引用传递也着显著的特点,它所传递的内容是值的引用,无论传递前还是传递后均指向同个内存空间。可以通过以下示例加以说明:
  第1行public class TempTest{
  第2行private void test1(A a){
  第3行a.age=20;
  第4行System.out.println("test1方法中的age="+a.age);
  第5行}
  第6行public static void main(String[]args){
  第7行TempTest t=new TempTes(t);
  第8行A a=new A();
  第9行a.age=10;
  第10行t.test1(a);
  第11行System.out.println("main方法中的age="+a.age);
  第12行}
  第13行}
  第14行class A{
  第15行public int age=0;
  第16行}
  运行结果如下:
  test1方法中的age=20
  main方法中的age=20
  三、内存分配示意图
  要准确理解按引用传递的过程,就要清楚的知道内存分配的过程,可以通过以下示例进行说明:
  (1):运行开始,运行第8行,创建了一个A的实例,内存分配示意如下:
  main方法中的变量a
  (此处是一个A的实例,age=0)
  (2):运行第9行,是修改A实例里面的age的值,运行后内存分配示意如下:
  main方法中的变量a
  (此时age=10)
  3):运行第10行,是把main方法中的变量a所引用的内存空间地址,按引用传递给test1方法中的a变量。请注意:这两个a变量是完全不同的,不要被名称相同所蒙蔽。内存分配示意如下:
  main方法中的变量a
  (此时age=10)
  按引用传递赋值给test1方法中的变量a,因为是按引用传递,即所传递的内容是内存空间地址,因此在传递结束后,内存示意图就会形成一个新的形式:
  main方法中的变量a
  test1方法中的变量a
  (此时age=10)
  即两个变量均指向同一空间。
  (4):运行第3行,为test1方法中的变量a指向的A实例的age进行赋值,完成后形成的新的内存示意图如下:
  main方法中的变量a
  test1方法中的变量a
  (此时age=20)
  此时A实例的age值的变化是由test1方法引起的
  (5):运行第4行,根据此时的内存示意图,输出test1方法中的age=20
  (6):运行第11行,根据此时的内存示意图,输出main方法中的age=20
  四、利用ASP实现JAVA在网页中的参数传递
  通常JAVA要从其所在的超文本中获取参数,假如这些参数可预知或者不常改变,那么只需将对应的参数直接输出超文本中即可。但是如果这些参数是无法预知或者经常变化的动态参数,那么就要相应的更改超文本中的这些参数。我们可以利用ASP实现这一功能。我们可以通过以下案例加以说明:
  以单一的记录值为参数向JAVA传递,该例是把数据表中与条件相符的特定字段中一条记录值作为参数向JAVA传递,然后JAVA再将其内容按照逐字展开的形式在网页中显示:
  Java参数传给1
  
  
  
  
  日期:
  
  
  
  
  
  
  
  
  
  
  >
  
  
  
  
  总之,JAVA语言中的参数传递与C语言或者C++语言有所不同,在进行程序设计时需多加注意。
  参考文献:
  [1] 龚雄兴. C、C++、Java、C#中参数传递方式比较[J].福建电脑,2009(5)
  [2] 于国防,袁小平. 利用ASP实现JAVA动态参数的传递[J].计算机应用,2008(11)
  [3] 邵立兵. Java程序中动态参数的传递[J].微计算机应用,2007(3)
  [4] 张振蕊,翟霞. 浅析Java语言中接口的应用[J]. 科技创新导报, 2010,(20) .
  [5] 高荣芳. 如何处理Java程序中的错误[J]. 陕西广播电视大学学报, 2010,(02)

推荐访问:探究 传递 参数 语言
上一篇:高速公路沥青路面养护技术的探讨:高速公路沥青路面
下一篇:最后一页

Copyright @ 2013 - 2018 四八文档网-文档下载,办公室文档软件 All Rights Reserved

四八文档网-文档下载,办公室文档软件 版权所有 沪ICP备09019570号-4