常量與變量
java語言是強類型語言,對于每一種資料都定義了明确的具體資料類型,在記憶體中配置設定了不同大小的記憶體空間。
在java中,整數預設為int型,是以:byte b=3; b=b+2; 第一句不錯,第二句會出錯。因為java是強類型語言。應改為:byte b=3; b=(byte)(b+2);
小數預設為double型,是以:float f=2.3; 會出錯。應為:float f=2.3f;
布爾類型值為:true和false
boolean b1=true; boolean b2=false;
運算符
算術運算符 如:+,-
指派運算符 如:=,+=
比較運算符 如:==,!=,<,>,
邏輯運算符 如:&,|,!,^(異或),&&,||
位運算符 如:<<,>>,>>>,&,|,^,~
三元運算符 為:(條件表達式)?x:y
算術運算符
字元串資料和任何資料使用“+”相連接配接,最終都會變成字元串。
轉義字元
通過'\'來轉變後面字母或者符号的含義。如:\n:換行;\b:倒退,相當于backspace。\r:Enter鍵;\t:制表符,相當于tab鍵。
在linux中換行由一個字元表示:\n
在windows中,換行,回車符是由兩個字元來表示:\r\n
在dos裡,可直接識别\n
char c='我'; 這樣在java中是可以的,因為char為兩個位元組,而一個漢字也為兩個位元組。
指派運算符
short s=4; //沒有錯,4為整型,s為short型,隻要右側數在short的範圍内,指派運算符會自動完成類型轉換。
s=s+5; //會出錯,因s+5時,s會轉換變為int型,與int型5相加,結果為int型,此時将int型賦給short型變量s,會裝不下,易精度丢失,是以會出錯。
s+=5; //不會出錯,因為+=是一個指派運算符,負責指派,内部會自動轉換。
邏輯運算符
作用:用于連接配接boolean類型的表達式
&和&&的差別:
&:無論左邊是true還是false,右邊都運算。
&&:當左邊為false時,右邊不運算了。
| 和|| 的差別:
|:兩邊都參與運算。
||:當左邊為true,右邊不運算。
位運算符
>>: 最高位補什麼,由原有資料的最高位決定,
如果最高位為0,右移後,用0補;
如果最高位為1,右移後,用1補。
>>>: 無論最高位是什麼,右移後,都用0補。
3<<2; 表示左移2位,右邊補0,結果為3*4=12;
6>>2; 表示右移2們,左邊補0,結果為6/4=1;
-6>>2; 表示左邊最高位補什麼,和原來最高位的值相同。
取反:~6=-7;
7^4^4=7; 一個數異或同一個數兩次,結果還是那個數。
程式流程控制
順序結構
判斷結構 如: if語句
選擇結構
循環結構
if...else語句與三元運算符的差別
三元運算符,
好處:可以簡化if...else代碼
弊端:因為隻要是運算符,運算完必須要有一個結果,而輸出語句是輸出到終端,沒有結果。
數組
數組定義:
格式1:
元素類型[] 數組名=new 元素類型[元素個數或數組長度]
如:int[] x= new int[3];
數組名x不是int型,為數組類型,即引用類型。
棧區:資料使用完畢,會自動釋放。
堆區:1. 如new配置設定的空間,由垃圾回收機制釋放,不需程式員自己釋放(優于c++)。2. 堆記憶體中配置設定好的記憶體有預設值,int型預設為0,float預設為0.0,double預設為0.0,布爾類型預設為false。
格式2,靜态初始化:
元素類型[] 數組名 = new 元素類型[]{元素,元素,... ...}
如:int[] arr = new int[]{1,2,3,4}; 或 int[] arr = {3,5,1,7}
冒泡排序:相鄰的兩個元素進行比較,如條件符合換位,第一圈比較完,最值出現在最後位。
排序算法中,效率最高的是希爾排序