题: 定义两个 Integer 对象传递给一个方法, 方法执行后两个 Integer 的值需要互相转换

public static void practise(MyConsumer<Integer> consumer) {Integer value1 = 1;Integer value2 = 2;System.out.println("start: value1=" + value1 + ", value2=" + value2);consumer.accept(value1, value2);System.out.println("end: value1=" + value1 + ", value2=" + value2);
}
@FunctionalInterface
public interface MyConsumer<T> {void accept (T value1, T value2);
}

编程方式一: 传值与传引用的区别

practise((value1, value2) -> {Integer temp = value1;value1 = value2;value2 = temp;return;
});
输入结果:start: value1=1, value2=2end: value1=1, value2=2

编程方式二: Integer 在 -127 ~ 128 之间的缓存

practise((value1, value2) -> {try {Field declaredField = Integer.class.getDeclaredField("value");declaredField.setAccessible(true);Integer intValue = value1.intValue();declaredField.set(value1, value2);declaredField.set(value2, intValue);} catch (Exception e) {}return;
});
输出结果: start: value1=1, value2=2end: value1=2, value2=2

编程方式三: 清空缓存

practise((value1, value2) -> {try {Field declaredField = Integer.class.getDeclaredField("value");declaredField.setAccessible(true);Integer intValue = new Integer(value1.intValue());declaredField.set(value1, value2);declaredField.set(value2, intValue);} catch (Exception e) {}return;
});
输出结果: start: value1=1, value2=2end: value1=2, value2=1

java 面试题分析相关推荐

  1. 2 万多字,183 道 Java 面试题分析及答案

    周末了,花费不少时间和精力为大家整理了 50 道 Java 线程面试题分析及答案,希望大家能利用业余时间,好好的复习复习,顺利的渡过这个寒冬,以及每年春季的面试季! 下面是Java线程相关的热门面试题 ...

  2. 50道Java线程面试题分析及答案

    下面是Java线程相关的热门面试题,你可以用它来好好准备面试. 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编 ...

  3. 软考程序员 c java 二选一_往年软考程序员试题分析及备考建议

    程序员考试上午科目和下午科目的考试形式与考核内容已经趋于稳定,考生应紧扣考试大纲和指南,有针对性地进行学习.本文针对近几年程序员级别的考题,分别就上午科目和下午科目的考核范围.形式和特点进行分析,以供 ...

  4. java 线程面试题_50道Java线程面试题分析及答案

    下面是Java线程相关的热门面试题,你可以用它来好好准备面试. 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编 ...

  5. java面试题2019 答案

    Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别(String 类型和 StringBuffer 类型的主要性能区别其实在于 Stri ...

  6. Java类加载机制详解【java面试题】

    Java类加载机制详解[java面试题] (1)问题分析: Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数 ...

  7. Java面试题及答案整理(2022年140道)持续更新

    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~博主已将这些面试题整理到一个网站上,每天更新 Java 面试题,目前有 1万多道 Jav ...

  8. Java面试题及答案整理(2022最新版) 持续更新

    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~博主已将这些面试题整理到一个网站上,每天更新 Java 面试题,目前有 1万多道 Jav ...

  9. Java面试题及答案整理( 2022年最新版,持续更新)

    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全~ 这套互联网 Java 工程师面试题包括了:MyBatis.ZK.Dubbo.EL.Redis.MySQL. ...

最新文章

  1. 关于EF查询表里的部分字段
  2. 【BZOJ-3156】防御准备 DP + 斜率优化
  3. 代理类Proxy------ WeakHashMap----ReferenceQueue---- Reference
  4. 邓迎春绘画201702作品10
  5. string类比较大小_源码阅读String--JAVA成长之路
  6. 华为和荣耀蓝牙耳机为什么那么贵?
  7. java.lang.ClassNotFoundException: javax.servlet.SessionCookieConfig
  8. 基于C++的模板引擎
  9. 六、面向对象编程——类和对象
  10. 深入浅出MFC第二章笔记
  11. html宠物医院制作与实现,基于Web方式的宠物医院管理系统的实现 .doc
  12. 读书行动笔记2013第2本:《整理的艺术》
  13. gitbub上传代码
  14. alook浏览器哪个好 夸克浏览器_简单搜索、X浏览器、夸克浏览器、Via几款极简浏览器,到底哪个最好用?...
  15. 【小白米日志】树莓派3b+四位共阴数码管的连接和驱动
  16. android 禁止跟随系统字体,Android 应用全局字体调节或禁止随系统字体大小更改...
  17. LazyBrush论文笔记(4):问题建模-平滑项与数据项
  18. 正确的临摹方法,小白零基础临摹教程
  19. 将有朋自远方来,不亦乐乎
  20. 使用Arduino与L298N(红板) 驱动直流电机

热门文章

  1. echarts柱状图x轴 label一行超过设置的字数换行
  2. jQuery -- 目录
  3. [HTTP] HTTP是什么
  4. window系统对应默认IE浏览器版本
  5. Android--调用系统照相机拍照与摄像
  6. github.com/oschwald/maxminddb-golang 安装报错
  7. eclipse 完全智能提示
  8. Entity Framework5.0运行时错误ObjectStateManager 中已存在具有同一键的对象
  9. Java集合的线程安全用法
  10. oracle_面试题