国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java 自增自減,到底咋回事呀(Java面試)

ningwang / 549人閱讀

摘要:開講前肯定得先來道題唄這邊先不講字節碼的事。一步一步來講解這中間都發生了啥這個我就不說了。。

開講前肯定得先來道題唄

public class Demo01 {
    public static void main(String[] args) {
        int i = 1;
        i = i++;
        int j = i++;
        int k = i + ++i * i++;
        System.out.println("i = " + i);
        System.out.println("j = " + j);
        System.out.println("k = " + k);
    }
} 
i = 4
j = 1
k = 11

這邊先不講字節碼的事。
一步一步來講解這中間都發生了啥?

int i = 1 ;
這個我就不說了。。

看我畫的圖之前,在這里先進行一些總結

自增、自減操作都是直接修改變量的值,不經過操作數棧

賦值之前,臨時結果也是存放在操作棧中的

=右邊的 從左到右加載值 依次壓入操作數棧

(下面的圖 “操作棧” 應該為 “操作數棧” ,不影響理解)

上面得到 i = 1

這里, j = 1, i = 2
這張圖比較粗糙,仔細看應該能看得懂。

如果還想深究的,可以來了解下字節碼

  0: iconst_1
   1: istore_1
   2: iload_1  //將第二個 int 型本地變量推送至棧頂
   3: iinc          1, 1 //將指定 int 型變量增加指定值 (如 i++, i--, i+=2 等)
   6: istore_1 //棧頂 int 型數值存入第二個本地變量
   7: iload_1  //將第二個 int 型本地變量推送至棧頂
   8: iinc          1, 1
  11: istore_2
  12: iload_1
  13: iinc          1, 1
  16: iload_1            
  17: iload_1      //這里進行++i 操作 分為3個步驟了 
  18: iinc          1, 1
  21: imul
  22: iadd
  23: istore_3

如果覺得有啥不妥的,可以評論留言呀。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/75020.html

相關文章

  • java學習筆記- 運算符

    摘要:中的運算符按功能劃分主要分類。算術運算符的優先級浮點數比較在中,一般不建議直接比較兩個浮點數是否相等。還有與二元運算符相結合的賦值運算符。與二元運算符相結合的賦值運算符有其運算即為先兩者進行二元操作再賦值給前者。 java中的運算符按功能劃分主要分7類。 算術運算符 +, -, *, /, ++, --, % 關系運算符 =, ==, != 布爾邏輯運算符 &&, &, |...

    JellyBool 評論0 收藏0
  • Chapter3 Java運算符

    摘要:運算符概述表達式由運算符和操作數組成運算符算術運算符賦值運算符關系運算符邏輯運算符條件運算符位運算符目運算符對幾個操作數進行操作就是幾目運算符算術運算符與賦值運算符賦值運算符賦值運算符是從右往左運算,是單目運算符格式變量表達式復合賦值運算符 Lecture1 運算符概述 表達式:由運算符和操作數組成 運算符: 算術運算符 賦值運算符 關系運算符 邏輯運算符 條件運算符 位運算符 ...

    NicolasHe 評論0 收藏0
  • 作為我的的第一門語言,學習Java時是什么感受?

    摘要:作為技術書籍或者視頻,講解一門語言的時候都是從最底層開始講解,底層的基礎有哪些呢首先是整個,讓我們對這門語言先混個臉熟,知道程序的基本結構,順帶著還會說一下注釋是什么樣子。 2018年新年剛過,就迷茫了,Java學不下去了,不知道從哪里學了。 那么多細節的東西,我根本記不住,看完就忘。 剛開始學習的時候熱情萬丈,持續不了幾天就慢慢退去。 作為技術書籍或者視頻,講解一門語言的時候都是...

    isaced 評論0 收藏0
  • 2.java運算符與邏輯控制

    摘要:如果條件為,則邏輯非運算符將得到進行邏輯判斷的順序為從左到右。再次檢測布爾表達式。其作用域限定在循環語句塊,其值與此時數組元素的值相等。 運算符和邏輯控制 運算符 java中的運算符可以分為以下幾種: 算符運算符 關系運算符 位運算符 邏輯運算符 賦值運算符 三目運算符 算符運算符 操作符 描述 + 加法 - 減法 * 乘法 / 除法 % 取余(模) ...

    dingding199389 評論0 收藏0
  • Java 中的類型、值和變量 之 基本類型

    摘要:在中存在兩種類型基本類型和引用類型。值得注意的是,基本類型的值的狀態不會被共享。浮點類型和它們的值中的浮點類型遵循標準的定義。布爾類型和它們的值類型表示兩個邏輯量,和。 眾所周知,Java是一門靜態類型的語言,這意味著所有的變量和表達式的類型會在編譯時確定。同時,Java 還是一門強類型的語言,因此變量的值或表達式的結果的類型都會受到限制(比如一個聲明為 String 的變量不的值不可...

    beita 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<