java基礎語法


Java基礎語法:

1、關鍵字

就是某種語言賦予了特殊含義的單詞。

2、標示符:

在程序中自定義的一些名稱。有26個英文字母大小寫、數字:0—9符號:_$組成

注意

    1),數字不可以開頭。

    2),不可以使用關鍵字。

3、常量與變量:

常量:是在程序中的不會變化的數據。

Java中常量的分類:

1,整數常量。所有整數

2,小數常量。所有小數

3,布爾型常量。較爲特有,只有兩個數值。truefalse。

4,字符常量。將一個數字字母或者符號用單引號(' ' )標識。

5,字符串常量。將一個或者多個字符用雙引號標識。

變量: 內存中的一個存儲區域該區域有自己的名稱(變量名)和類型(數據類型)該區域的數據可以在同一類型範圍內不斷變化

爲什麼要定義變量:用來不斷的存放同一類型的常量,並可以重複使用

 使用變量注意:變量的作用範圍(一對{}之間有效)

初始化值

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


注:格式是固定的,記住格式,以不變應萬變。

理解:變量就如同數學中的未知數。

作用:方便於運算。因爲有些數據不確定。所以確定該數據的名稱和存儲空間。

特點:變量空間可以重複使用。

變量空間的開闢需要什麼要素呢?

    1,這個空間要存儲什麼數據?數據類型。

    2,這個空間叫什麼名字啊?變量名稱。

    3,這個空間的第一次的數據是什麼? 變量的初始化值。

變量的作用域和生存期:

變量的作用域:

    作用域從變量定義的位置開始,到該變量所在的那對大括號結束;

生命週期:

    變量從定義的位置開始就在內存中活了;

    變量到達它所在的作用域的時候就在內存中消失了;

數據類型:

    1):基本數據類型:byte、short、int、long、float、double、char、boolean

    2):引用數據類型: 數組、類、接口。

級別從低到高爲:byte,char,short(這三個平級)-->int-->float-->long-->double

自動類型轉換:從低級別到高級別,系統自動轉的;

強制類型轉換:什麼情況下使用?把一個高級別的數賦給一個別該數的級別低的變量;

轉義字符的意義:


4、運算符號:

   ( 1)、算術運算符。

        + - * / %   %:任何整數模2不是0就是1,所以只要改變被模數就可以實現開關運算。

        +:連接符。

        ++,--

   ( 2)、賦值運算符。

        =  += -= *= /= %=

    (3)、比較運算符。

        特點:該運算符的特點是:運算完的結果,要麼是true,要麼是false。

   ( 4)、邏輯運算符。

        &  | ^  !   &&  ||

        邏輯運算符除了!  外都是用於連接兩個boolean類型表達式。

        &: 只有兩邊都爲true結果是true。否則就是false。

        |:只要兩邊都爲false結果是false,否則就是true

        ^:異或:和或有點不一樣。

             兩邊結果一樣,就爲false。

             兩邊結果不一樣,就爲true.

具體事例參看如下:


        & 和 &&區別: & :無論左邊結果是什麼,右邊都參與運算。

                                     &&:短路與,如果左邊爲false,那麼右邊不參數與運算。

        | 和|| 區別:|:兩邊都運算。

                             ||:短路或,如果左邊爲true,那麼右邊不參與運算。

    (5)、位運算符:用於操作二進制位的運算符。

        &  |  ^

        <<  :其實就是乘以2的移動的位數次冪

 >> :就是除以2的移動的位數次冪。最高位補什麼由原有數據的最高位值而定。

 >>>(無符號右移)無論最高位是什麼,有以後,都用0補

練習:對兩個變量的數據進行互換。不需要第三方變量。(但一般在開發中是用第三方變量的,應爲比較直觀,容易理解

            int a  = 3,b = 5;-->b = 3,a = 5;

            a = a + b; a =8;

            b = a - b; b =3;

            a = a - b; a =5;

            a = a ^ b;//

            b = a ^ b;//b= a ^ b ^ b = a

            a = a ^ b;//a= a ^ b ^ a = b;

        高效的算出 2*8是用2<<3方法;


5,流程控制語句。

判斷、選擇、循環( If 、 switch  、do while 、  while  、for)

   這些語句什麼時候用?

              if else 結構 簡寫格式: 變量 = (條件表達式)?表達式1:表達式2;

三元運算符:
好處:可以簡化if else代碼。
弊端:因爲是一個運算符,所以運算完必須要有一個結果。

             if和switch語句很像
具體什麼場景下,應用哪個語句呢?
如果判斷的具體數值不多,而是符合byte short int char這四種類型。
雖然兩個語句都可以使用,建議使用swtich語句。因爲效率稍高,其他情況:對區間判斷,對結果爲boolean類型判斷,使                  用if,if的使用範圍更廣。

switch(變量){

   case 值:要執行的語句;break;

   …

   default:要執行的語句;

}

 工作原理:用小括號中的變量的值依次和case後面的值進行對比,和哪個case後面的值相同了

           就執行哪個case後面的語句,如果沒有相同的則執行default後面的語句;

 細節:

        1):break是可以省略的,如果省略了就一直執行到遇到break爲止;

        2):switch 後面的小括號中的變量應該是byte,char,short,int四種類型中的一種;

        3):default可以寫在switch結構中的任意位置;

while循環:先判斷條件,只有條件滿足才執行循環體。
do while循環: 先執行循環體,在判斷條件,條件滿足,再繼續執行循環體。

