1. 程式人生 > >JavaSE(一)

JavaSE(一)

1.識別符號

  識別符號是由數字,字母,下劃線,$ 等進行命名的符號,但是不可以以數字開頭;

  識別符號包含了關鍵字,變數名,他人定義,自己定義的。

2.關鍵字

  關鍵字是指有特殊用途的符號。由以下50種構成

 

 

3.資料型別,常量和變數

 a.資料型別

    資料型別:分為基本資料型別和引用資料型別

    

                

 

 

     1.基本資料型別

      有4類8種 分別是: 整數型(byte,short,int,long),浮點型(float,double), 字元型(char), 布林型(boolean)

      不同的基本資料型別在記憶體中佔用的空間不同,在記憶體中儲存的是資料本身。

      一個位元組在記憶體中佔8位,位中通過儲存0和1表示2進位制資料。位元組越多空間越大,儲存的範圍越大。注:bit:位元,指的是二進位制的位數

      字元是通過ASCII碼值儲存在記憶體中,只有一個位元組就夠了,但是中文一個位元組就不夠了。現在需要兩個位元組。現在通用的碼錶 utf-8;

      

 

       byte,short,char—> int —> long—> float —> double //看的是空間大小

       如果由空間小的資料型別轉換為空間大的資料型別,進行自動型別轉換

       如果由空間大的資料型別轉換為空間小的資料型別,需要強制型別轉換

 

    2.引用資料型別

      除了上述基本型別的變數,其餘的都是引用資料型別。 最常用的就是String

      引用型別在記憶體中儲存的是儲存資料的地址,常用十六進位制的地址

      String s = new String("HelloWorld")  聲明瞭一個型別為String 的變數 s 儲存在棧裡面,但是s並沒有指向new出來的物件。而是儲存了這個物件在堆裡面的地址 

 b.常量

    常量是指在隨著程式執行不會改變的值,就像圓周率一樣;

    常量在記憶體在儲存在常量池中

    1.字面常量

      -整型字面常量  如:1 ,2 ,3 ,4;

      -浮點型字面常量 如:1.1 ,2.0 , 6.3;

      -字元字面常量 如: 中,國;

      -布林常量 如:true false

    2. 符號變數

      -符號變數就是給常量取一個名字

      -常量名的命名規則:見名知意,約定俗成:全部字母大寫

      -定義一個常量語法:final 資料型別 常量名 = 值

 c.變數

    1.本質是在記憶體中劃分一個空間來儲存資料,該空間內的資料在程式執行過程中允許發生變化,跟數學裡設定一個未知數x類似

    2.變數名的命名規則:駝峰命名法,見名知意,約定俗成 

    3.定義一個變數語法:資料型別 變數名 = 變數值

4.運算子

  a.算術運算子

    +  -  *  /  %     加減乘除模 

    //取餘的只跟被除數(8)的符號有關
    system.out.println(8%5)    3
    system.out.println(8%-5) 3
    system.out.println(-8%5)    -3
    system.out.println(-8%-5)    -3
     

  b.賦值運算子

    = 是將在它右邊的值賦值給左邊的值

    a += 1等價於 a=a+1  

     +=  -=  *=  /=  %=  這些運算子會自動完成強制型別轉換

int num = 0;
num = num +0.5;//錯誤
num += 0.5;//正確

    ++(自增)  --(自減)

    如果表示式中只有單獨的自增長語句,那麼a++ 和 ++a 是沒有區別的   

    a++  a=a+1   a += 1
    a--    a=a-1    a -= 1

//如果是組合運算
public class Test {
    public static void main(String[] args) {
        int b = 1;
        int a = 2;
        System.out.println(b+ (++a));
        System.out.println(b+ (a++));
    }
// a++    先用a 完成運算,在完成加1的操作 
//++a     a先加1, 再完成運算
}

3.比較運算子

  用來做比較的符號  <   >   =>   <=   ==   !=

  在java中不被允許 1<a<3這樣的寫法

  注意在java 中不是用 = 來做相等比較 而是用==

  運算的結果都為boolean值

 

4.邏輯運算子

邏輯運算子是專用於連線多個布林表示式,獲得整體的true或者false

  • 與 --- and   符號   &&和&

    表示兩個條件同時為真就是真,有假就是假

    &&是邏輯與 ,當第一個表示式就為false的時候,忽略第二個表示式,節約記憶體 ,稱為短路

    & 是位與 會將兩個表示式都執行,再進行判斷

     int x = 0;
     x != 0 && (x++ > 10) //列印x為0
         
     int x = 0;
     x != 0 & (x++ > 10) //列印x為1
  • 或 ---or 符號|| 和 |

    表示兩個條件同時為假就是假,有真就是真

    || 是專用的邏輯或 , 第一個表示式執行為true就不執行第二個語句,節約記憶體,稱為短路

    | 是 位或 兩個表示式都會執行,再進行判斷

     int x = 0;
     x != 0 || (x++ > 10) //列印x為0
         
     int x = 0;
     x != 0 | (x++ > 10) //列印x為1
  • 異或運算 符號 ^

    一真一假才為真

    本質也是一個位運算

    平時是很少使用,往往出現在面試中,都是用來做位運算

    兩大特性:1.任何一個數 異或 自己都是 0 ,2.任何一個數 異或 自己都是得到自己

  • 非 - --not 符號 !

    取反,真為假,假為真

5.三目運算子

  運算元1?運算元2: 運算元3

  1. 運算元1是布林表示式

  2. 當布林表示式為true的時候 取運算元2

  3. 當布林表示式為false的時候 取運算元3

  4. 可以在運算元2或者3中再巢狀一個三目運算子