题目

import java.util.Arrays;

/**
* @author kevin
* @date 2019/7/10 9:46
*/
public class Exam4 {
public static void main(String[] args) {
int i= 1;
String str = "hello";
int[] arr = {1,2,3,4,5};
MyData my = new MyData();
change(i,str,arr,my);
System.out.println("i=" +i );
System.out.println("str=" + str);
System.out.println("arr="+ Arrays.toString(arr));
System.out.println("my.a="+my.a);
}
public static void change(int i,String str,int[] arr,MyData my){
i +=1;
str += "world";
arr[0] += 1;
my.a +=1;
}
}
class MyData{
int a = 10;
}

运行结果

i=1
str=hello
num=2
arr=[2, 2, 3, 4, 5]
my.a=11

分析

首先,不要纠结于 Pass By Value 和 Pass By Reference 的字面上的意义,否则很容易陷入所谓的“一切传引用其实本质上是传值”这种并不能解决问题无意义论战中。

  • 对象类型永远传引用;
  • 基本类型传值。

下面画了一张图更利于解释

玩的开心!

04_javaSE面试题:方法的参数传递机制的更多相关文章

  1. JavaSE 面试题: 方法的参数传递机制

    JavaSE 面试题 方法的参数传递机制 import java.util.Arrays; public class Test { public static void main(String[] a ...

  2. Java高频经典面试题(第一季)四:方法的参数传递机制

    考点? 方法的参数传递机制 String,包装类等对象的不可变性 方法的参数传递机制: ①形参是基本数据类型 传递数据值 ②实参是引用数据类型 传递地址值 特殊的类型:String.包装类等对象不可变 ...

  3. 我的Java开发学习之旅------>Java语言中方法的参数传递机制

    实参:如果声明方法时包含来了形参声明,则调用方法时必须给这些形参指定参数值,调用方法时传给形参的参数值也被称为实参. Java的实参值是如何传入方法?这是由Java方法的参数传递机制来控制的,Java ...

  4. 深入理解Java中方法的参数传递机制

    形参和实参 我们知道,在Java中定义方法时,是可以定义参数的,比如: public static void main(String[] args){ } 这里的args就是一个字符串数组类型的参数. ...

  5. Java方法之参数传递机制

    目录 Java方法之参数传递机制 基本数据类型 引用数据类型 综合练习 总结 Java方法之参数传递机制 Java方法中如果声明了形参,在调用方法时就必须给这些形参指定参数值,实际传进去的这个值就叫做 ...

  6. java中方法的参数传递机制(值传递还是引用传递)

    看到一个java面试题: 问:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?  答:是值传递.Java 编程语言只有值传递参 ...

  7. java中方法的参数传递机制

    问:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?  答:是值传递.Java 编程语言只有值传递参数.当一个对象实例作为一个 ...

  8. 【Java基础】12、java中方法的参数传递机制

    问:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?  答:是值传递.Java 编程语言只有值传递参数.当一个对象实例作为一个 ...

  9. java中方法的参数传递机制_一个对象被当作参数传递到一个方法后

    一个例子: 在Boy.java类中 在Girl.java类中      在marry方法中的this指的是这个方法所属的对象的引用,在这里指的是girl这个对象 在BoyGirlTest.java测试 ...

随机推荐

  1. 搭建自己的企业级镜像仓库-Harbor

    网上资料很多,在这记录一下思路 1 安装Docker 2 安装Docker Compose apt-get install docker-compose3 下载最新版Harbor在线安装包,例如 ha ...

  2. SpringBoot集成swagger2.0

    最近项目里要用到SpringBoot + swagger,查了其他小伙伴们的资料,或多或少有点问题,在此我再梳理一遍. 1.maven依赖 <parent> <groupId> ...

  3. ES6-promise对象的使用

    Promise 的含义(摘自阮一峰ES6ru) Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大.它由社区最早提出和实现,ES6 将其写进了语言标准,统一 ...

  4. QGIS 3.4 3.6 另存栅格图层到GeoPackage出现覆盖问题 解决方案

    转载请声明:博客园 @秋意正寒 升级你的QGIS到3.8或以上 这在3.4.x和3.6.x都存在同样的问题.在老版本QGIS重,如果新建一个GeoPackage,先存入栅格数据就没有这个问题,但是如果 ...

  5. Android 非法字符:'/ufeff'

    [问题来源] 不知道大家有没有做过这样的事,在Android开发的过程中,通过文本直接修改代码,不打开编译器,然后提交让同时编译运行.这时Android编译就会报错,指定修改的文件开始位置,显示非法字 ...

  6. 从0系统学Android--4.1探究碎片

    从0系统学Android--4.1探究碎片 本系列文章目录:更多精品文章分类 本系列持续更新中.... 初级阶段内容参考<第一行代码> 第四章:手机平板要兼顾--探究碎片 平板电脑和手机最 ...

  7. 在linux环境下重启oracle数据库,解决密码过期的问题

    (1) 以oracle身份登录数据库,命令:su – oracle (2) 进入Sqlplus控制台,命令:sqlplus /nolog (3) 以系统管理员登录,命令:connect /as sys ...

  8. js知识点面试题

    网上看到的一个题,在这里存一下 此为题目function Foo() { getName = function () { alert (1); }; return this; } Foo.getNam ...

  9. Spring学习的第三天

    问题分析:在刚开始进行银行转账案例时,会获取四个连接,分别是查询接入.转出账户.更新转入.转出账户.这样会使转账不同步,如果某一处出现异常,前面的代码执行了,而后面的更新却没执行,导致一个账户加钱而另 ...

  10. Download Shuttle Pro mac文件下载器使用指南

    Download Shuttle Pro是适用于macOS的最强大的下载管理器和加速器.它将文件下载分为多个部分,与使用Web浏览器相比,可以提高整体下载速度.使用我们的Pro版本,您可以访问我们的新 ...