簡單一句話:do while:無論條件是否滿足,循環體至少執行一次。

對於for循環、1.變量有自己的作用域。對於for來講:如果將用於控制循環的增量定義在for語句中。那麼該變量只在for語句內有效。

for語句執行完畢。該變量在內存中被釋放。
2,for和while可以進行互換。如果需要定義循環增量。用for更爲合適
總結:
什麼時候使用循環結構?當要對某些語句執行很多次時,就使用循環結構。


break:作用於switch ,和循環語句,用於跳出,或者稱爲結束。

break語句單獨存在時,下面不要定義其他語句,因爲執行不到,編譯會失敗。當循環嵌套時,break只跳出當前所在循環。要跳出嵌套中的外部循環,只要給循環起名字即可,這個名字稱之爲標號

continue:只作用於循環結構,繼續循環用的。

作用:結束本次循環,繼續下次循環。該語句單獨存在時,下面不可以定義語句,執行不到。

關於for循環的幾個經典小練習:

/*
1,獲取1~10的和,並打印。

*/

<strong>class  ForTest2
{
	public static void main(String[] args) 
	{
		/*
	
		//1,定義變量用於存儲不斷變化的和。
		int sum = 0;
		//2,定義變量,記錄住不斷變化的被加的數。
		int x = 1;
		//3,定義循環,重複加法的過程。
		while(x<=10)
		{
			sum = sum + x;
			x++;


		}
		System.out.println("sum="+sum);
		*/
		/*
		循環注意:
		一定要明確哪些語句需要參與循環,哪些不需要。
		*/
		/*
	  0+1
		1+2
		 3+3
		   6+4
		   */
		//用for來體現。
		int sum = 0;
		for(int x=0; x<=10; x++)
		{
			sum += x;
			
		}
		System.out.println("for sum = "+sum);

		/*
		其實這就是累加思想。
		原理:通過變量記錄住每次變化的結果。
		通過循環的形式。進行累加動作。
		*/
	}
}</strong>

/*
練習:3000米長的繩子,每天減一半。問多少天這個繩子會小於5米?不考慮小數。

*/
class  ForTest4
{
	public static void main(String[] args) 
	{
		int day = 0;
		for(int x=3000; x>=5; x/=2)
		{
			day++;
		}
		System.out.println("day="+day);

		/*
		for(int x=3000; x>=5; day++)
		{
			x = x/2;
		}
		*/
	}
}

class  ForForTest
{
	public static void main(String[] args) 
	{
		/*
		
		*
		**
		***
		****
		*****
		
		不是規律的規律:
		尖朝上,可以改變條件。讓條件隨着外循環變化。

		尖朝下,可以初始化值,讓初始化隨着外循環變化。
		
		*/

		for (int x=0; x<5 ;x++ )
		{
			for (int y=0 ; y<=x ; y++ )
			{
				System.out.print("*");
			}
			System.out.println();
		}

		System.out.println("----------------------");

		/*
		
		1
		12
		123
		1234
		12345

		*/

		for (int x=1; x<=5; x++)
		{ 
			for (int y=1; y<=x;y++ )
			{
				System.out.print(y);
			}
			System.out.println();
		}

		System.out.println("----------------------");


		/*
		
		九九乘法表
		1*1=1
		1*2=2 2*2=4
		1*3=3 2*3=6 3*3=9

		
		*/

		for (int x=1; x<=9 ; x++)
		{
			for (int y=1; y<=x; y++)
			{
				System.out.print(y+"*"+x+"="+y*x+"\t");
			}
			System.out.println();
		}

	}
}



6,函 數:爲了提高代碼的複用性,可以將其定義成一個單獨的功能,該功能的體現就是java中的函數。函數就是體現之一。

java中的函數的定義格式:

    修飾符 返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數1,…){

       執行語句;

       return 返回值;

    }

當函數沒有具體的返回值時,返回的返回值類型用void關鍵字表示。

如果函數的返回值類型是void時,return語句可以省略不寫的,系統會幫你自動加上。

return的作用:結束函數。結束功能。

 

如何定義一個函數?

    函數其實就是一個功能,定義函數就是實現功能,通過兩個明確來完成:

    1)、明確該功能的運算完的結果,其實是在明確這個函數的返回值類型。

    2)、在實現該功能的過程中是否有未知內容參與了運算,其實就是在明確這個函數的參數列表(參數類型&參數個數)。

函數的作用:

1)、用於定義功能。

2)、用於封裝代碼提高代碼的複用性。

注意:函數中只能調用函數,不能定義函數。

主函數:

    1)、保證該類的獨立運行。

    2)、因爲它是程序的入口。

    3)、因爲它在被jvm調用。

 

函數定義名稱是爲什麼呢?

答:1)、爲了對該功能進行標示,方便於調用。

    2)、爲了通過名稱就可以明確函數的功能,爲了增加代碼的閱讀性。

 

重載的定義是:在一個類中,如果出現了兩個或者兩個以上的同名函數,只要它們的參數的個數,或者參數的類型不同,即可稱之爲該函數重載了。

什麼時候用重載?
當定義的功能相同,但參與運算的未知內容不同。
那麼,這時就定義一個函數名稱以表示起功能,方便閱讀,而通過參數列表的不同來區分多個同名函數。

如何區分重載:當函數同名時,只看參數列表。和返回值類型沒關係。


 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章