第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Java并發(fā)環(huán)境下,為什么b == (b = a)不總是true?

在Java并發(fā)環(huán)境下,為什么b == (b = a)不總是true?

湖上湖 2018-10-24 16:58:14
在Java中,為什么b == (b = a)這段代碼在多線程環(huán)境不總是返回true?a可以被多個線程修改。b初始化為b = a在打印b == (b = a)時,結(jié)果卻不一定為true??墒牵僮鞣膬?yōu)先級不是先b = a再b == b嗎?代碼如下:public class Demo implements Runnable{    public static double a = 0;    @Override     public void run() {         a = Math.random()*100;        double b = a;         System.out.println(b == (b = a));     }     public static void main(String args[]) {         for(int i=0;i<10;i++) {             new Thread(new Demo()).start();          }      }      }打印結(jié)果:falsetruetruetruefalsetruefalsetruetruetrue
查看完整描述

1 回答

?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個贊

b==b并不是直接比較兩個b,而且會先把b放到寄存器中,然后比較兩個寄存器中的值。在將第二個b放入寄存器的時候,b可能會被修改。

查看完整回答
反對 回復(fù) 2018-10-24
  • 1 回答
  • 0 關(guān)注
  • 571 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號