_Java基礎_Java語言基礎組成(上)

Java語言基礎組成(上) 

  就像學英語一樣,首先要學習英語的每個音標、基本單詞,然後再深入的學習英語語法和句子。java也是一門語言,是一門人與計算機交流的語言。Java的基礎組成部分就像英語中的音標、基本單詞一樣,是基礎中的基礎。爲了能更好的深入學習以後的內容,java基礎組成部分內容一定要學好。具體分析如下:

一、關鍵字

定義:關鍵字就是被java賦予特定含義的單詞。

注意:關鍵字所有字母都是小寫的。

隨着以後學習的深入,會具體學習每個關鍵字的用法,在此只列舉少量的關鍵字,不做過多的分析:

用於定義訪問權限修飾符的關鍵字:public、protected、private。

用於定義類,函數,變量修飾符的關鍵字:abstract、final、static。

用於定義類與類之間關係的關鍵字:extends、implements。

用於定義建立實例及引用實例,判斷實例的關鍵字:new、this、super、instanceof。

用於異常處理的關鍵字:try、catch、finally、throw、throws。

用於包的關鍵字:package、import。

二、標識符

定義:在程序中人爲定義的名稱,由26個英文字母、0—9數字、_$組成。

合法標識符的規則:

(1)、不可以數字開頭,不可以出現非法的字符;

(2)、不可以與java中的關鍵字相同。

注意:在java中,爲了提高程序的閱讀性,應該儘量定義一些一看就明白什麼意思的標識符,儘量不要寫成a;b;c;x;y;z之類。

Java中的名稱規範:

包名:多單詞組成時所有字母都小寫。xxxyyyzzz

類名接口名:多單詞組成時,所有單詞的首字母大寫。XxxYyyZzz

變量名和函數名:多單詞組成時,第一個單詞首字母小寫,第二個單詞開始每個單詞首字母大寫。xxxYyyZzz

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

三、常量和變量

常量定義:表示不可以再變化的數值,定值。

具體可以分爲:

(1)、整數常量

(2)、浮點型常量

(3)、布爾型常量(true、false)

(4)、字符常量:用單引號標識

(5)、字符串常量:用雙引號標識

(6)、null常量:只有一個值null。

變量定義:變量表示內存中的一個存儲區域,值是可以變化的。

變量的定義格式:數據類型變量名 = 初始值;

由於java語言是一種強類型的語言,對於每一個數據都必須明確它的數據類型,只有明確了數據類型,java虛擬機(JVM)才知道怎樣去給數據分配內存,具體的數據類型如

圖2.1所示:

圖2.1

Java語言中數據的進制可以分爲四種:

(1)、十進制:逢10進1,這是我們在生活中最常用的進制數;

(2)、八進制:逢8進1,以0開頭;

(3)、十六進制:逢16進1,以ox開頭,0—9,A—F;

(4)、二進制數:逢2進1,只有0,1兩個基數,計算機中存儲的就是二進制數。負數的二進制數在內存中用補碼錶示。

規律:同樣一個數,進制越大,表現形式越短!

進制之間的轉換:

十進制轉成二進制:除以2取餘數;

二進制轉成十進制:乘以2的冪;

十進制轉成八進制:除以8取餘數;

八進制轉成十進制:乘以8的冪;

八進制轉十六進制:以2進製爲中間橋樑,三位二進制數表示一位八進制數,四位二進制數表示一位十六進制數。

在程序中,有特定的方法爲我們實現進制之間的轉換,但原理我們要懂。

package itheima.day02;
/*演示進制之間的轉換*/
public class NumberTranslation {
	public static void main(String[] args) {
		int number = 11;
		System.out.println(Integer.toBinaryString(number));//1011
		System.out.println(Integer.toOctalString(number));//13
		System.out.println(Integer.toHexString(number));//b
	}
}

類型轉換:類型轉換可以分爲自動類型轉換和強制類型轉換兩種,自動類型轉換是系統自動幫助我們轉換的,不必操心;強制類型轉換就要自己手動轉換了。

表達式的數據類型自動提升規律:

(1)、所有的byte型、short型和char的值將被提升到int型。

(2)、如果一個操作數是long型,計算結果就是long型;

(3)、如果一個操作數是float型,計算結果就是float型;

(4)、如果一個操作數是double型,計算結果就是double型。

package itheima.day02;
/*演示類型之間的轉換問題*/
public class TypeChange {
	public static void main(String[] args) {
		byte b = 3;
		int x =4;
		float f =(float)1.2;//默認是double類型的,強轉
		x = x+b;//自動提升爲int類型
		//b  = b+3;//報錯,因爲b+3轉爲了int類型,這時不可以直接付給byte類型
		b = (byte)(b+3);
		f = x +f;//如果一個操作數是float型,計算結果就是float型;
		System.out.println(x);//7
		System.out.println(f);//8.2
	}
}

四、運算符

1、 算術運算符:如圖2.2所示:

圖2.2

要注意的問題在代碼裏面體現,這樣更加直觀,如下:

package itheima.day02;
/*演示算術運算符要注意的問題*/
public class Arithmetic {
	public static void main(String[] args) {
		int x =3623;
		int x1 =x/1000*1000;//3000,整數之間的除法運算,只保留整數部分,去掉小數部分
		int y = 7;
		int y1 = -7;
		System.out.println(x1);
		System.out.println(y%-2);//1,正負號只與被模的數有關,與模無關
		System.out.println(y1%2);//-1,正負號只與被模的數有關,與模無關
	}
}

2、 賦值運算符:

具體包括:= , +=,-=, *=, /=, %=。

要注意的問題我們用代碼體現,這樣更加直觀,如下:

package itheima.day02;
/*演示賦值運算符要注意的問題*/
public class Assignment {

	public static void main(String[] args) {
		int a,b,c;
		a = b =c =5;//連續賦值,可以
		
		short s = 2;
//		s =s +2;//編譯失敗,因爲s會被提升爲int類型,運算後的結果還是int類型。無法賦值給short類型。
		s +=2;//編譯通過,因爲+=可以自動類型轉換。
		System.out.println("a="+a+",b="+b+",b="+b+",c="+c);
		System.out.println("s="+s);
	}
}

3、 比較運算符:如圖2.3所示:

圖2.3

注意:

(1)、比較運算符的結果都是boolean型,也就是要麼是true,要麼是false。

(2)、比較運算符“==”很容易誤寫成“=”,需要特別注意。

4、 邏輯運算符:

邏輯運算符包括:

&:與運算;|:或運算;^:異或運算;!:非運算;&&:短路與;||:短路或。

規律:<<:相當於乘與2的倍數

>>:相當於除以2的倍數

移n位,就是對乘以或者除以2的n次冪。

5、 位運算符:

位運算符包括:<<:左移;>>:右移;>>>:無符號右移;&:與運算;|:或運算;^:異或運算。

下面以代碼形式體現位運算符的練習題:

package itheima.day02;
/*演示位運算*/
public class BitArithmetic {
	public static void main(String[] args) {
		/*需求:最有效率的方式算出2乘以8等於幾?2<<3;*/
		int x= 2;
		int y = 2<<3;//<<相當於乘以2的倍數
		System.out.println("x="+x+",y="+y);
		/*需求:對兩個整數變量的值進行互換(不需要第三方變量)*/
		x = x^y;
		y = x^y;
		x = x^y;
		System.out.println("x="+x+",y="+y);
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章