11true還是, 1 1 true還是false

2021-06-10 22:59:58 字數 3367 閱讀 7189

1樓:蛋殼兒漂

首先樓主問的"1"=="1"這個是true,因為"1"存放在常量池的。

這應該算是個關於string物件的建立方面的問題1。string a = "1";//建立a的時候,首先檢視常量池裡面,如果有"1",就把a指向這裡;如果沒有"1",就開闢乙個"1",並切a使用常量池的"1",

string b = "1";//這時常量池必定有了1,也就是建立b時在常量池查詢"1"必定成功,然後b就指向已經有的"1"。這裡做ab的比較,你會發現a==b是true

2。string c = new string("1");//這個物件開闢在堆記憶體裡面(強制new出來的),物件的引用c在棧記憶體裡面。這個就沒有使用常量池。

也就是說,用==來比較,c就跟a和b不等的

2樓:

"1"實際上指向的是字串池中的乙個例項,所以是同乙個物件"1"==new string("1") 為false,後面的物件為乙個新的例項

這裡不關hashcode啥事,沒可能保證所有物件hashcode都不一樣,學過hash查詢演算法的都知道,hash值匹配以後還是要做鍵值匹配,乙個好的hash演算法可以很大程度上避免不同物件產生相同hashcode,但是不是絕對的

正解,只有類似string s = "321"這樣使用常量賦值,才會從字串池中查詢物件

3樓:匿名使用者

樓主你說的沒錯,確實是判斷物件。不過"1"是string物件。兩個"1"指向的是同乙個位址。

沒什麼需要補充的了,只希望樓主選我為最佳吧。^_^

4樓:

1.直接使用"1"這樣的形式就是常量池中的1,"1".tolowercase()或者"1".

touppercase()由於沒有發生改變,返回的是原string,即還是常量池中的string。

2.string是所謂的不可變的。對"1"做任何修改,如substring,都會導致建立新的物件,new string("1"),string.valueof(1)也會建立新的物件

5樓:地底生物

沒那麼複雜的,雖然你這裡有兩個「1」,但其實在記憶體中只建立了乙個,第二個申明時,系統自動將記憶體位址指向了第一次申明的記憶體位址。

「==」比較引用型物件時是比較記憶體位址,就這麼簡單,看兩個物件是否相等,就是看這兩個物件是否引用了同乙個記憶體位址。

「equals」,則是比較記憶體內容了,也就是比較 引用的記憶體位址裡面的內容,所以,就算位址不同,只要內容相同,就為true。

6樓:最愛山頂巨人

常量池有了就不用造了嘛,不過可以強制嘛

string s = "1" ,"1"有了的話就不用造了,不過可以強制 string s = new string("1");

說實話,這種問題沒必要研究...

新手小白求教:在python中-1為true還是false

7樓:銀河系

如果做布林運算,那麼是true。如果做相等比較,都是false>>> bool(-1)

true

>>> true == -1

false

>>> false == -1

false

還不明白?

看這裡專:的python教程之布屬爾型別">劉江的python教程之布林型別

js中為什麼true=="1"為真,而true=="true"而為假。

8樓:yesyes科

因為true和false和負數比較會把true隱式轉換為1,false隱身轉換為0。操作方法如下:

1、首先準備好兩個js檔案。

2、然後寫乙個html檔案,通過方法,將兩個js引用到html檔案中。

3、處於下方的js檔案,就可以直接呼叫上方js檔案中的內容了。在html中先載入了jquery,在第二個js可以使用dollar來對物件進行直接操作。

4、因為js本身是不能執行的,必須依託於html才能執行。的引用其實就相當於將幾個js檔案都寫在html檔案中了,所以可以直接呼叫。

5、也直接在js中引用另外乙個js的內容。首先要在要引用另外乙個js檔案的js開頭,寫乙個匿名函式。

6、在匿名函式裡建立乙個document.write()函式,將另外乙個要引用的js寫入。

9樓:購物完美

很簡單 true 和false 和負數比較 會把 true 隱式轉換為1 false隱身轉換為0

所以負數用==去比 是false

!-1是false,!-1是true 這個原理 因為js規定 非0的數字是true !-1 相當於 !true 肯定是false !true == true

你把握隱式轉換 和 非0的數是true 就可以解決你的疑惑

10樓:心樂瀾清

1、如果有乙個運算元是布林值,先將布林轉換成數值.

2、如果有乙個運算元是數值,則將另乙個運算元也轉換為數值.

"1"轉換為數值為1,為真.

"true"轉換為數值為nan,為假

11樓:dream幻

"1"和true都可以轉換為數字1

"true"不可以

php 裡面,0、1和false 、true有什麼區別?

12樓:匿名使用者

不加特別處理的話,通常0、1等於false 、true,可以互相代替的。

極特別情況下需要嚴格區分的話,可以用全等於來判斷:===

當然另外大於0的都當作true

13樓:匿名使用者

大於0的都可以用true表示吧,個人認為。

js中1和'1',若判斷的話為true,如何判斷為false

14樓:匿名使用者

你可以試試看這個:

var a = 1;

var b = '1';

alert(a===b);//為false;

這是因為,雙等號

的話,會有乙個型別的轉換,回如果是三等號,答那就是型別也必需一樣才會返回true的。

如果還有問題的話,你再hi我或q我(我資料裡有寫q號)好了。

15樓:匿名使用者

通過==方式判bai斷為

dutrue,通過===的方式判斷為zhifalse舉例:alert(1=='1');//為truealert(1==='1');//為false1、對於string,number基礎型別dao,==和內===的區別

不同型別間比較容,==之比較「轉化成同一型別後的值」看「值」是否相等,===如果型別不同,其結果就是不等。

認識11年結婚3年離婚還是不離,認識11年結婚3年離婚還是不離?

如果你們之間有感情的話建議你不要分開,如果他還對你好,只是因為家庭原因和你鬧彆扭,這是可以慢慢解決的。你已經過了最佳年華,如果這個男人還有可取之處,我認為還是在一起的好。很多時候,當我們把事情弄糟了的時候,往往那希望寄託在下次重新洗牌上,其實不管是好牌還是壞牌,用心打一定會有意想不到的效果,把壞牌打...

airjordan11GS的尺碼偏大還是偏小平常穿

無視小白 nike 23cm腳長對應歐碼36.5,買37.5更保險一點 喬丹女鞋和運動鞋相比碼不偏而且很正的 像男鞋也有半碼 列42.5 43.5 44.5 女款我買過 碼很正的 個人覺得 aj11不偏碼 23cm應該是36 air jordan11的鞋子偏大偏小?air jordan的鞋子 尺碼來...

11月的最後星期四是感恩節?還是11月的星期四是感恩節

11月的第四個星期四是感恩節 2007年的是11月23日 感恩節是每年十一月的第四個星期四 thanksgiving day 今年的感恩節是在今天 11月23日 星期四 十一月的第四個星期四 11月的第四個星期四是感恩節 11月的第 4個星期四 感恩節到底是十一月的第四個星期四還是最後乙個星期四?1...