黑馬程序員——Java基礎語法(1)——關鍵字、常量、變量、運算符

---恢復內容開始---java

---------android培訓java培訓、java學習型技術博客、期待與您交流!---android

------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! -------面試

Code:
#import <Foundation/Foundation.h>

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

  • while和do while的區別:
    • dowhile語句會先執行循環體,再去判斷條件,也就是說不管條件是否知足他都至少要執行一次循環體,先執行,再判斷
    • while 先判斷條件,只要條件不知足就不在執行循環體了,先判斷,再執行.
    • while(true){}爲死循環,通常配合{}裏面有阻塞式,或者跳出循環的語句

 

 

四、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 }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

---恢復內容結束---

相關文章
相關標籤/搜索