1 if(a==1 && a==2 && a==3),为true,你敢信?-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

if(a==1 && a==2 && a==3),为true,你敢信?

Android编程精选 来源:Android编程精选 2023-05-08 11:01 次阅读

	
				

# 前言

最近无意间看到一个有趣的帖子:

var a = ???;
if(a == 1 && a == 12){  
  console.log(a);
}

这是一个JS社区抛出来的问题。第一眼看到这个问题的时候,感觉这似乎是一个无稽之谈,一个变量怎么可能会同时满足俩个条件呢!

不过后来深入思考一下,发现这类问题有点意思...

如果你也觉得不可能的话,一起随着文章看下去。你也会觉得有点意思~

下文不仅仅涉及的是JS,还有Java等等其他语言~

# 正文

接下来咱们来尝试解决这个问题。假设 if(a==1&&a==12)是等于 true的,那么a肯定不可能是一个“普通的变量”。它势必要有能力在执行的时候能够动态改动值。

# JS版本

如果出于这种出发点,我们是不是能够假设:如果能够重新类似a方法的执行方法似乎就能够做到这种结果。

接下来这里贴一种答案:

1cddf474-ed4c-11ed-90ce-dac502259ad0.png

看到这个答案,我猜搞Java或其他面向对象语言的同学有些“懵逼”。不过如果仔细看,仔细想其实也是可能从中看出一些解题思路的。

当然可能有JS的小伙伴想要求解答,这里碰巧写过解析,这里就贴出他的文章地址

看了JS的答案,我一直顺着这个解题思路再想:Java中有没有可能完成这个等式?只能说自己“功力太浅”始终没有找到合适的解决方式...因此自己就Google了一下,发现果然有“闲的蛋疼”的人提供了答案,甚至还提供了多种版本:

# Java版本

这里就直接贴答案了,虽然不能说非常的贴近于题目,但也着实展示了其中的巧妙:

Class cache = Integer.class.getDeclaredClasses()[0];
Field c = cache.getDeclaredField("cache");
c.setAccessible(true);
Integer[] array = (Integer[]) c.get(cache);
// array[129] is 1
array[130] = array[129]; 
// Set 2 to be 1
array[131] = array[129]; 
// Set 3 to be 1
Integer a = 1;
if(a == (Integer)1 && a == (Integer)2 && a == (Integer)3){ 
   System.out.println("Success");
}

另一个答案,说实话比较“牛逼”了:

这里用到了PowerMockRunner,也算是咱们解题思路的上最直接的帮手...

1cf8437e-ed4c-11ed-90ce-dac502259ad0.png

# 尾声

写这篇文章其实并不是为了去深挖这些语言特性,只是单纯的觉得很有意思。

如果从这个题目本身出发,它既可以考察解题者的语言特性掌握程度;也可以考察出解题者对待问题,尝试解决问题的方法论。学习这条路上,任重而道远...


	

-End-

最近有一些小伙伴,让我帮忙找一些面试题资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载

审核编辑 :李倩



声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2966

    浏览量

    104699
  • JS
    JS
    +关注

    关注

    0

    文章

    78

    浏览量

    18096

原文标题:if(a==1 && a==2 && a==3),为true,你敢信???

