入门基础 Java参数传递方式

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

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

【 tulaoshi.com - 编程语言 】

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

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

  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;
      }

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

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

  class MyClass {
      int i;
  }

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

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

延伸阅读
标签: Web开发
代码如下: ?xml version="1.0" encoding="UTF-8" ? !DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd" %@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"% %@ page import="java.net.*"% % String location = ""; String location...
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时间短了,可总没有一点自己原创的东西,今天就以写IDE开发工具的使用技巧作为我原创的开始吧,希望大家能喜欢这篇文章,也希望鄙文能对广大初学JAVA的朋友有一点帮助!在使用JCRETOR过程中,自己摸索出了一点点使用技巧,在这里供广大和我一样的初学者参考! 技巧1: 建立空项目进行JAVA编程; 在进行编程的时候最好首先建立一...
学习了一下JNI,发表文章的时候不知道该选什么好了,不知道JNI应该属于那个范畴^_^。 1.简介 JNI是Java Native Interface的缩写,它的设计目的是: The standard Java class library may not support the platform-dependent features needed by your application. You may already have a library or a...

经验教程

647

收藏

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