定義變量的時候,須要給變量賦予一個初值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("武漢加油,\"中國\"加油"); //武漢加油,"中國"加油 } } |
+ |
正 |
|
- |
負 |
Int a=1; 打印-a,輸出-1 |
! |
否認取反 |
Boolean b=true; 打印!b,輸出false |
+ |
加法 |
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 |
- |
減法 |
|
* |
乘法 |
|
/ |
除法 |
|
% |
取餘 |
>/< |
|
返回結果爲boolean類型 |
>=/<= |
|
|
== |
判斷是否等於 |
|
!= |
不等於 |
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 |
先自減後運算 |
與:要求全部條件都進行判斷; 短路與:若是第一個條件爲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 |
&& |
短路與 |
|
| |
或 |
|
|| |
短路或 |
()表明優先級最優先的運算
表達式? 成立時的結果: 不成立時的結果
int a = 10 ; int b = 20 ; int x = a>b?a:b; System.out.println(x); //20 |
& |
按位與:都爲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 } } |
表達式一般由多個運算符組成。優先級的規則決定每一個運算符在任何給定表達式中的計算順序
按操做數多少劃分:一元操做符 → 二元操做符 → 三元操做符
按運算類型劃分:算術運算符→關係運算符→邏輯運算符→賦值運算符
儘可能多的使用括號:括號優先級別最高
運算符 |
範例 |
至關於 |
備註 |
+= |
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 |
在 JDK1.9 之後,提供了一個交互式的開發工具——JShell。利用此工具能夠方便的執行程序。JSheel通常用於測試,開發階段不使用此工具
進入JSheel的兩種方法:直接在dos窗口中輸入jsheel 或 在運行中輸入JSheel
能夠在DOS窗口中,能夠直接執行文件的代碼,使用指令:/open i:/01.txt
順序語句:程序至上而下執行,一條語句執行完畢後再執行下一條,一直執行到程序末尾
選擇語句:判斷語句,根據條件來選擇到底執行哪一個語句
循環語句:根據條件來判斷執行的次數
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
本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利