一、變量
1、Java命名規範:
1.駝峰命名法 studentName (不報錯)
2.辨別符由字母數字和特殊符号組成(報錯)
注意:不能以數字開頭
特殊符号僅僅局限為:¥ $ _
3.類名的首字母要大寫(不報錯)
4.不能使用關鍵字來命名(報錯)
5.不建議使用中文來命名(不報錯)
2、變量:可以改變的量(資料)。
1、本質:是一個存儲空間,存儲的是使用者需要用到的資料。
2、為什麼要使用變量的存在?
通過變量來存儲使用者需要的資料,程式通過操作變量來間接的達到操作資料的目的。
比直接操作資料更加友善和安全。
3、如何去使用變量?
文法: 資料類型 變量名;---------聲明一個變量
初始化一個變量:聲明 + 指派。 int a = 1;
*經典面試題:聲明一個變量的同時有沒有開辟存儲空間?
聲明一個變量的同時開辟了存儲空間。
因為:變量存在的意義就是存儲資料,如果沒有開辟存儲空間的話,該變量不能被指派。
該變量将沒有意義。
*經典面試題:沒有被初始化的變量能不能被直接通路?
不能,否則會報編譯錯誤。
二、資料類型
1、Java中的資料類型: 基本資料類型 、引用類型
Java中的基本資料類型8種:
整數類型:byte(位元組型)< short(短整型)< int(整形) < long(長整型)
浮點型(小數類型):float double
float(單精度浮點型):
double(雙精度浮點型)常用:
字元型:char
char類型可以存儲一個中文漢字,占2個位元組。
布爾型(開關類型):boolean
引用類型:JDK類庫自帶的,使用者自定義的。
2、字元串的連結:
+:連接配接符的使用,字元串與字元串之間的+是連接配接符
字元串旁邊的+都是連接配接符
3、資料類型的轉換:
1、byte short char 在進行數學運算的時候,先自動轉化為int類型的整數,然後再進行數學運算。
2、在Java中,所有整數的直接量 都預設是int類型。
三、運算符
1、運算符:
指派運算符: =
數學運算符:+ - * / %
進階指派運算符:+= -= *= /= %=
關系運算符:> < >= <= == != 運算的最終結果是bool類型
邏輯運算符:&& !
位移運算符:>> <<
三目運算符:表達式1 ?表達式2 : 表達式3
*經典面試題:&& 與 & 的異同點:
相同點:
二者都滿足 見false為 false。表達式1 && 表達式2,表達式1和表達式2
有任意一個為false,整體的結果為false,二者都為true,結果才為true。
不同點:
&& :當表達式1為false時候,表達式2不執行。
& : 無論表達式1是true,還是false,表達式2都依然執行。
||:短路或 &&:短路與
四、結構語句:
1、條件控制
if(表達式){
語句塊1;
}else{
語句塊2;
}
如果條件表達式的結果為true,執行語句塊1,否則執行語句塊2。
if(表達式){
}else if(表達式){
}else{
}
2、多分支結構(選擇分支結構)switch case
switch(擷取值){//擷取值:整數//1.6之後可以字元串
case 值1:
語句塊1;
break;
case 值2:
語句塊2;
break;
...
default:
語句塊n;
}
3、循環結構
1、while循環
文法結構:
while(循環條件){
循環體;
}
循環條件:可以是一個布爾類型的表達式,也可以是布爾類型的值
while循環特點:
不限次數的循環,滿足某一條件的時候,跳出循環。
while循環嵌套:
while(){//外循環
while(){
//内循環}
}
2、do while循環
文法結構:
do{
循環體;
}while(循環條件);
//特點:先執行一次,然後再進行判斷是否滿足循環。
3、for循環
文法結構:
for(循環變量;循環條件;循環變量變化方式){
循環體;
}
4、跳出循環
break:跳出目前循環。
continue:終止本次循環,進入下次循環。
return:直接結束所有循環(結束目前循環所在的方法,return後面的内容,都不再執行)
五、數組
1、建立數組(數組的初始化)有兩種方式: 靜态建立,動态建立
靜态建立:建立數組的同時,開辟存儲空間,且給存儲空間指派。
int [] arr {1,2,3,4,5};
動态建立:資料類型 [] 數組名 = new 資料類型[數組長度]
ex: int [] arr = new int [4];
2、數組的複制:
1.假複制
2.數組元素的複制:System.arraycopy(源數組 ,源數組的起始位置 ,目标數組 ,目标數組的起始位置,複制的元素個數);
3.數組的複制:Arrays.copyOf(源數組, 長度);
4.修改數組的長度
3、數組的排序:
Arrays.sort(數組名);
六、方法
1、文法結構:
修飾符 static 傳回值類型 方法名(參數清單){
方法體;
}
2、含義:
傳回值類型:
資料類型: 基本資料類型 引用類型
關鍵字:void
方法名:符合Java的命名規範
參數清單:可以有0個或多個參數
方法體:是方法的具體執行内容
七、面向對象
1、特征
封裝、繼承、多态
2、構造方法(函數)/構造器:
定義:方法名和類名相同,且沒有傳回值類型的方法,叫做構造方法。
無參構造方法:建立對象
有參構造方法:建立對象 傳值
作用:1.建立對象。
2.傳值。
*經典面試題:面向對象的特征
封裝、繼承、多态
3、類和對象
類(類型):是具有相同特性和行為的對象的抽象。//Person
對象:是類的一個代表(執行個體化)//類的執行個體化 //Person中的某一個人 (名字 學号 年齡)
對象可以是抽象的,也可以是非抽象的。
一切皆為對象。//能看到的,看不到的(空氣)
4、繼承 關鍵字:extends
子類 繼承 父類:Son extends Father
子類可以繼承(擁有)父類可被繼承的功能和屬性(私有化除外),
同時還可以建立自己的功能和屬性。
注意:一個類隻能 繼承一個父類。
在Java當中,繼承關系是單繼承關系。
Object是所有類的父類。(頂級父類)//預設繼承
5、多态:
是同一個行為具有不同表現形式的能力。(同一種事物的不同表現形式),多展現在方法上面。
*經典面試題:實作多态的兩種機制是什麼?并分别進行解釋說明。
重載和重寫
重載:在同一個類當中,方法名相同,參數清單不同,叫做重載。
重寫(覆寫):在繼承關系當中,方法簽名相同(方法名和參數清單都相同),方法體不同,叫做重寫。
6、向上造型:父類聲明子類對象。
父類聲明子類對象:ex:Father s = new Son();
該對象(S)擁有的屬性和方法都是父類的。但是當調用子類重寫父類的方法時,
編譯期間執行的是父類的方法,運作期間執行的是子類的方法。
7、this、super
this關鍵字:指代目前對象。
this(參數清單):可以調用本類裡面的其他構造方法,具體調用哪個構造方法,
根據this方法中的參數清單來确定。
特殊情況:this方法隻能放在構造方法的第一行。
super:super指代父類的對象。
super方法,可以調用父類的構造方法,根據super方法的參數清單确定具體調用哪一個構造方法
*經典面試題:this()和super()可不可以同時出現?
不能。因為this()和super()都必須放在構造方法的第一行。有沖突,二者不能同時出現
8、抽象:
關鍵字:abstract
抽象類:用abstract修飾的類叫做抽象類。
抽象方法:用abstract修飾的方法叫做抽象方法。
能夠定義(存儲)抽象方法的類一定是抽象類。√
抽象類裡面一定要有抽象方法。×
9、接口:
接口是一個特殊的抽象類,接口中的方法都是抽象方法,和常量。(解決類單一繼承問題)
關鍵字:interface
類和接口的關系是實作,類可以實作接口。
10、final:
final修飾變量,不能被更改
final修飾的方法不能被重寫
final修飾的類:不能被繼承
static final配合修飾的是常量
String類被final修飾
八、線程
建立線程的兩種方式:繼承Thread類、實作Runnable接口
線程的生命周期:
建立線程(兩種方式)----就緒狀态(start方法,啟動線程)-----運作狀态(執行run方法)--
阻塞(休眠)狀态---死亡狀态(線程結束)
九、圖形使用者界面
public class JFrameTest {
/**
* 建立一個800×400的窗體,并設定背景顔色。
*/
public static void main(String[] args) {
// 1、建立一個窗體(JFrame)的對象。
JFrame frame = new JFrame();
// 3、設定窗體的寬高為800×400px。
frame.setSize(600, 400);
// 4、設定窗體的坐标位置居中。 frame.setLocation(200, 100);
frame.setLocationRelativeTo(null);
// 5、設定預設關閉按鈕功能(關閉界面的同時結束程式)。
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 6、設定窗體的大小不可被更改。
frame.setResizable(false);
// 7、取消窗體邊框。
frame.setUndecorated(true);
/*// 8、設定窗體的背景顔色。
frame.setBackground(Color.BLACK);*/
// 8、建立一個面闆對象panel。
JPanel panel = new JPanel();
// 9、設定面闆顔色。(自制/選擇)
panel.setBackground(new Color(182,10,200));//panel.setBackground(Color.BLACK);
// 10、窗體添加面闆。
frame.add(panel);
// 2、設定窗體可見。
frame.setVisible(true);
}
}