0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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社區(qū)拋出來的問題。第一眼看到這個問題的時候,感覺這似乎是一個無稽之談,一個變量怎么可能會同時滿足倆個條件呢!

不過后來深入思考一下,發(fā)現(xiàn)這類問題有點意思...

如果你也覺得不可能的話,一起隨著文章看下去。你也會覺得有點意思~

下文不僅僅涉及的是JS,還有Java等等其他語言~

# 正文

接下來咱們來嘗試解決這個問題。假設(shè) if(a==1&&a==12)是等于 true的,那么a肯定不可能是一個“普通的變量”。它勢必要有能力在執(zhí)行的時候能夠動態(tài)改動值。

# JS版本

如果出于這種出發(fā)點,我們是不是能夠假設(shè):如果能夠重新類似a方法的執(zhí)行方法似乎就能夠做到這種結(jié)果。

接下來這里貼一種答案:

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

看到這個答案,我猜搞Java或其他面向?qū)ο笳Z言的同學(xué)有些“懵逼”。不過如果仔細(xì)看,仔細(xì)想其實也是可能從中看出一些解題思路的。

當(dāng)然可能有JS的小伙伴想要求解答,這里碰巧寫過解析,這里就貼出他的文章地址

看了JS的答案,我一直順著這個解題思路再想:Java中有沒有可能完成這個等式?只能說自己“功力太淺”始終沒有找到合適的解決方式...因此自己就Google了一下,發(fā)現(xiàn)果然有“閑的蛋疼”的人提供了答案,甚至還提供了多種版本:

# 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

# 尾聲

寫這篇文章其實并不是為了去深挖這些語言特性,只是單純的覺得很有意思。

如果從這個題目本身出發(fā),它既可以考察解題者的語言特性掌握程度;也可以考察出解題者對待問題,嘗試解決問題的方法論。學(xué)習(xí)這條路上,任重而道遠(yuǎn)...


	

-End-

最近有一些小伙伴,讓我?guī)兔φ乙恍┟嬖囶}資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來,可以說是程序員面試必備!所有資料都整理到網(wǎng)盤了,歡迎下載!

審核編輯 :李倩



聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2967

    瀏覽量

    104750
  • JS
    JS
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    18106

原文標(biāo)題:if(a==1 && a==2 && a==3),為true,你敢信???

