入门基础 Java参数传递方式

2016-02-19 12:45 4 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐入门基础 Java参数传递方式,赶紧看过来吧!

【 tulaoshi.com - 编程语言 】

       其实这个问题我原来翻译(破除Java神话之二:参数是传址的 )、转帖别人的具体解释(Java 应用程序中的按值传递语义 )和专门解释( 我对《Java 应用程序中的按值传递语义》的理解 )过,不过现在看来,原来翻译或者解释的角度是有问题的,从底层的角度解释并不直观,在交流的时候也轻易引起误解,最终不能达成一致意见。下面以最终的效果来解释参数的传递方式:

  1、对于原始数据类型,也就是int、 long、char之类的类型,是传值的,假如你在方法中修改了值,方法调用结束后,那个变量的值没用改变。
  2、对于对象类型,也就是Object的子类,假如你在方法中修改了它的成员的值,那个修改是生效的,方法调用结束后,它的成员是新的值,但是假如你把它指向一个其它的对象,方法调用结束后,原来对它的引用并没用指向新的对象。
  代码如下:
  public class Tester {
      public static void main(String[] args) {
          int primitive = 2;
          changePrimitive(primitive);
          //primitive的值依然是2
          MyClass myClass = new MyClass();
          changeObject(myClass);
          //myClass仍然指向的是执行changeObject之前的那个对象
          //但是myClass.i等于3了
      }

      public static void changePrimitive(int primitive) {
          primitive = 3;
      }

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

      public static void changeObject(MyClass myClass) {
          myClass.i = 3;
          myClass = new MyClass();
      }
  }

  class MyClass {
      int i;
  }

      对于远程调用,无论是什么类型,调用结束后,传入的参数和以前没用任何变化(当然前途是直接调用远程方法,假如中间经过其它的Proxy类或者Facade类,不能保证那些类对对象没用修改)。至于是通过Local接口进行调用的,也应该属于本地调用,和上面说的情况应该是一致的。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1601796.html

延伸阅读
前言 学习完了第一个java程序,之后就来系统的学习java。先从基础语法开始,这个语法你也可以理解为英语或是汉语里面的语法,只不过大家各有各的特点和区别。学习编程其实也是一个编程语言的学习过程。我们在学习英语的时候都说,要想学习好英语一定要动口说,那么在学习编程的时候你一定要动手写。编程无非就是一个写代码的过程,首要就是你...
  学JAVA时间短了,可总没有一点自己原创的东西,今天就以写IDE开发工具的使用技巧作为我原创的开始吧,希望大家能喜欢这篇文章,也希望鄙文能对广大初学JAVA的朋友有一点帮助!在使用JCRETOR过程中,自己摸索出了一点点使用技巧,在这里供广大和我一样的初学者参考! 技巧1: 建立空项目进行JAVA编程; 在进行编程的时候最好首先建立一...
Hibernate简介 Hibernate寓意:Let Java objects hibernate in the relational database. Hibernate 是Java应用和关系数据库之间的桥梁,负责Java对象和关系数据库之间的映射的ORM中间件。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Ja...
3.Java类型和本地类型对应 在如下情况下,需要在本地方法中应用java对象的引用,就会用到类型之间的转换: 1)java方法里面将参数传入本地方法; 2)在本地方法里面创建java对象; 3)在本地方法里面return结果给java程序。 分为如下两种情况: Java原始类型 像booleans、in...
Java 语言有着与C语言类似的教强的数据处理能力,即它的数据类型和不同类型上的运算定义得较为齐全,Java内部的数据类型可以分为四大类:整数、浮点数、字符、布尔型。其中整数和浮点数两大类根据长度和精度的不同,还可以进一步划分为byte、int、short、long、float、和double几个具体的类型。具体可参看下表: Java的基本...

经验教程

614

收藏

77
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部