Java思維理清思路

達叔小生發表於2019-01-13

標題圖

Java思維導圖

學習方法:

  1. 針對性學習
  2. 引導式學習
  3. 對比式學習
  4. 總結式學習

Java開發.png

Java學習.png

Java學習思維導圖.png

第一篇:Java基礎.png

第二篇:物件導向.png

第三篇:Java進階.png

Java簡介: 簡單性,物件導向,分散式,健壯性,安全性,平臺獨立與可移植性,多執行緒,多型性等.

Java三大體系:JavaSE,JavaEE,JavaME 平臺標準版,平臺企業版,微星版.

Java開發環境配置:下載jdk,配置環境變數,JAVA_HOME設定,安裝java開發工具,CLASSPATH設定,PATH設定..

java基礎語法:

**物件,**就是類的一個例項,有行為和狀態 **類,**就是模板,用來描述一個類物件的行為和狀態 **方法,**就是行為 **例項變數,**就是每個物件都有一些獨特的例項變數,物件的狀態由這些例項變數的值決定

基礎語法:

Java中大小寫敏感,就是說Hellohello是不一樣的額. **類名,**類名的首字母應該是大寫 **方法名,**所有方法名都應該是以小寫字母開頭 **原始檔名,**原始檔名必須和類名相同 **主方法入口,**所有程式通過publlic static void main(String []args)方法執行

**識別符號:**類名,變數名以及方法名都被稱為識別符號

識別符號以字母,美元符號,或下劃線 關鍵字不能用作識別符號 識別符號是大小寫敏感的

修飾符分為訪問控制修飾符和非訪問控制修飾符

一,訪問,default public protected private 二,非訪問,final abstract strictfp

**變數:**區域性變數, 類變數(靜態變數), 成員變數(非靜態變數)

**陣列,**陣列就是儲存在堆上的物件,可以保持多個同型別的變數

**列舉概念為,**列舉限制變數只能是預先設定好的值,列舉是可以用於單獨宣告或者宣告在類裡面,方法,變數,建構函式也可以在列舉中定義.

java中有大概50多個保留字吧,關鍵字是不能用於常量變數,和任何識別符號的名稱.

繼承是在java中,一個類可以由其他類派生的,被繼承的類為超類,派生的類為子類,利用了繼承的方法,可以重用已經存在類的方法和屬性

**介面,**是作為物件間相互通訊的協議,介面是定義要用到的方法,方法的實現要在派生類

學習java很多吧,有:

  1. 物件導向
  2. 多型
  3. 繼承
  4. 封裝
  5. 抽象
  6. 過載
  7. 方法
  8. 例項
  9. 物件

物件導向:

是描述物件的行為和狀態 物件是類的一個例項,有行為和狀態 構造方法,新建物件時,執行的一個特殊方法,建立一個物件的時候,至少要呼叫一個構造方法,構造方法的名稱要和類同名,一個類可以有多個構造方法.

this是用來引用當前物件,構造方法之間的呼叫.

方法的過載是同名不同參.

final是用來修飾方法,變數,和類的,是最終不可以變的.

static靜態, 靜態變數是類, 又叫類變數, 非靜態成員屬於例項, 靜態成員是通過類名直接呼叫, 而被static修飾的成員將最優先載入到記憶體裡.

介面, interface替代class , implements替代extends 介面中只能定義,公共的常量,抽象方法,內部類,內部介面.

**說到抽象類,**抽象類的作用是為子類提供通用程式碼,抽象類不能建立物件,在抽象類中,不一定有抽象方法,但是有抽象方法的類,一定是抽象類.

**說到內部類,**內部類是定義在類的內部,方法的內部或者是區域性程式碼中的類,就是叫內部類.

內部類: 靜態內部類, 非靜態內部類, 區域性內部類, 成員內部類, 匿名內部類.

物件導向的三大特性

  1. 繼承
  2. 多型
  3. 封裝

繼承的作用是程式碼重複使用,單繼承,一個類只能有一個父類,一個類,可以有多個子類.在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用於建立抽象類和方法.synchronizedvolatile用於執行緒.

運算子要點

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){
}
複製程式碼

時間

DateSimpleDateFormat

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 點贊

相關文章