Java-運算符和數據類型

一、 數據類型的轉換

定義變量的時候,須要給變量賦予一個初值html

自動類型轉換:小範圍類型能夠轉換爲大範圍類型的值,大框子能夠裝下小框子編程

強制類型轉換:大範圍類型沒法轉換爲小範圍的值,由於小框子裝不下大框子,除非強塞工具

強制類型轉換:小範圍類型名 變量名 = (小範圍類型名)大範圍類型的值;開發工具

public class demo2{測試

         public static void main(String[] args) {spa

                  int a = 10 ;htm

                  long b = 20L ;blog

                  long c = 20 ;      //不報錯,自動進行類型轉換ci

                  double d = 1.234 ;開發

                  //float e = 1.234 ;    報錯,float轉換爲int可能損失精度

                  float f = 1.234f ;

                  char g = 'g' ;

                  boolean h = true ;

                  //boolean i;          報錯,值未初始化

                  System.out.println(a);

                  System.out.println(b);

                  System.out.println(c);

                  System.out.println(d);

                  System.out.println(f);

                  System.out.println(g);

                  System.out.println(h);

         }

}

自動類型轉換:小範圍類型能夠轉換爲大範圍類型的值,大框子能夠裝下小框子

強制類型轉換:大範圍類型沒法轉換爲小範圍的值,由於小框子裝不下大框子,除非強塞

強制類型轉換:小範圍類型名 變量名 = (小範圍類型名)大範圍類型的值;

public class demo5{

public static void main(String[] args) {

         byte a = -128 ;

         byte b = 127 ;

       //byte c = a-1 ;         報錯,可能損失精度

         byte d = (byte)(a-1);     //強制類型轉換

         System.out.println(a-1);  //不會溢出,此時將byte自動轉爲int

         System.out.println(b+1);  //不會溢出,此時將byte自動轉爲int

       //System.out.println(c);   錯誤: 不兼容的類型: 從int轉換到byte可能會有損失

         System.out.println(d);   //進行強制轉換後,輸出爲127,發生了溢出現象,最小值-1=最大值,最大值+1=最小值

         }

}

說明:byte、short、char 之間不會相互轉換,若是想要進行操做,則須要把他們先轉換爲 int類型,而後再執行操做。

public class demo9{

         public static void main(String[] args) {

                  byte a = 1 ;   short b = 10 ;    int c = 100 ;

                  /* char i = a ;  錯誤: 不兼容的類型: 從byte轉換到char可能會有損失

                  char j = b ;  錯誤: 不兼容的類型: 從short轉換到char可能會有損失

                  char k = c ;  錯誤: 不兼容的類型: 從int轉換到char可能會有損失 */

                  char i =(char) a ;

                  char j =(char) b ;

                  char k =(char) c ;

                  System.out.println(i);  //輸出亂碼

                  System.out.println(j);  //輸出亂碼

                  System.out.println(k);  //輸出d

         }

}

 

二、 擴展數據類型

在計算機中,整數能夠有 4 種表示方式,分別是十進制、十六進制數、八進制數、二進制數。

public class demo11{

                       public static void main(String[] args) {

                       int a = 20 ;       //十進制

                       int b = 0x89 ;     //十六進制:表示形式0X或0x開頭,0-9 A-F

                       int c = 012 ;      //八進制:表示形式0開頭,0-7

                       int d = 0b1010 ;   //二進制:表示形式0b或0B開頭,0或1

                       System.out.println("十進制:"+a);    //輸出 十進制:20

                       System.out.println("十六進制:"+b);  //輸出 十六進制:137

                       System.out.println("八進制:"+c);    //輸出 八進制:10

                       System.out.println("二進制:"+d);    //輸出 二進制:10

                       }

//輸出的結果都顯示爲十進制的數

關於整數除法的問題

public class demo15{

