java基本語法

1.關鍵字

關鍵字的定義和特點
定義:被Java語言賦予了特殊含義,用做專門用途的字符串(單詞)

特點:關鍵字中所有字母都爲小寫



2.標識符

標識符:
(1)Java 對各種變量、方法和類等要素命名時使用的字符序列稱爲標識符
(2)凡是自己可以起名字的地方都叫標識符。
定義合法標識符規則:
(1)由26個英文字母大小寫,0-9 ,_或 $ 組成  
(2)數字不可以開頭。
(3)不可以使用關鍵字和保留字,但能包含關鍵字和保留字。
(4)Java中嚴格區分大小寫,長度無限制。
(5)標識符不能包含空格。
注意:在起名字時,爲了提高閱讀性,要儘量有意義,“見名知意”。

Java中的名稱命名規範:
包名:多單詞組成時所有字母都小寫:xxxyyyzzz
類名、接口名:多單詞組成時,所有單詞的首字母大寫:XxxYyyZzz
變量名、方法名:多單詞組成時,第一個單詞首字母小寫,第二個單詞開始每個單詞首字母大寫:xxxYyyZzz

常量名:所有字母都大寫。多單詞時每個單詞用下劃線連接:XXX_YYY_ZZZ

3.變量

變量的概念:
(1)內存中的一個存儲區域
(2)該區域有自己的名稱(變量名)和類型(數據類型)
(3)Java中每個變量必須先聲明,後使用
(4)該區域的數據可以在同一類型範圍內不斷變化
使用變量注意:
(1)變量的作用域:一對{ }之間有效
(2)必須初始化值

定義變量的格式:

數據類型    變量名  =  初始化值

變量是通過使用變量名來訪問這塊區域的


變量的分類-按數據類型:

對於每一種數據都定義了明確的具體數據類型,在內存中分配了不同大小的內存空間。


變量的分類-按聲明的位置的不同:

在方法體外,類體內聲明的變量稱爲成員變量。

在方法體內部聲明的變量稱爲局部變量。


注意:二者在初始化值方面的異同:

         同:都有生命週期      異:局部變量除形參外,需顯式初始化。

4.基本數據類型的轉換

自動類型轉換:

容量小的類型自動轉換爲容量大的數據類型。數據類型按容量大小排序爲:


注:

(1)有多種類型的數據混合運算時,系統首先自動將所有數據轉換成容量最大的那種數據類型,然後再進行計算。      

(2)byte,short,char之間不會相互轉換,他們三者在計算時首先轉換爲int類型。

(3)當把任何基本類型的值和字符串值進行連接運算時(+),基本類型的值將自動轉化爲字符串類型。 


基本數據類型轉換測試:

package com.one;

/**
 * 基本數據類型轉換測試
 * @author sujinran
 */
public class Helloworld {
    public static void main(String[] args) {
        String str1 = 4;    //判斷對錯:錯
        String str2 = 3.5f +""; //判斷str2對錯:對
        System.out.println(str2);//輸出:3.5
        System.out .println(3+4+"Hello!"); //輸出:7Hello!
        System.out.println("Hello!"+3+4);  //輸出:Hello!34
        System.out.println('a'+1+"Hello!");//輸出:98Hello!
        System.out.println("Hello"+'a'+1); //輸出:Hello!a1

    }
}

強制類型轉換:

自動類型轉換的逆過程,將容量大的數據類型轉換爲容量小的數據類型。使用時要加上強制轉換符(()),但可能造成精度降低或溢出,格外要注意。

通常,字符串不能直接轉換爲基本類型,但通過基本類型對應的包裝類則可以實現把字符串轉換成基本類型。

如: String a = “43”; int i = Integer.parseInt(a);

注意:

boolean類型不可以轉換爲其它的數據類型。  

Idea是邊編譯的。因此可以不用保存代碼,他會自動幫忙保存,紅色代表編譯不通過


強制類型轉換測試:

package com.two;

/**
 * 強制類型轉換
 * @author sujinran
 */
