------- android培訓、java培訓、java學習型技術博客、期待與您交流! ----------
二、java語言基礎組成
1 關鍵字
其實就是某一個計算機語言對指定的單詞賦予了特殊的含義。
特點:體現上都是英文小寫。
2 標識符
就是在程序中起的名字。
包含:0~9,a~z,$,_。
注意:1、數字不可以開頭。
2、名稱不可以使用關鍵字。
3 註釋
作用1: 註解,說明,解釋。
表現形式三種:
1、單行註釋。行的開頭加 “//”
2、多行註釋。有開始有結束 /* 註釋的內容 */
3、java中特有的註釋,文檔註釋。/** 註釋內容*/ 通常用於對程序進行說明,並可以建立說明文檔。
作用 2:用於調試程序
註釋的細節:註釋的嵌套
單行註釋中可以有單行,多行註釋。
多行註釋中可以有單行註釋。
4 常量和變量
常量:表示不能改變的數值。
1、整數常量,所有整數。表現形式有:二、八(以0開頭)、十、十六(以0x開頭)進制。
2、小數常量,所有小數。
3、布爾型常量,較爲特有,只有兩個數值,true、false。
4、字符常量,將一個數字、字母或者符號用單引號(‘’)標識 。
5、 字符串常量,將一個或者多個數字、字母或者符號用雙引號(“”)標識 。
6、null常量,只有一個數值就是null。
負數轉換:對應的正數的二進制取反+1,。
變量:就是將不確定的數據進行存儲。
也就是需要在內存中開闢一個空間。
定義變量的格式:數據類型 變量名 = 初始化值
數據類型:
類型轉換
制動類型提升
強制轉換,即b=(byte)(b+2)
5 運算符
1、算術運算符:+、-、*、/、%(模,取餘)+(連接符,用於連接字符串)++自增,——自減
對於a自增
++a 即 a=a+1
當自增參與運算的時候,++在前在後市有區別的,在前自增後參與運算。
2、賦值運算符: =、+=、-=、*=、/=、%=
3、比較運算符:>、<、>=、<=、==、!=
該運算符運算完的結果要麼是true,要麼是false。
4、邏輯運算符(用於連接boolean類型的表達式)
&、|、&&、||、^(異或)、!非
&&:當左邊爲false時,右邊不參與運算
||:當左邊爲true時,右邊不參與運算
^:兩邊結果一致。運算結果是false,兩邊結果不一致。運算結果是true。
5、位移運算符
左移:<<
右移:>>
無符號右移:>>>
&、|、^、~(反碼)
6、三元運算符
int x=1;y
y = x + 1?100:200 真100,假200。
6 語句
程序流程控制:順序結構、判斷結構、選擇結構、循環結構。
1、判斷結構
if 語句,三種格式:
1> if (條件表達式)
{
執行語句;
}
2> if (條件表達式)
{
執行語句;
}
else
{
執行語句;
}
3>if (條件表達式)
{
執行語句;
}
else if
{
執行語句;
}
……
else
{
執行語句;
}
if else 結構間歇格式:變量 = (條件表達式)?表達式1:表達式2;
三元運算符
好處:可以簡化 if else 代碼。
弊端:因爲是一個運算符,所有運算完必須有一個結果。
2、選擇結構
swith 語句 格式:
swith(表達式)//byte、short、int、char
{
case 取值1:
執行語句;
break;
case 取值:2
執行語句;
break;
case 取值3:
執行語句;
break;
default:
執行語句;
break;
}
if和swith 語句很像具體用那麼語句?
如果判斷的具體數值不多,而是符合byte short int char這四種類型,雖然兩個語句都可以使用,建議使用swith語句,因爲效率稍高。
其他情況,對區間判斷,對結果爲boolean類型判斷,使用if, if 的使用範圍更廣。
3、循環結果
代表語句:while、do while、for
while語句格式
while(條件表達式)
{
執行語句(循環體);
}
do while語句格式
do
{
執行語句(循環體);
}
while(條件表達式);
do while 循環體至少執行一次。
for(初始化表達式;循環條件表達式;循環後的操作表達式)
{
執行語句(循環體);
}
for 語句
1、變量有自己的作用域,對於for來講,如果將用於控制循環的增量定義在for語句中,那麼該變量只在for語句內有效,
for語句執行完畢,該變量在內存中被釋放。
2、for和while 可以進行互換,如果需要定義循環增量,用for更爲合適。
語句嵌套形式,其實就是語句中還有語句
“\”的應用
製表符\t 換行符 \n 退格鍵 \b 按下回車鍵\r 轉移符 \
其他流程控制語句
break(跳出),continue(繼續)
break語句:應用範圍:選擇結構和循環結構
continue語句:應用與循環結構
注:1、break和continue語句的作用範圍
2、break和continue單獨存在時,下面可以有任何語句,因爲都執行不到。
7 函數
定義:函數就是定義在類中的具有特定功能的一段獨立小程序,也稱方法。
函數的格式:
修飾符 返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數2)
{
執行語句;
return 返回值;
}
修飾符:通過關鍵字對被修飾的內容加上指定的含義。
返回值類型:這要先明確什麼是返回值,函數就是一個功能,通常功能結束後,都有一個結果,而這個結果就是返回值。
函數名:函數就是一個代碼區間,這個區間要被使用,必須有個名字,這就是函數名。
參數:就是參加運算的數據。
return 有結束函數的功能。
功能技巧:1、明確該功能的結果是什麼?
2、明確該功能中是否需要未知內容參與運算。
當函數運算後,沒有具體的返回值時,這是返回值類型用一個特殊的關鍵字來標識,該關鍵字就是void,
void:代表的是函數沒有具體返回值的情況。
函數的重載(overload)
什麼時候用重載?
當定義的功能相同,但參與運算的未知內容不同,那麼這時就定義一個函數名稱以表示其功能,方便
閱讀,而通過參數列表的不同來區分多個同名函數
8 數組
概念:同一種類型數據的集合,其實數組就是一個容器。
特點:1、這些數據必須是同一類型。2、存儲時必須明確元素的個數。
格式1(非靜態):元素類型 [ ] 數組名 = new 元素類型 [ 元素個數或數組長度];
數組創建後都有默認初始化值,如int類型,默認值爲0。
例:int [ ] arr = new int [2 ] ;
內存結構
棧:數據使用完畢,會自動釋放。
堆:堆允許程序在運行時動態地申請某個大小的內存(實體包括數組和對象,用new創建)。
格式2(靜態):元素類型 [ ] 數組名 = new 元素類型 [ ]{元素,元素,……};
元素類型 [ ] 數組名 = {元素,元素,……};
常見異常
角標越界異常:arrayIndexOutOfBoundsException
空指針異常:NullpointerException
數組的操作:獲取數組中的元素,通常會用到遍歷。例如
int [ ] arr = new int [3];
數組中有一個屬性可以直接獲取到數組元素個數。length
使用方式:數組名稱.length
獲取最大值(最小值)
public static int getMax(int [ ] arr)
{
int max = 0;
for (int x = 1; x <arr.length ; x++)
{
if (arr[x] >arr[max])
max = x;
}
return arr[max];
}
數組選擇排序
public static void selectSort( int [ ] arr)
{
for (int x = 0; x < arr.length-1; x++)
{
for (int y = x+1; y < arr.length; y++)
{
if (arr[x] >arr[y])
{
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
冒泡排序
public static void bubbleSort( int [ ] arr)
{
for (int x = 0; x < arr.length-1; x++)
{
for (int y = 0; y < arr.length-x-1; y++)
{
if (arr[x] <arr[y])
{
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
java中的排序, Arrays.sort (arr);
數組元素的位置置換
public static void swap( int [ ] arr,int a,int b)
{
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
數組的查找
pubic static int getIndex (int[] arr ,int key)
{
for(int x = 0; x <arrr.length; x++)
{
if (arr[x]==key)
return x ;
}
return -1;
}
折半查找,必須數組是有序的
pubic static int halfsearch(int[ ] arr ,int key)
{
int min, max ,mid;
min = 0;
max = arr,length-1;
mid = (max + min)/2;
while (arr[mid]!=key)
{
if (arr[mid] > key)
min = mid +1;
esle if (key < arr [mid])
max = mid -1;
if (min>max)
return -1;
mid = (max + min )/2;
}
return -1;
}
二維數組
格式1:int [ ][ ] arr = new int [3] [4];
格式2:int [ ][ ] arr = new int [3] [ ];
引用變量初始化值都爲null。
------- android培訓、java培訓、java學習型技術博客、期待與您交流! ----------