Java思維導圖
學習方法:
- 針對性學習
- 引導式學習
- 對比式學習
- 總結式學習
Java
簡介: 簡單性,物件導向,分散式,健壯性,安全性,平臺獨立與可移植性,多執行緒,多型性等.
Java
三大體系:JavaSE
,JavaEE
,JavaME
平臺標準版,平臺企業版,微星版.
Java
開發環境配置:下載jdk
,配置環境變數,JAVA_HOME
設定,安裝java
開發工具,CLASSPATH
設定,PATH
設定..
java
基礎語法:
**物件,**就是類的一個例項,有行為和狀態 **類,**就是模板,用來描述一個類物件的行為和狀態 **方法,**就是行為 **例項變數,**就是每個物件都有一些獨特的例項變數,物件的狀態由這些例項變數的值決定
基礎語法:
在Java
中大小寫敏感,就是說Hello
和hello
是不一樣的額.
**類名,**類名的首字母應該是大寫
**方法名,**所有方法名都應該是以小寫字母開頭
**原始檔名,**原始檔名必須和類名相同
**主方法入口,**所有程式通過publlic static void main(String []args)
方法執行
**識別符號:**類名,變數名以及方法名都被稱為識別符號
識別符號以字母,美元符號,或下劃線 關鍵字不能用作識別符號 識別符號是大小寫敏感的
修飾符分為訪問控制修飾符和非訪問控制修飾符
一,訪問,default
public
protected
private
二,非訪問,final
abstract
strictfp
**變數:**區域性變數, 類變數(靜態變數), 成員變數(非靜態變數)
**陣列,**陣列就是儲存在堆上的物件,可以保持多個同型別的變數
**列舉概念為,**列舉限制變數只能是預先設定好的值,列舉是可以用於單獨宣告或者宣告在類裡面,方法,變數,建構函式也可以在列舉中定義.
在java
中有大概50多個保留字吧,關鍵字是不能用於常量變數,和任何識別符號的名稱.
繼承是在java
中,一個類可以由其他類派生的,被繼承的類為超類,派生的類為子類,利用了繼承的方法,可以重用已經存在類的方法和屬性
**介面,**是作為物件間相互通訊的協議,介面是定義要用到的方法,方法的實現要在派生類
學習java
很多吧,有:
- 物件導向
- 多型
- 繼承
- 封裝
- 抽象
- 過載
- 方法
- 例項
- 物件
- 類
物件導向:
類是描述物件的行為和狀態 物件是類的一個例項,有行為和狀態 構造方法,新建物件時,執行的一個特殊方法,建立一個物件的時候,至少要呼叫一個構造方法,構造方法的名稱要和類同名,一個類可以有多個構造方法.
this
是用來引用當前物件,構造方法之間的呼叫.
方法的過載是同名不同參.
final
是用來修飾方法,變數,和類的,是最終不可以變的.
static
靜態, 靜態變數是類, 又叫類變數, 非靜態成員屬於例項, 靜態成員是通過類名直接呼叫, 而被static
修飾的成員將最優先載入到記憶體裡.
介面, interface
替代class
, implements
替代extends
介面中只能定義,公共的常量,抽象方法,內部類,內部介面.
**說到抽象類,**抽象類的作用是為子類提供通用程式碼,抽象類不能建立物件,在抽象類中,不一定有抽象方法,但是有抽象方法的類,一定是抽象類.
**說到內部類,**內部類是定義在類的內部,方法的內部或者是區域性程式碼中的類,就是叫內部類.
內部類: 靜態內部類, 非靜態內部類, 區域性內部類, 成員內部類, 匿名內部類.
物件導向的三大特性
- 繼承
- 多型
- 封裝
繼承的作用是程式碼重複使用,單繼承,一個類只能有一個父類,一個類,可以有多個子類.在java
中構造方法不繼承,靜態成員不繼承,沒有訪問許可權的成員不繼承.
**多型,**繼承是多型的基礎,沒有基礎就沒有多型,繼承屬於多型的一種,子類重寫父類的方法,父類引用變數指向子類物件. 子類轉父類,將一個父類的引用指向一個子類的物件,稱為向上轉型,自動型別轉換.
**封裝,**封裝的好處是用來隱藏類的實現,修改屬性的可見性來限制屬性的訪問.
Java
中的程式
宣告物件,有物件名稱和物件型別,使用關鍵字new
來建立物件,初始化物件,如Person person = new Person("dashu")
,通過建立物件進行訪問成員變數和方法,宣告和例項化物件,訪問其中的變數和方法.
在java
中,一個原始檔只能有一個public
類,可以有多個非public
類,原始檔的名稱和類名要一樣.java
包,包是用來對類和介面進行分類的.
資料型別
**八種基本型別,**六種數字型別,四種是整數型,兩種是浮點型, 另外的是字元型別, 還有布林型.
型別: byte
,short
,int
,long
, float
,double
, boolean
,char
引用資料型別,在java
中有物件和陣列都是引用資料型別,所有引用型別的預設值為null
.
基本資料型別
自動型別轉換,低到高,byte
,short
,char
->int
->long
->float
->double
.
強制型別轉換,高到底.
轉換:\n
換行,\r
回車,\b
退格,\s
空格等.
修飾符
修飾符是用來定義類,方法或是變數,java
中支援4種不同的訪問許可權,public
可以用於當前類,同一包內,子孫類,其他包,protected
可以用於當前類,同一包內,和子孫類,default
可以用於當前類,同一包類,private
只能用於當前類.
如果父類中宣告public
的方法在子類中也必須是public
,如果父類中protected
的方法在子類中宣告為protected
,也可以為public
,不能為private
.宣告為private
的方法,不能被繼承.
非訪問,static
修飾符,可以用來建立類方法和類變數.final
修飾符是用來修飾類,方法,變數.final
修飾的類不能被修飾,修飾的方法不能被繼承類重新定義.修飾的變數為常量是不可以被修改的.abstract
用於建立抽象類和方法.synchronized
和volatile
用於執行緒.
運算子要點
i++
是運算完加1,++1
先加1,後運算.
運算子:
&
都是1,結果為1,否則為0;
|
都是0,結果為0,否則為1;
^
相同的,結果為0,否則為1;
~
按位補運算子翻轉運算元的每一位,即0變成1,1變成了0.
迴圈結構
// do...while迴圈和while迴圈相似,但是do...while迴圈至少會執行一次
while(){
}
do{
}while();
for(初始化;布林表示式;更新){
}
for(宣告語句;表示式){
}
if語句
if...else語句
if...else if...else語句
switch語句
switch語句中的變數型別為:
byte, short, int, char
複製程式碼
封裝,拆箱,抽象類,
Math
類,String
類
StringBuffer和StringBuilder
StringBuffer的方法是執行緒安全的
StringBuilder相比較StringBuffer有優勢
Integer x = 2;
x = x + 2;
抽象類Number
Integer,Long,Byte,Double,Float,Short
Math類
xxxValue(),valueOf(),parseInt(),abs(),random()
int compareTo() 進行比較兩個字串
String concat() 將字串連線到此字串的結尾
boolean equals() 將字串與指定的物件比較
int length()
String[] split()
byte[] getBytes()
int hashCode()
int indexOf()
String substring()
String trim()
複製程式碼
陣列
宣告陣列變數,建立陣列,多維陣列
arr[] arr = {1,3,4,5,6,7,13};
for(int array : arr){
}
複製程式碼
時間
Date
和SimpleDateFormat
String toString()
long getTime()
int compareTo()
boolean before()
boolean after()
Date datenow = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss");
System.out.println(ft.format(datenow));
複製程式碼
流,檔案,
io
FileReader->InputStreamReader
FileWriter->OutputStreamReader
複製程式碼
// 建立目錄
mkdir()建立一個資料夾
mkdirs()
// 讀取目錄
isDirectory()判斷是否是目錄
list()列表檔案
delete()方法
複製程式碼
異常處理
Throwable->Error
Throwable->Exception
try/catch
throws/throw
finally
複製程式碼
集合框架
介面 Collection Map
List 為採用線性列表的儲存方式,長度可動態改變
Map 為鍵-值對的儲存方式,長度可動態改變
具體類
List Map
List -> ArrayList LinkedList
Map -> HashMap
演算法
Collections 提供了對集合實現遍歷等
Collection介面是最基本的容器介面
List介面 Set介面
List ->
LinkedList -> 底層資料結構為連結串列結構,查詢慢,增刪快
ArrayList -> 底層資料結構是陣列結構,查詢快,增刪慢,執行緒不同步
Vector 底層是陣列資料結構,執行緒同步,增刪改查都慢的
Set -> 不允許放入重複的元素,最多隻能保護一個null
HashSet類,底層基於HashMap,不保證Set的迭代順序和永久不變
Map
HashMap TreeMap
複製程式碼
泛型
public class Test<T>()
Test<Object> t = new Test<Object>();
泛型類:
public class Box<T>{
private T t;
public void add(T t){
this.t = t;
}
public T get() {
return t;
}
}
複製程式碼
型別萬用字元:值使用
?
代替具體的型別引數
多執行緒
**多執行緒就是多個執行緒進行?,**執行緒是一種輕量級的進行,程式具有獨立性,動態性,併發性,程式的獨立性在於擁有獨立資源,獨立的地址,無授權其他程式無法訪問.多執行緒代表性,繼承Thread
和實現Runnable
介面.
執行緒建立,new一個Thread,然後就緒執行start方法,開始執行,執行run方法,然後阻塞,接著死亡.run方法進行結束,呼叫stop方法.
複製程式碼
開始學習框架思路:
要學習框架的理念,目的,背景,優勢,功能,特點,看書,框架原理,做一些demo
等.
學習開源專案
學習開源專案,要學什麼,要掌握什麼,框架用法,功能一般有前臺和後臺.需要掌握的是前端和後端.這個專案的結果,設計思想,有什麼是我們要學習的,遇到的一些問題去如何實現.
實踐學習
javase
基礎,掌握語法基礎,io
流,多執行緒,反射,sql
繼承,增刪改查,和學習表關聯查詢,前端學習,html``css
,jsp
學習,框架學習spring
,springmvc
,springBoot
,mybatis
等.
如果看了覺得不錯
點贊!轉發!
達叔小生:往後餘生,唯獨有你 You and me, we are family ! 90後帥氣小夥,良好的開發習慣;獨立思考的能力;主動並且善於溝通 簡書部落格: 達叔小生 www.jianshu.com/u/c785ece60…
結語
- 下面我將繼續對 其他知識 深入講解 ,有興趣可以繼續關注
- 小禮物走一走 or 點贊