我最近看到过一个比较好玩的面试题。

写个方法,入参两个Integer,无返回值,然后使这个两个值在调用函数后交换

很有意思的一个题目,引发我的深思,根据一路的学习过来,下面把实现代码贴出来,方便学习。

这里我们需要注意的是值传递,还是引用传递。

import java.lang.reflect.Field;

public class TestSwap {
public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
Integer a=1;
Integer b=2;
System.out.println("**********转换前**********");
System.out.println("a="+a);
System.out.println("b="+b); swapChangeAwithB(a,b);
System.out.println("**********转换后**********");
System.out.println("a="+a);
System.out.println("b="+b);
} //声明
// 以下是java.lang.Class.getDeclaredField()方法的声明
// public Field getDeclaredField(String name) throws NoSuchFieldException, SecurityException
// 参数
// name -- 这是字段的名字。
// 返回值
// 这个方法返回这个类中的指定域的域对象。 public static void swapChangeAwithB(Integer a ,Integer b ) throws NoSuchFieldException, IllegalAccessException {
//通过反射获取Integer对象中的私有域
//value这个值就对应的是Integer对象中的value属性
Field field = Integer.class.getDeclaredField("value");
field.setAccessible(true); int temp = a.intValue(); //调用set(obj,value)方法
//obj表示要修改的对象,value表示要给修改对象赋予的值
field.set(a,b);
field.set(b,new Integer(temp));
}
}

打印的结果 :

面试题----入参两个Integer,无返回值,然后使这个两个值在调用函数后交换的更多相关文章

  1. Pycharm调试:进入调用函数后返回

    在菜单栏的view中勾选toolbar,然后点击工具栏中左箭头返回到调用函数处.

  2. VS2012 Unit Test(Void, Action, Func) —— 对无返回值、使用Action或Func作为参数、多重载的方法进行单元测试

    [提示] 1. 阅读文本前希望您具备如下知识:了解单元测试,了解Dynamic,熟悉泛型(协变与逆变)和Lambda,熟悉.NET Framework提供的 Action与Func委托.2.如果您对单 ...

  3. 一道Integer面试题引发的对Integer的探究

    面试题: //在jdk1.5的环境下,有如下4条语句: Integer i01 = 59; int i02 = 59; Integer i03 =Integer.valueOf(59); Intege ...

  4. 对无返回值、使用Action或Func作为参数、多重载的方法进行单元测试

    VS2012 Unit Test(Void, Action, Func) —— 对无返回值.使用Action或Func作为参数.多重载的方法进行单元测试 [提示] 1. 阅读文本前希望您具备如下知识: ...

  5. 谷歌迂回入华:Waymo无人车抢先进驻上海!

    谷歌迂回入华:Waymo无人车抢先进驻上海! https://mp.weixin.qq.com/s/d5Cw2uhykMJ9urb6Cs8aNw 谷歌又双叒叕要回归中国了?这已经是第不知道多少次的传言 ...

  6. C#中的函数(一) 无参无返回值的函数

    分析下C#中的函数 先写一个小例子,一个静态函数,无返回值,无形参 在第17行与20行分别下断点 F5调试运行,此时中断在第17行MyFunction(), 在第17行右键反汇编,看下反汇编代码 这里 ...

  7. 慕课网-Java入门第一季-7-2 Java 中无参无返回值方法的使用

    来源:http://www.imooc.com/code/1578 如果方法不包含参数,且没有返回值,我们称为无参无返回值的方法. 方法的使用分两步: 第一步,定义方法 例如:下面代码定义了一个方法名 ...

  8. Android——关于Activity跳转的返回(无返回值和有返回值)——有返回值

    说明: 跳转页面,并将第一页的Edittext输入的数据通过按钮Button传到第二页用Edittext显示,点击第二页的 返回按钮Button返回第一页(改变第二页的Edittext的内容会传至第一 ...

  9. Java 中无参无返回值方法的使用

    如果方法不包含参数,且没有返回值,我们称为无参无返回值的方法. 方法的使用分两步: 第一步,定义方法 例如:下面代码定义了一个方法名为 show ,没有参数,且没有返回值的方法,执行的操作为输出 “ ...

随机推荐

  1. maven scope使用和理解

    在Maven的依赖管理中,经常会用到依赖的scope设置.这里整理下各种scope的使用场景和说明,以及在使用中的实践心得. scope的使用场景和说明 1.compile 编译范围,默认scope, ...

  2. CentOS 7.x 用shell增加、删除端口

    一.在/usr/local/sbin/下创建port文件,不要扩展名,并给权限  chom 777 port #!/bin/bash num=$# ok=0 if [ ${num} == 1 ]; t ...

  3. IE 下js里面new Date("2017-07-11 08:00:00") 出现NAN的问题以及解决方法

    在js里面用了这个方法   var  $date= new Date("2017-07-11 08:00:00") 可是打印的时候为 NAN.查了下  只有IE下有这个问题,然后我 ...

  4. Tomcat线程池的深入理解

    1.工作机制: Tomcat启动时如果没有请求过来,那么线程数(都是指线程池的)为0: 一旦有请求,Tomcat会初始化minSpareThreads设置的线程数: 2.线程池作用: Tomcat的线 ...

  5. sublime Text3基本配置记录+python

    环境:ubuntu 内容:基本配置+python开发实用插件 一. 激活 注册码 Michael Barnes Single User License EA7E- 8A353C41 872A0D5C ...

  6. Spark RDD、DataFrame原理及操作详解

    RDD是什么? RDD (resilientdistributed dataset),指的是一个只读的,可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用. RDD内部可以 ...

  7. 运行yarn的时候提示 node不是内部或外部命令

    背景:准备react native 搭建,装完nodejs  npm 重启cmd,再次管理员运行即可!

  8. Windows Server 2003下DHCP服务器的安装与简单配置图文教程

    在前面的内容中,我们提到了DHCP这个词,为什么要用到DHCP呢,企业里如果有100台计算机,那样,我们一台台的进行配置Ip,我想还是可以的,因为少嘛,如果成千上万台,那我们也去一台台的配置,我相信这 ...

  9. Zuul小技巧 /routes

    Zuul有一个非常实用的 /routes 端点,当Zuul没有按照我们的计划去转发请求! 访问 $ZUUL_URL/routes 即可查看当前Zuul的路由规则,从而在很多情况下能够帮助我们定位Zuu ...

  10. KMP,深入讲解next数组的求解(转载)

    前言 之前对kmp算法虽然了解它的原理,即求出P0···Pi的最大相同前后缀长度k:但是问题在于如何求出这个最大前后缀长度呢?我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破,后来翻看算法导 ...