---恢復內容開始---java
---------android培訓、java培訓、java學習型技術博客、期待與您交流!---android
------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! -------面試
1、關鍵字小程序
java中被賦予特殊含義的單詞,通常小寫jvm
一、數據類型關鍵字:函數
注:Stirng 是類的一種,不是基本數據類型;學習
說明:在Java中,整數默認:int 小數默認:double優化
在運算中。當低類型數據與高類型數據進行計算時,系統自動將表達式中的低類型提高到高類型this
在程序中,數據類型須要變換時,能夠強制轉換:spa
byte b=4;
b = b+4;//報錯
b=(byte)(b+4);
思考:那一句編譯失敗?爲何
byte b1=3,b2=4,b; b=b1+b2; (1)byte,short,char三種數據類型在內存中運算的時候會自動類型提高爲int去運算 (2)b1和b2是兩個變量值,jvm沒法判斷裏面值的大小
可是
b=3+4; 編譯時沒有問題的,由於編譯器有常量優化機制,在編譯時已經將3+4的結果賦予b
二、定義數據類型的關鍵字
true(真) false(假) null(空)
三、定義流程數據類型值的關鍵字:
判斷:if else swith case default
循環:for while do while
繼續循環:continue
結束循環或選擇結果:break
返回:return
結束程序:System.exist(0)
四、定義訪問權限的修飾符
private(私有的) protected(受保護的) public(共有的)
五、定義類、函數、變量的修飾符
abstract(抽象的) final(最終的) static(靜態的) synchronized(同步的)
六、定義類與類(接口)的關鍵字
extends(繼承) implements(實現)
七、用於定義創建實例及引用實例
new(創建實例) this(當前引用) super(父類引用) instanceof(判斷對象類型)
八、異常處理
try{檢查異常}catch{捕獲異常}finally{最終執行}
九、用於包的關鍵字
pakage(建立包) import(導入包)
十、其餘
native(本地)
strictfp(strict float。精確浮點)
transient(變量修飾符,用他聲明一個實例變量,在對象序列化時不會被序列化)
volatile(類型修飾符,用於修飾被不一樣線程訪問的修改的變量)
assert(斷言,能夠看作是異常處理的一種高級形式,用於捕捉咱們代碼章作出的架勢)
注:main不是關鍵字,倒是被虛擬機鎖識別的名稱
2、標識符的規範:由26個字母大小寫,數字0~9,_組成
定義合法標識符的規則:
一、數字不能夠開頭;
二、不可使用關鍵字;
包名:多字母小寫:xxxxyyyyzzzz
類名:XxYyZz
變量名和函數方法名:xxxYyZz
注:常量全大寫XXX_YYY_ZZZ
*%取餘數
*++變量 ——變量 先進行+1或-1的賦值後再執行語句
變量++ 變量-- 先執行當前語句在進行+1或-1的賦值
*+:1)做爲數據的符號(正好)
2)做爲加法的運算
3)做爲字符的鏈接符
*+=:加賦值運算符
如:int x=3,x+=2;就是x=x+2;
面試題:
1 byte b = 5; 2 // b=b+2;這個錯誤——應該b=(byte)b+2 3 // b+=2;能夠jvm會自動強轉
邏輯運算符&、|、&&、||
分別是或,且,或,且的意思
前兩個是全部執行完才得出結論,後兩個得出結論就不執行了,之後都使用後兩個
或異^:相反爲真,相同爲假
非!
移位運算符:
<<:一個整數項左移動n位就是乘以2的n次冪
>>:一個整數向右移動幾位就是除以2的n次冪,高位時0補0,高位時1補1;
>>>:無符號因爲不管高位時什麼,都補0
三元運算符:(條件表達式)?表達式1:表達式2;
條件是true,結果返回是表達式1;
條件是false,結構返回表達式2;
如:
int x=5,y=10,z;
z=x>y?x:y;//返回10
2、條件判斷語句if,else,else if ,switch和循環語句while,do~while,for
一、if的總實例,外加一些小知識
1 //作一個學生不一樣分數段獲得不一樣評分的系統 2 BufferedReader bufr= 3 new BufferedReader(new InputStreamReader(System.in)); 4 String line = bufr.readLine(); 5 int num = Integer.parseInt(line); 6 7 if(num>80){ 8 if(num>85) 9 System.out.println("A"); 10 else 11 System.out.println("B"); 12 13 }else if(num<0||num>100) 14 { 15 System.out.println("寫錯數據了"); 16 } 17 else{ 18 System.out.println("不合格"); 19 }
二、switch實例
case能夠理解爲一個入口,當遇到時就進入。若是該case裏面沒有break;
那麼程序會繼續執行下一個case的執行語句二不會對case進行判斷指定遇到break或語句結束。
String name = "張三"; String gender = "先生"; switch (gender){ case "先生": System.out.println(name + "是一位" + gender + "喜歡吃飯睡覺打dota"); break; case "女士": System.out.println(name + "是一位" + gender + "逛街購物美容"); break; default: System.out.println(name + "是一位" + gender + "打雌性激素保持美貌容顏"); }
3,while和do{}while
四、for(;;){}循環
練習打印99乘法
1 / 打印九九乘法,使用雙循環 2 for(int i=1;i<10;i++){ 3 System.out.println("\t"); 4 for(int j=1;j<=i;j++){ 5 6 System.out.print(i+"*"+j+"="+(i*j)+"\t"); 7 } 8 System.out.println(); 9 }
注意:continue和break
*這兩個語句離開應用範圍是沒有意義的;
*continue是結束本次循環,繼續下一次循環
*break是跳出循環
3、函數的概述和格式
一、*函數也叫作方法,就是定義在類中的具備特定功能的一段獨立小程序;
格式:
修飾符 返回類型 函數名(參數){
執行語句
return;
}
二、特色:
*定義函數能夠將功能代碼進行封裝,便於對該功能進行復用
*函數只有被調用纔會被執行
*void表示沒有返回,結果不用謝return,可是JVM會自動加return
三、函數的重載
A:在同一類中函數名相同,參數列表不一樣
*參數列表能夠是類型不一樣,個數不一樣,順序不一樣
B:特色:與返回值無關,只看參數列表
注:通常與複寫作對比,複寫是子類繼承父類後實現接口後,在子類中複寫一個與父類(接口)修飾符,返回值、函數、參數列表相同的函數
函數實例練習:
1 //打印* 函數封裝練習 2 printX(3); 3 } 4 5 private static void printX(int x) { 6 for(int i=0;i<=x;i++){ 7 System.out.print("\t"); 8 for(int j=0;j<i;j++){ 9 System.out.print("*"+"\t"); 10 } 11 System.out.println(); 12 } 13 14 }
1 // 判斷相等與否 2 int x=3,y=5; 3 boolean pd=boolenX(x,y); 4 } 5 6 private static boolean boolenX(int x, int y) { 7 return x==y?true:false; 8 9 }
1 // 判斷大小與否 2 int x=3,y=5; 3 int bigger=boolenX(x,y); 4 } 5 6 private static int boolenX(int x, int y) { 7 if(x==y) 8 System.out.println("同樣大"); 9 return x>y?x:y; 10 11 }
1 int x=3,y=5,z=6; 2 int bigger=boolenX(x,y,z); 3 System.out.print(bigger); 4 } 5 6 private static int boolenX(int x, int y, int z) { 7 int bigger=boolenX(x,y); 8 return bigger>z?bigger:z; 9 } 10 11 private static int boolenX(int x, int y) { 12 13 return x>y?x:y; 14 15 }
數值對換的幾種方法
1 // 更換a、b數值的多種方法 2 // 法1 3 int temp=a; 4 a=b; 5 b=temp; 6 // 法2 7 a=a+b; 8 b=a-b; 9 a=a-b; 10 11 // 法3 12 a=a^b; 13 b=a^b; 14 a=a^b; 15 16 // 法4 17 a=b+(b=a)*0;
二進制,八進制,16進制的方法
1 public static void main(String[] args){ 2 // 進制 3 4 } 5 // 二進制 6 public static void toBin(int num){ 7 conver(num,1,1); 8 } 9 // 八進制 10 public static void toOct(int num){ 11 conver(num,7,3); 12 } 13 // 16進制 14 public static void toHex(int num){ 15 conver(num,15,4); 16 // 17 } 18 private static void conver(int num, int diwei, int yiwei) { 19 if(num==0){ 20 System.out.println("num+"+0); 21 return; 22 } 23 // 製表符 24 char[] chs={'1','2','3','4','5','6','7','8','9','a','b','c', 25 'd','e','f'}; 26 // 容器八個字符32位 27 char[] arr=new char[32]; 28 29 int pos=arr.length; 30 // 取餘的反向打印 31 while(num!=0){ 32 arr[--pos]=chs[num&diwei]; 33 num>>>=yiwei; 34 } 35 // 反向打印 36 for(int x=pos;x<arr.length;x++){ 37 System.out.print(arr[x]); 38 } 39 System.out.println(); 40 }
-
---恢復內容結束---