public class Helloworld {
    public static void main(String[] args) {
        //第一種
        short s = 5;
        s = s-2;//判斷:no
        //第二種
        byte b = 3;
        b = b+4;//判斷:no
        b = (byte) (b+4);//判斷:yes
        //第三種
        char c = 'a';
        int i = 5;
        double d= .314;
        double result = c+i+d;//判斷:yes
        //第四種
        byte b1 = 5;
        short s1 = 3;
        short t= s+b;//判斷:no



    }
}

5.運算符

運算符是一種特殊的符號,用以表示數據的運算、賦值和比較等。

算術運算符:


算術運算符:自加、自減測試:

package com.com.three;

/**
 * 算術運算符:自加、自減
 *
 * @author sujinran
 */
public class HelloWorld {
    public static void main(String[] args) {
        int i1 = 10, i2 = 20;//初始化
        //後自增
        int i = i1++;//i = 10,i1=11
        System.out.println("i=" + i);//i=10
        System.out.println("i1=" + i1);//i1=11
        //前自增
        i = ++i1;//i=12,i1=12
        System.out.println("i=" + i);//i=12
        System.out.println("i1=" + i1);//i1=12
        //後自減
        i = i2--;//i=20,i2=19
        System.out.println("i=" + i);//i=20
        System.out.println("i1=" + i2);//i1=19
        //前自增
        i = --i2;//i = 18,i2=18
        System.out.println("i=" + i);//i=18
        System.out.println("i1=" + i2);//i1=18

    }
}

賦值運算符:

符號:= 
當“=”兩側數據類型不一致時,可以使用自動類型轉換或使用強制類型轉換原則進行處理。
支持連續賦值。
擴展賦值運算符: +=, -=, *=, /=, %=

比較運算符(關係運算符):


邏輯運算符:

&—邏輯與         | —邏輯或         !—邏輯非
&& —短路與      || —短路或        ^ —邏輯異或 


位運算符:


三元運算符:

格式:
(條件表達式)? 表達式1:表達式2;
爲true,運算後的結果是表達式1;
爲false,運算後的結果是表達式2;

表達式1和表達式2爲同種類型
三元運算符與if-else的聯繫與區別:
1)三元運算符可簡化if-else語句
2)三元運算符要求必須返回一個結果。

3)if後的代碼塊可有多個語句

6.程序流程控制

順序結構:
程序從上到下逐行地執行,中間沒有任何判斷和跳轉。


順序結構練習:

package com.four;

/**
 * 順序結構
 *
 * @author sujinran
 */
public class Helloworld {

    public static void main(String[] args) {
        int num1 = 12;
        int num2 = num1 + 2;
        System.out.println(num2);
    }
}

分支結構:
根據條件,選擇性地執行某段代碼。
有if…else和switch兩種分支語句。
if語句三種格式:

1.  if(true){
	執行代碼塊;
     }

2.  if(條件表達式){
	執行代碼塊;
      }
     else{
	執行代碼塊;
      }
3.  if(條件表達式){
	執行代碼塊;
      }
      else if (條件表達式){
	執行代碼塊;
      }
       ……
       else{
	執行代碼塊;
       }


package com.four;

/**
 * if練習
 * 思路:
 * 1.定義年齡age
 * 2.判斷年齡是否小於0  是 輸出不可能
 * 3判斷年齡大於250  是  是個妖怪
 * 4.2.3都不是  輸出年齡
 */
public class If1 {
    public static void main(String args[]) {
        int age = 75;
        if (age < 0) {
            System.out.println("不可能!");
        } else if (age > 250) {
            System.out.println("是個妖怪!");
        } else {
            System.out.println("人家芳齡 " + age + " ,馬馬乎乎啦!");
        }

    }

}

switch語句有關規則:

switch(表達式)中表達式的返回值必須是下述幾種類型之一:byte,short,char,int,枚舉,String;

case子句中的值必須是常量,且所有case子句中的值應是不同的;
default子句是可任選的,當沒有匹配的case時,執行default

break語句用來在執行完一個case分支後使程序跳出switch語句塊;如果沒有break,程序會順序執行到switch結尾

switch和if語句的對比:

如果判斷的具體數值不多,而且符合byte、 short 、int、 char這四種類型。雖然兩個語句都可以使用,建議使用swtich語句。因爲效率稍高。
其他情況:對區間判斷,對結果爲boolean類型判斷,使用if,if的使用範圍更廣。

switch(變量){
	case 常量1:
		語句1;
		break;
	case 常量2:
		語句2;
		break;
	… …
	case 常量N:
		語句N;
		break;
	default:
		語句;
		break;
	 } 

練習:

package com.four;

/**
 *  Switch 練習
 *  @author sujinran 
 */
public class Switch {
    public static void main(String args[]) {
        int i = 1;
        switch (i) {
            case 0:
                System.out.println("zero");
                break;
            case 1:
                System.out.println("one");
                break;
            default:
                System.out.println("default");
                break;
        }
    }

}

注意:


循環結構:

根據循環條件,重複性的執行某段代碼。
有while、do…while、for三種循環語句。

注:JDK1.5提供了foreach循環,方便的遍歷集合、數組元素。

for 循環語句:

package com.four;

/**
 * for練習
 * @author sujinran
 */
public class ForLoop {
    public static void main(String args[]) {
        int result = 0;
        for (int i = 1; i <= 100; i++) {
            result += i;
        }
        System.out.println("result=" + result);
    }

}
do-while 循環語句:
語法格式
[初始化語句]
do{
        語句或語句塊;
        [更改語句;]

}while(布爾值測試表達式); 

package com.four;

/**
 * do-while練習
 *
 * @author sujinran
 */
public class WhileLoop {
    public static void main(String args[]) {
        int result = 0, i = 1;
        do {
            result += i;
            i++;
        } while (i <= 100);
        System.out.println("result=" + result);
    }

}
break 語句:
break語句用於終止某個語句塊的執行
  {    ……  
     break;
     ……
}
break語句出現在多層嵌套的語句塊中時,可以通過標籤指明要終止的是哪一層語句塊 
label1: {   ……        
label2:          {   ……
label3: {   ……
           break label2;
           ……
}
          }

package com.four;

/**
 * break練習
 * @author sujinran
 */
public class TestBreak {
    public static void main(String args[]) {
        for (int i = 0; i < 10; i++) {
            if (i == 3)
                break;
            System.out.println(" i =" + i);
        }
        System.out.println("Game Over!");
    }
}
continue 語句:
continue語句用於跳過某個循環語句塊的一次執行 

continue語句出現在多層嵌套的循環語句體中時,可以通過標籤指明要跳過的是哪一層循環 

package com.four;

/**
 * continue練習
 *
 * @author sujinran
 */
public class ContinueTest {
    public static void main(String args[]) {
        for (int i = 0; i < 100; i++) {
            if (i % 10 == 0)
                continue;
            System.out.println(i);
        }
    }
}

注:

break只能用於switch語句和循環語句中。

continue 只能用於循環語句中。
二者功能類似,但continue是終止本次循環,break是終止本層循環。
break、continue之後不能有其他的語句,因爲程序永遠不會執行其後的語句。

標號語句必須緊接在循環的頭部。標號語句不能用在非循環語句的前面。


7.數組

數組是多個相同類型數據的組合,實現對這些數據的統一管理
數組中的元素可以是任何數據類型,包括基本數據類型和引用數據類型

數組屬引用類型,數組型數據是對象(object),數組中的每個元素相當於該對象的成員變量


一維數組的聲明方式: 
type  var[] 或 type[]  var;
例如:
   int a[];
       int[] a1;
   double  b[];
   Mydate[] c;  //對象數組

Java語言中聲明數組時不能指定其長度(數組中元素的數), 例如: int a[5];    //非法

動態初始化:數組聲明且爲數組元素分配空間與賦值的操作分開進行
int[] arr = new int[3];
arr[0] = 3;
arr[1] = 9;
arr[2] = 8;
靜態初始化:在定義數組的同時就爲數組元素分配空間並賦值。
int a[] = new int[]{ 3, 9, 8};

int[] a = {3,9,8};





發佈了40 篇原創文章 · 獲贊 27 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章