java Long传值问题_一道 Java 方法传值面试题——Java方法传值的值传递概念和效果 + Integer 缓存机制 + 反射修改 private final 域...

原题代码如下:

335b83df261c422459d4afc29ba290e5.png

d1b641f023dd079c9e4a800b96607d9d.gif

1 public voidtest1() {2 int a = 1, b = 2;3 System.out.println("before: a=" + a + ", b=" +b);4 swap1(a, b);5 System.out.println("after: a=" + a + ", b=" +b);6 }7

8 private void swap1(int i1, inti2) {9 int tmp =i1;10 i1 =i2;11 i2 =tmp;12 }13

14 public voidtest2() {15 Integer a = 1, b = 2;16 System.out.println("before: a=" + a + ", b=" +b);17 swap2(a, b);18 System.out.println("after: a=" + a + ", b=" +b);19 }20

21

22 public void test3() throwsNoSuchFieldException, IllegalAccessException {23 Integer a = 1, b = 2;24 System.out.println("before: a=" + a + ", b=" +b);25 swap3(a, b);26 System.out.println("after: a=" + a + ", b=" +b);27 }28

29

30 private voidswap2(Integer i1, Integer i2) {31 Integer tmp =i1;32 i1 =i2;33 i2 =tmp;34 }35

36 private void swap3(Integer i1, Integer i2) throwsNoSuchFieldException, IllegalAccessException {37 Field f = Integer.class.getDeclaredField("value");38 f.setAccessible(true);39 int tmp =i1.intValue();40 f.set(i1, i2.intValue());41 f.set(i2, tmp);42 }

题目

上述代码中,test1、test2、test3 方法运行后 a、b 前后的值分别是多少???

思考一下......黄金100秒......

......

......

......

答案放在本篇末尾,需要你稍稍滚动一下页面,并且希望是有思

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值