         public static void main(String[] args) {

         int a = 20 ;        int b = 8 ;

         System.out.println(a/b);    //輸出2   a和b都是int類型,因此a/b也是int類型

         System.out.println((float)a/b);  //輸出2.5  a是float,b是int類型,因此a/b自動轉換爲float類型

         System.out.println(a/(float)b);   //輸出2.5  b是float,a是int類型,因此a/b自動轉換爲float類型

         }

}

轉義字符

\r

歸位

\b

倒退一格

\f

換頁

\’

\n

換行

\t

一個製表符

\\

\

\」

轉義字符的類型是字符類型

public class demo18{

         public static void main(String[] args) {

         char a = '\n' ;  //換行      char b = '\t' ;  //tab製表符

         char c = '\r' ;  //歸位,表示接受鍵盤輸入,至關於摁下了回車鍵

         char d = '\b' ;  //退一格

         System.out.println("HELLO"+a+"world");  //HELLO換行world

         System.out.println("HELLO"+b+"world");  //HELLO   world

         System.out.println("HELLO WORLD"+c+"ABC");  //ABCLO WORLD  (把HEL換爲ABC)

         System.out.println("HELLO WORLD"+d+"ABC");  //HELLO WORLABC (把D刪除)

         System.out.println("武漢加油,中國加油");  //武漢加油,中國加油

         System.out.println("武漢加油,\"中國\"加油");  //武漢加油,"中國"加油

         }

}

三、 運算符

1)、賦值運算符(=)

2)、一元運算符

+

 

-

Int a=1;   打印-a,輸出-1

!

否認取反

Boolean b=true;  打印!b,輸出false

3)、算術運算符

+

加法

int a = -10 ;   int b = 3 ;

  int c = 10 ;   int d = -3 ;

System.out.println("結果爲"+(a/b));  //-3

System.out.println("結果爲"+(a*b));  //-30

System.out.println("結果爲"+(a%b));  //-1

System.out.println("結果爲"+(c%d));  //1

System.out.println("結果爲"+(a%d));  //-1

-

減法

*

乘法

/

除法

%

取餘

4)、關係運算符

>/<

 

返回結果爲boolean類型

>=/<=

 

==

判斷是否等於

!=

不等於

5)、自增自減運算符

x++

先運算後自加

                  int a = 10 ;  

       int b = 20 ;

                  int x = (a++) + (--b) ;

                  System.out.println("x爲"+x);  //29

                  System.out.println("a爲"+a);  //11

                  System.out.println("b爲"+b);  //19

x--

先運算後自減

++x

先自加後運算

--x

先自減後運算

6)、邏輯運算符

與:要求全部條件都進行判斷; 短路與:若是第一個條件爲false,則後面的條件再也不判斷

或:要求全部條件都進行判斷; 短路或:若是第一個條件爲true,則後面的條件再也不判斷

&

                  int a = 10 ;   int b = 20 ;

                  boolean x = (a > b) ;  boolean y = (a < b) ;

                  System.out.println(x & y);  //false

                  System.out.println(x | y);  //true

                  System.out.println(x && y);  //false

                  System.out.println(x || y);  //true

&&

短路與

|

||

短路或

7)、括號運算符

         ()表明優先級最優先的運算

8)、三目運算符

         表達式?  成立時的結果: 不成立時的結果

int a = 10 ;   int b = 20 ;

                  int x = a>b?a:b;

                  System.out.println(x);  //20

9)、位運算符

&

按位與:都爲1,則取1,不然爲0

|

按位或:都爲0,則取0,不然爲1

^

異或:相同爲0,不然爲1

~

取反

x<<2

左位移:將x的二進制數總體左移指定的位數2,空位用0填充

x>>2

右位移:將x的二進制數總體左移指定的位數2,正數用0填充,負數用1填充

>>> 

無符號右位移:一概用 0 填充

位運算符都是須要轉換爲二進制後才能進行運算

public class demo25{

