史上最简单的一道面试题!坑人吧

ttzzyy      2022-02-10     457

关键词:

把下面a,b值互换,使打印结果为a=2,b=1.

import java.lang.reflect.Field;

/**
 * Created by 70416 on 2018/4/7.
 */
public class App {
    public static void swap(Integer i1,Integer i2) throws NoSuchFieldException, IllegalAccessException {
      .....
    }
    public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
        Integer a=1,b=2;
        System.out.println("开始a="+a+",b="+b);
        swap(a,b);
        System.out.println("结束a="+a+",b="+b);
    }
}

技术分享图片

Field field = Integer.class.getDeclaredField("value");
field.setAccessible(true);
int tmp = i1.intValue();    
field.set(i1,i2.intValue());
field.set(i2,tmp);

技术分享图片
技术分享图片

import java.lang.reflect.Field;

/**
 * Created by 70416 on 2018/4/7.
 */
public class App {
    public static void swap(Integer i1,Integer i2) throws NoSuchFieldException, IllegalAccessException {
        Field field = Integer.class.getDeclaredField("value");
        field.setAccessible(true);
        Integer tmp = new Integer(i1.intValue());
        // int tmp = i1.intValue();    //Integer -127----128里的值这个就不行,指针指向了缓存里的值。
        field.set(i1,i2.intValue());
        field.set(i2,tmp);

    }
    public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
        Integer a=1,b=2;
//        System.out.println(a==b); //Integer -127----128里的相同值,答案为true,超出缓存为false。
        System.out.println("开始a="+a+",b="+b);
        swap(a,b);
        System.out.println("结束a="+a+",b="+b);
    }
}

技术分享图片

金九银十,史上最强java面试题整理。

...,会从以下几个方面汇总,本文会长期更新。Java面试篇史上最全Java面试题,带全部答案史上最全69道Spring面试题和答案史上最全Java多线程面试题及答案史上最全50道Redis面试题及答案史上最全 55道MySQL面试题总结i++是线程安... 查看详情

java坑人面试题系列:包装类(中级难度)(代码片段)

...搞蒙。如果你看过往期的问题,就会发现每一个都不简单。这些试题模拟了认证考试中的一些难题。而“中级(intermedi 查看详情

java坑人面试题系列:变量声明(中级难度)(代码片段)

...搞蒙。如果你看过往期的问题,就会发现每一个都不简单。这些试题模拟了认证考试中的一些难题。而 查看详情

java坑人面试题系列:线程/线程池(高级难度)(代码片段)

...搞蒙。如果你看过往期的问题,就会发现每一个都不简单。这些试题 查看详情

java坑人面试题系列:比对while与for循环(中级难度)(代码片段)

...搞蒙。如果你看过往期的问题,就会发现每一个都不简单。这些试题模拟了认证考试中的一些难题。而“中级(intermedi 查看详情

一道前端面试题?求大神解答

...Sublime打出这几行代码时,我竟有点蒙蔽。蛤?这不是最简单的一个循环吗?是不是有陷阱啊,我思索一下,这好像和我看的那个闭包的题很像啊,这面试官是不是没写完啊?有毒啊。“应该是直接输出0到4吧...”,我弱弱的说到... 查看详情

一道简单的hashmap面试题所想到的...

前言看到一个JDK1.7和JDK1.8中关于HashMap的一个面试题:JDK1.7和1.8中HashMap中链表的插入的方式有什么不同?原以为自己对HashMap的源码理解的还算可以了,应该足够应付面试了。但是看到这个问题自己确实也是懵逼了一下。查了下资... 查看详情

从一道面试题掌握es6的综合运用(有彩蛋)(代码片段)

...;那就拿一道题试一试你的掌握情况吧,题目其实非常简单,如下所示。//有以下数据结构co 查看详情

史上最简单的springcloud教程|第十篇:高可用的服务注册中心

...f10-eureka/或者http://blog.csdn.net/forezp/article/details/81041101文章史上最简单的SpringCloud教程|第一篇:服务的注册与发现(Eureka)介绍了服务注册与发现,其中服务注册中心Eure 查看详情

史上最简单,js并获取手机型号

原先获取不了苹果系列的型号,但转换思路,先推断是否是苹果,再用分辨率获取型号//获取手机型号函数beginfunctiongetPhoneType(){ //正则,忽略大写和小写varpattern_phone=newRegExp("iphone","i");varpattern_android=newRegExp("... 查看详情

史上最简单的intellijidea教程

1简介  IntelliJIDEA(简称IDEA),是Java语言开发的集成环境,IDEA在业界被公认为最好的Java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(Git、SVN、GitHub等)、JUnit、CVS整合、代码分析和创新... 查看详情

springboot快速入门史上最简单

1.SpringBoot概述 SpringBoot是所有基于Spring开发的项目的起点。SpringBoot的设计是为了让你尽可能快的跑起来Spring应用程序并且尽可能减少你的配置文件。2.什么是SpringBootSpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来... 查看详情

[分享]史上最简单的封装教程,五分钟学会封装系统(以封装windows7为例)

[分享]史上最简单的封装教程,五分钟学会封装系统(以封装Windows7为例)踏雁寻花发表于2015-8-2323:31:28 https://www.itsk.com/thread-355923-1-4.html[分享]史上最简单的封装教程,五分钟学会封装系统(以封装Windows7为例)学会封装,只... 查看详情

解析js中作用域闭包——从一道经典的面试题开始

...解js中的作用域,闭包,私有变量,this对象概念呢?就从一道经典的面试题开始吧!题目:创建10个<a>标签,点击时候弹出相应的序号先思考一下,再打开看看//先思考一下你会怎么写,是不是这样?可是结果呢,弹出来的都... 查看详情

java的四种引用类型史上最详细,再也不怕面试官

Java四种引用类型1.引用的基本概念强引用:当我们使用new创建对象时,被创建的对象就是强引用,如Objectobject=newObject(),其中的object就是一个强引用了。如果一个对象具有强引用,JVM就不会去GC它,JVM宁可会报OOM来终止程序,也... 查看详情

史上最简单的github教程

文章目录1简介2目录3译文4我的项目1简介GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理... 查看详情

android史上最简单易懂的跨进程通讯(messenger)!

不需要AIDL也不需要复杂的ContentProvider,也不需要SharedPreferences或者共享存储文件!只需要简单易懂的Messenger,它也称为信使,通过它可以在不同进程中传递message对象,在message中放入我们需要传递的数据你就可以实现跨进程通讯... 查看详情

面试必备!mac版本一文打通git教程!史上最硬核解析!——双非上岸阿里巴巴系列(代码片段)

东北某不知名双非本科,四面成功上岸阿里巴巴,在这里把自己整理的面经分享出来,欢迎大家阅读。Git是目前最简单、最流行、最优秀的分布式版本控制工具,没有之一。也是面试时最易被广大同学忽略的知识... 查看详情