面试题:a==1 a==2 a==3 是 true 还是 false?
最近无意间看到一个有趣的帖子:
var a = ???;
if(a == 1 && a == 12){ console.log(a);
}
这是一个JS社区抛出来的问题。第一眼看到这个问题的时候,感觉这似乎是一个无稽之谈,一个变量怎么可能会同时满足俩个条件呢!
不过后来深入思考一下,发现这类问题有点意思…
如果你也觉得不可能的话,一起随着文章看下去。你也会觉得有点意思~
下文不仅仅涉及的是JS,还有Java等等其他语言~
正文
接下来咱们来尝试解决这个问题。假设 if(a1&&a12)是等于 true的,那么a肯定不可能是一个“普通的变量”。它势必要有能力在执行的时候能够动态改动值。
一、JS版本
如果出于这种出发点,我们是不是能够假设:如果能够重新类似a方法的执行方法似乎就能够做到这种结果。
接下来这里贴一种答案:
看到这个答案,我猜搞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,也算是咱们解题思路的上最直接的帮手…
尾声
写这篇文章其实并不是为了去深挖这些语言特性,只是单纯的觉得很有意思。
如果从这个题目本身出发,它既可以考察解题者的语言特性掌握程度;也可以考察出解题者对待问题,尝试解决问题的方法论。学习这条路上,任重而道远。
来源:https://www.toutiao.com/i6805578326279717390
面试题:a==1 a==2 a==3 是 true 还是 false?相关推荐
- java 关键字(面试题)
学而时习之,温故而知新. 今天群里有人问java中true ,false 是关键字吗, 这里记录下,不是关键字,我还特意翻看之前的书看看 下面是 Java 语言保留使用的 50 个关键字: 关键字 g ...
- dom vue 加载完 执行_前端面试题——Vue
前言 前几天整理了一些 html + css + JavaScript 常见的面试题(https://segmentfault.com/u/youdangde_5c8b208a23f95/articl ...
- iOS基础问答面试题连载-附答案
2017-02-02 timhbw CocoaChina 以下是一些自己收集的比较基础的问题(大神可以忽略),附上答案,方便大家阅读.俗话说得好,基础不牢,地动山摇.文章末尾会提供PDF版的文档,方便 ...
- java面试题2019 答案
Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别(String 类型和 StringBuffer 类型的主要性能区别其实在于 Stri ...
- 最新Java面试题答案
JAVA基础 JAVA中的几种基本类型,各占用多少字节? 下图单位是bit,非字节 1B=8bit String能被继承吗?为什么? 不可以,因为String类有final修饰符,而final修饰的类 ...
- Java面试题大汇总,2021年附答案解析
最新常Java面试题大汇总(含答案解析)发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全汇总,希望对大家有帮助哈 本套Java面试题大全,全的不能再全,哈哈~ ...
- 基础面试题 — 数据结构与算法
数据结构 数据结构是对实际问题中的数据元素及相互间的联系的抽象.一般用线性表来表示常用数据结构,线性表分为顺序存储的顺序表和连式存储的链表. 常用数据结构 在学习算法之前,必须要了解一些常用数据结构的 ...
- python期末考试试题
python期末考试试题汇总 学习 2020-4-105589阅读 · 98喜欢 · 11评论 想个昵称憋一天 粉丝:370文章:31 关注 6.for i in range(2,n): if n%i ...
- Java 最常见的 100+ 面试题和答案:面试必备
发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 博主已将以下这些面试题整理成了一个Java面试手册,是PDF版的. 需要pdf版的可以 ...
- 程序员必看 c++笔试题汇总
①链表反转 单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题.比如一个链表是这样的: 1->2->3->4->5 通过反转后成为5->4->3-& ...
最新文章
- Synchronize使用
- 开发人员如何成为架构师
- 浅析ThreadLocal
- sql2005 安装完成后只有配置工具,没有管理工具和性能分析工具
- OpenCV3学习(11.6) ORB特征检测器及BRIEF描述符
- linux tail 查找字符串,linux 查找包含字符串的文件
- html转义字符及css清除
- 加密、解密、openssl的基本应用以及CA的实现过程
- 【转】Oracle 行列转换
- Hadoop 配置文件存放位置
- 想网站与目标站点同步更新?利用采集侠轻松实现
- python群控模拟安卓系统_安卓群控系统模拟器
- 现代控制工程(二)状态方程的解
- spss导入Excel显示连接服务器超时,Excel里的日期在spss里怎么不正常显示
- python excel 空值_Python/Excel/SPSS/SQL数据处理方法比较之4 - 空值处理
- 为什么单片机定时器的TH和TL都要设置?
- DateCalander
- DIY空气检测仪:攀藤G5ST分析仪
- NLP第四范式:Prompt概述【Pre-train,Prompt(提示),Predict】【刘鹏飞】
- 优化| 手把手教你学会杉树求解器(COPT)的安装、配置与测试