         public static void main(String[] args) {

                  int a = 3 ;

                  //00000000 00000000 00000011

                  int b = 6 ;

                  //00000000 00000000 00000110

                  System.out.println(a & b);  //2

 

            //   00000000 00000000 00000011

           //    00000000 00000000 00000110

           //    -----------------------------------

           //    00000000 00000000 00000010

 

                  System.out.println(a | b);  //7

 

           //    00000000 00000000 00000011

           //    00000000 00000000 00000110

           //     ----------------------------------

           //    00000000 00000000 00000111

 

                  System.out.println(a ^ b);  //5

 

           //    00000000 00000000 00000011

           //    00000000 00000000 00000110

           //     ----------------------------------

           //    00000000 00000000 00000101

         }

}

位移

public class demo26{

         public static void main(String[] args) {

                  int a = 3 ;

                  //00000000 00000000 00000011

                  System.out.println(a<<2);  //12

                  /*

                  00000000 00000000 00000011

              00000000 00000000 0000001100

                  */

                  System.out.println(a>>2);  //0

                  /*

                  00000000 00000000 00000011

                  0000000000 00000000 00000011

                  */

                  System.out.println(a>>>2);  //0

                  /*

                  00000000 00000000 00000011

                  0000000000 00000000 00000011

                  */

         }

}

~取反和負數的二進制表示

public class demo27{

         public static void main(String[] args) {

                  int a = 3 ;

                  //00000000 00000000 00000011

                  int b = -3 ;

                  //10000000 00000000 00000011  3的二進制把符號位變爲1

                  //10000000 00000000 00000011  原碼

                  //11111111 11111111 11111100  反碼

                  //11111111 11111111 11111101  補碼 -3的二進制表示

                  //00000000 00000000 00000010   ~b二進制表示

                  System.out.println(~a);           //-4

                  System.out.println(~b);           //2

         }

}

10)、運算符的優先級

表達式一般由多個運算符組成。優先級的規則決定每一個運算符在任何給定表達式中的計算順序

按操做數多少劃分:一元操做符 → 二元操做符 → 三元操做符

按運算類型劃分:算術運算符→關係運算符→邏輯運算符→賦值運算符

儘可能多的使用括號:括號優先級別最高

 

四、 簡潔表達式

運算符

範例

至關於

備註

+=

a+=b

a=a+b

short a = 3 ;

a+=1;

//a = a + 1;   錯誤: 不兼容的類型: 從int轉換到short可能會有損失

System.out.println(a);   //輸出4

//說明:此處的a+=1,等價於a = (short)(a+1)

-=

a-=b

a=a-b

*=

a*=b

a=a*b

/=

a/=b

a=a/b

%=

a%=b

a=a%b

 

五、 JShell交互式編程工具

在 JDK1.9 之後,提供了一個交互式的開發工具——JShell。利用此工具能夠方便的執行程序。JSheel通常用於測試,開發階段不使用此工具

進入JSheel的兩種方法:直接在dos窗口中輸入jsheel 或 在運行中輸入JSheel

 

能夠在DOS窗口中,能夠直接執行文件的代碼,使用指令:/open i:/01.txt

 

 

六、 流程控制語句

順序語句:程序至上而下執行,一條語句執行完畢後再執行下一條,一直執行到程序末尾

選擇語句:判斷語句,根據條件來選擇到底執行哪一個語句

循環語句:根據條件來判斷執行的次數

1)、選擇語句

If語句語法格式1

If(判斷條件){

    語句;

}

判斷語句能夠是一個boolean值,也能夠是一個表達式(結果也必須是boolean值)

public class demo30{

         public static void main(String[] args) {

                  int a = 3 ;

                  if (a>10){

                          System.out.println(a);

                  }

                  System.out.println("a<10");  

         }

}

If語句語法格式2

If(判斷條件){

成立時的語句;

}

Else{

不成立時的語句;

}

public class demo31{

         public static void main(String[] args) {

                  int a = 3 ;

                  if (a%2==1){

                          System.out.println("奇數");

                  }

                  else{

                          System.out.println("偶數");  

                  }

         }

}

System.out.println((a%2==1)?"奇數":"偶數");    以上if語句等同於此三目運算符

If語句中的花括號能夠省略,可是不建議省略

 

做者:kerwin-chyl

文章連接:https:////www.cnblogs.com/kerwin-chyl

本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利

相關文章
相關標籤/搜索