文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    R&S SMC100A射頻信號源的主要特點及應(yīng)用分析

    此類儀器靈活且功能廣泛,適合維修和維護(hù)實驗室。 因小巧尺寸及輕量化設(shè)計,R&S?SMC100A 也非常適合現(xiàn)場應(yīng)用或培訓(xùn)及教育環(huán)境。
    發(fā)表于 12-08 09:46 ?1485次閱讀

    R&S FSL6臺式信號分析儀的功能特點及應(yīng)用范圍

    R&S?FSL 是一款多功能而且經(jīng)濟(jì)實用的信號分析儀。R&S?FSL全系列標(biāo)配28MHz的信號解調(diào)帶寬,遠(yuǎn)高于其他同類產(chǎn)品。無論是頻譜、噪聲系數(shù)、ACL
    發(fā)表于 12-09 09:46 ?1278次閱讀

    歐拉 Summit 2021 安全&可靠性&運(yùn)維專場:主流備份技術(shù)探討

    在openEuler Summit 2021 安全&可靠性&運(yùn)維專場上,高沖對數(shù)據(jù)安全而生,統(tǒng)軟件備份還原工具分享。
    的頭像 發(fā)表于 11-10 17:42 ?1806次閱讀
    歐拉 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>;運(yùn)維專場:主流備份技術(shù)探討

    單片機(jī)STC15雙機(jī)通信&amp;異步串行通信&amp;Proteus

    【單片機(jī)】— {STC15}—{雙機(jī)通信&amp;amp;異步串行通信&amp;amp;Proteus}例一?●題目?●原理圖?●Method??●Method
    發(fā)表于 11-18 14:36 ?13次下載
    單片機(jī)STC15雙機(jī)通信&<b class='flag-5'>amp</b>;異步串行通信&<b class='flag-5'>amp</b>;Proteus

    485&amp;&amp;Modbus協(xié)議

    1.RS4851)485通 --差分傳輸物理層: 通信引腳 A B使用雙絞線通信。發(fā)送器: 邏輯1A&;gt;B AB之間電壓
    發(fā)表于 11-23 17:36 ?3次下載
    485&<b class='flag-5'>amp</b>;&<b class='flag-5'>amp</b>;Modbus協(xié)議

    串口mpu6050 &amp;&amp; 透傳模塊(LC12S_V2)教程

    軟硬件1.串口mpu6050 &amp;amp;&amp;amp; 串口模塊 &amp;
    發(fā)表于 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;鏈接屬性

    、鏈接屬性前言本篇文章將會為大家介紹一些變量相關(guān)的存儲屬性、作用域、生命周期以及鏈接屬性的一些知識,有助于大家更好地理解程序,分析程序。一、存儲類&amp;amp;作用域&amp;amp
    發(fā)表于 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.結(jié)篇
    發(fā)表于 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車載音頻總線-車機(jī)音頻&amp;amp;amp;麥克風(fēng)陣列測試

    基于美格系統(tǒng)的A2B車載音頻總線-車機(jī)音頻&amp;amp;麥克風(fēng)陣列測試應(yīng)用筆記
    發(fā)表于 09-19 11:04 ?3196次閱讀
    <b class='flag-5'>A2</b>B車載音頻總線-車機(jī)音頻&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;麥克風(fēng)陣列測試

    如何區(qū)分Java中的&amp;amp;和&amp;amp;&amp;amp;

    首先給i賦值0,如果i大于10,并且i++等于1,則輸出“錯誤”和i的值。否則輸出“正確”和i的值。分別用&amp;和&amp;&amp;
    的頭像 發(fā)表于 02-24 10:46 ?1546次閱讀
    如何區(qū)分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 實戰(zhàn)開發(fā),“碼”上評選活動,邀您來賽!??!

    出色的系統(tǒng) 助力優(yōu)秀的設(shè)備 應(yīng)用開發(fā)者帶來豐富的體驗與想象空間 正如當(dāng)HarmonyOS遇見潤和HiSpark 這萬物互聯(lián)的時代 將由你的&amp;lt; 代碼 &amp;gt;來定義 潤
    的頭像 發(fā)表于 04-11 15:33 ?1174次閱讀
    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 實戰(zhàn)開發(fā),“碼”上評選活動,邀您來賽?。?!

    使用shell腳本中的2&;gt;&amp;amp;1了嗎?

    run_cmax > ./starrc_cmax.logs 2>&amp;1中的 2>&amp;1
    的頭像 發(fā)表于 07-30 14:44 ?1919次閱讀

    攝像機(jī)&amp;amp;amp;雷達(dá)對車輛駕駛的輔助

    攝像機(jī)&amp;amp;雷達(dá)擔(dān)負(fù)著可輔助駕駛員安全駕駛的、高級駕駛輔助系統(tǒng)的傳感功能。尼得科正在進(jìn)一步推進(jìn)攝像機(jī)&amp;amp;雷達(dá)的高性能化進(jìn)程。
    的頭像 發(fā)表于 11-26 10:02 ?913次閱讀
    攝像機(jī)&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;雷達(dá)對車輛駕駛的輔助

    FS201資料(pcb &amp;amp; DEMO &amp;amp; 原理圖)

    電子發(fā)燒友網(wǎng)站提供《FS201資料(pcb &amp; DEMO &amp; 原理圖).zip》資料免費(fèi)下載
    發(fā)表于 07-16 11:24 ?0次下載

    onsemi LV/MV MOSFET 產(chǎn)品介紹 &amp;amp;amp; 行業(yè)應(yīng)用

    01直播介紹直播時間2024/10/281430直播內(nèi)容1.onsemiLV/MVMOSFET產(chǎn)品優(yōu)勢&amp;市場地位。2.onsemiLV/MVMOSFETRoadmap。3
    的頭像 發(fā)表于 10-13 08:06 ?396次閱讀
    onsemi LV/MV MOSFET 產(chǎn)品介紹 &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; 行業(yè)應(yīng)用