文章出处:【微信号:AndroidPush,微信公众号:Android编程精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    R&S SMC100A射频信号源的主要特点及应用分析

    此类仪器灵活且功能广泛,适合维修和维护实验室。 因小巧尺寸及轻量化设计,R&S®SMC100A 也非常适合现场应用或培训及教育环境。
    发表于 12-08 09:46 1481次阅读

    R&S FSL6台式信号分析仪的功能特点及应用范围

    R&S®FSL 是一款多功能而且经济实用的信号分析仪。R&S®FSL全系列标配28MHz的信号解调带宽,远高于其他同类产品。无论是频谱、噪声系数、ACL
    发表于 12-09 09:46 1277次阅读

    欧拉 Summit 2021 安全&可靠性&运维专场:主流备份技术探讨

    在openEuler Summit 2021 安全&可靠性&运维专场上,高冲对数据安全而生,统软件备份还原工具分享。
    的头像 发表于 11-10 17:42 1796次阅读
    欧拉 Summit 2021 安全&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;可靠性&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;运维专场:主流备份技术探讨

    单片机STC15双机通信&amp;异步串行通信&amp;Proteus

    【单片机】— {STC15}—{双机通信&amp;amp;异步串行通信&amp;amp;Proteus}例一 ●题目 ●原理图 ●Method  ●Method
    发表于 11-18 14:36 13次下载
    单片机STC15双机通信&<b class='flag-5'>amp</b>;异步串行通信&<b class='flag-5'>amp</b>;Proteus

    485&amp;&amp;Modbus协议

    1.RS4851)485通 --差分传输物理层: 通信引脚 A B使用双绞线通信。发送器: 逻辑1A&;gt;B AB之间电压
    发表于 11-23 17:36 3次下载
    485&<b class='flag-5'>amp</b>;&<b class='flag-5'>amp</b>;Modbus协议

    串口mpu6050 &amp;&amp; 透传模块(LC12S_V2)教程

    软硬件1.串口mpu6050 &amp;amp;&amp;amp; 串口模块 &amp;
    发表于 12-06 15:36 5次下载
    串口mpu6050 &<b class='flag-5'>amp</b>;&<b class='flag-5'>amp</b>; 透传模块(LC12S_V<b class='flag-5'>2</b>)教程

    存储类&amp;作用域&amp;生命周期&amp;链接属性

    、链接属性前言本篇文章将会为大家介绍一些变量相关的存储属性、作用域、生命周期以及链接属性的一些知识,有助于大家更好地理解程序,分析程序。一、存储类&amp;amp;作用域&amp;amp
    发表于 12-09 15:51 5次下载
    存储类&<b class='flag-5'>amp</b>;作用域&<b class='flag-5'>amp</b>;生命周期&<b class='flag-5'>amp</b>;链接属性

    OpenMV&amp;&amp;stm32通

    OpenMV&amp;&amp;stm32通目录:1.开篇之言2.简单介绍3.主要代码4.结篇
    发表于 12-24 19:00 3次下载
    OpenMV&<b class='flag-5'>amp</b>;&<b class='flag-5'>amp</b>;stm32通<b class='flag-5'>信</b>

    A2B车载音频总线-车机音频&amp;amp;amp;麦克风阵列测试

    基于美格系统的A2B车载音频总线-车机音频&amp;amp;麦克风阵列测试应用笔记
    发表于 09-19 11:04 3167次阅读
    <b class='flag-5'>A2</b>B车载音频总线-车机音频&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;麦克风阵列测试

    如何区分Java中的&amp;amp;和&amp;amp;&amp;amp;

    首先给i赋值0,如果i大于10,并且i++等于1,则输出“错误”和i的值。否则输出“正确”和i的值。分别用&amp;和&amp;&amp;
    的头像 发表于 02-24 10:46 1533次阅读
    如何区分Java中的&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;和&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;

    HarmonyOS &amp;amp;amp;amp;润和HiSpark 实战开发,“码”上评选活动,邀您来赛!!!

    出色的系统 助力优秀的设备 应用开发者带来丰富的体验与想象空间 正如当HarmonyOS遇见润和HiSpark 这万物互联的时代 将由你的&amp;lt; 代码 &amp;gt;来定义 润
    的头像 发表于 04-11 15:33 1164次阅读
    HarmonyOS &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;润和HiSpark 实战开发,“码”上评选活动,邀您来赛!!!

    使用shell脚本中的2&;gt;&amp;amp;1了吗?

    run_cmax > ./starrc_cmax.logs 2>&amp;1中的 2>&amp;1
    的头像 发表于 07-30 14:44 1904次阅读

    摄像机&amp;amp;amp;雷达对车辆驾驶的辅助

    摄像机&amp;amp;雷达担负着可辅助驾驶员安全驾驶的、高级驾驶辅助系统的传感功能。尼得科正在进一步推进摄像机&amp;amp;雷达的高性能化进程。
    的头像 发表于 11-26 10:02 900次阅读
    摄像机&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;雷达对车辆驾驶的辅助

    FS201资料(pcb &amp;amp; DEMO &amp;amp; 原理图)

    德赢Vwin官网 网站提供《FS201资料(pcb &amp; DEMO &amp; 原理图).zip》资料免费下载
    发表于 07-16 11:24 0次下载

    onsemi LV/MV MOSFET 产品介绍 &amp;amp;amp; 行业应用

    01直播介绍直播时间2024/10/281430直播内容1.onsemiLV/MVMOSFET产品优势&amp;市场地位。2.onsemiLV/MVMOSFETRoadmap。3
    的头像 发表于 10-13 08:06 380次阅读
    onsemi LV/MV MOSFET 产品介绍 &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; 行业应用