大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java技術學習核心總結

Java技術學習核心總結

更新時間:2021-06-30 15:56:26 來源:動力節點 瀏覽1617次

  • Java基礎學習總結

  • 每部分內容會重點寫一些常見知識點,方便復習和記憶,但是并不是全部內容,詳細的內容請參見具體的文章地址。

面向對象三大特性

  • 繼承:一般類只能單繼承,內部類實現多繼承,接口可以多繼承
  • 封裝:訪問權限控制public>protected>包>private內部類也是一種封裝
  • 多態:編譯時多態,體現在向上轉型和向下轉型,通過引用類型判斷調用哪個方法(靜態分派)。
  • 運行時多態,體現在同名函數通過不同參數實現多種方法(動態分派)。

基本數據類型

  • 基本類型位數,自動裝箱,常量池
  • 例如byte類型是1byte也就是8位,可以表示的數字是-128到127,因為還有一個0,加起來一共是256,也就是2的八次方。
  • 32位和64位機器的int是4個字節也就是32位,char是1個字節就是8位,float是4個字節,double是8個字節,long是8個字節。
  • 所以它們占有字節數是相同的,這樣的話兩個版本才可以更好地兼容。(應該)
  • 基本數據類型的包裝類只在數字范圍-128到127中用到常量池,會自動拆箱裝箱,其余數字范圍的包裝類則會新建實例

String及包裝類

  • String類型是final類型,在堆中分配空間后內存地址不可變。

  • 底層是final修飾的char[]數組,數組的內存地址同樣不可變。
  • 但實際上可以通過修改char[n]='a'來進行修改,不會改變String實例的內存值,不過在jdk中,用戶無法直接獲取char[],也沒有方法能操作該數組。
  • 所以String類型的不可變實際上也是理論上的不可變。所以我們在分配String對象以后,如果將其="abc",那也只是改變了引用的指向,實際上沒有改變原來的對象。
  • StringBuffer和StringBuilder底層是可變的char[]數組,繼承父類AbstractStringBuilder的各種成員和方法,實際上的操作都是由父類方法來完成的。

final關鍵字

  • final修飾基本數據類型保證不可變

  • final修飾引用保證引用不能指向別的對象,否則會報錯。
  • final修飾類,類的實例分配空間后地址不可變,子類不能重寫所有父類方法。因此在cglib動態代理中,不能為一個類的final修飾的函數做代理,因為cglib要將被代理的類設置為父類,然后再生成字節碼。
  • final修飾方法,子類不能重寫該方法。

抽象類和接口 

  • 抽象類可以有方法實現。
  • 抽象類可以有非final成員變量。
  • 抽象方法要用abstract修飾。
  • 抽象類可以有構造方法,但是只能由子類進行實例化。
  • 接口可以用extends加多個接口實現多繼承。
  • 接口只能有public final類型的成員變量。
  • 接口只能有抽象方法,不能有方法體、
  • 接口不能實例化,但是可以作為引用類型。

代碼塊和加載順序

  • 假設該類是第一次進行實例化。那么有如下加載順序

  • 靜態總是比非靜態優先,從早到晚的順序是:
  • 靜態代碼塊和靜態成員變量的順序根據代碼位置前后來決定。
  • 代碼塊和成員變量的順序也根據代碼位置來決定
  • 最后才調用構造方法構造方法

多線程

  • 這里先不講juc包里的多線程類。juc相關內容會在Java并發專題講解。

  • 線程的實現可以通過繼承Thread類和實現Runable接口
  • 也可以使用線程池。callable配合future可以實現線程中的數據獲取。
  • Java中的線程有7種狀態,new runable running blocked waiting time_waiting terminate
  • blocked是線程等待其他線程鎖釋放。
  • waiting是wait以后線程無限等待其他線程使用notify喚醒
  • time_wating是有限時間地等待被喚醒,也可能是sleep固定時間。
  • Thread的join是實例方法,比如a.join(b),則說明a線程要等b線程運行完才會運行。
  • o.wait方法會讓持有該對象o的線程釋放鎖并且進入阻塞狀態,notify則是持有o鎖對象的線程通知其他等待鎖的線程獲取鎖。notify方法并不會釋放鎖。注意這兩個方法都只能在synchronized同步方法或同步塊里使用。
  • synchronized方法底層使用系統調用的mutex鎖,開銷較大,jvm會為每個鎖對象維護一個等待隊列,讓等待該對象鎖的線程在這個隊列中等待。當線程獲取不到鎖時則讓線程阻塞,而其他檢查notify以后則會通知任意一個線程,所以這個鎖時非公平鎖。
  • Thread.sleep(),Thread.interrupt()等方法都是類方法,表示當前調用該方法的線程的操作。
  • 一個線程實例連續start兩次會拋異常,這是因為線程start后會設置標識,如果再次start則判斷為錯誤。

以上就是動力節點小編介紹的"Java技術學習核心總結",希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 99婷婷久久精品国产一区二区 | 久久咪咪爱 | 久久亚洲国产的中文 | 国产精品网址你懂的 | 色网站视频 | 亚洲人人干 | 日本中文字幕免费 | 四虎4444hu4影视最新地址 | 国产精品久久久精品视频 | 久久亚洲欧美成人精品 | 四虎影视国产精品 | 美国黑人特大一级毛片 | 色视在线 | 日韩 欧美 自拍 在线 视频 | 巨乳一级片 | 久久久久久国产精品免费免 | 天天做天天玩天天爽天天 | 99精品视频在线观看re | 九九99久久精品国产 | 尤物福利在线 | 亚洲线精品一区二区三区 | 一个色亚洲 | 看黄色一级毛片 | 日本大蕉香蕉大视频在线观看 | 亚洲国产精品视频 | 97人人澡 | 99精品国产费观看视频 | 亚洲日韩精品欧美一区二区 | 欧美在线观看一区二区三 | 欧美成人激情视频 | 国产精品亚洲综合久久 | 手机看片福利永久国产日韩 | 亚洲精品高清在线一区二区三区 | 6080欧美一区二区三区四区 | 国产精品白丝喷水在线观看 | 日日夜夜综合 | 美女黄频| 亚洲夜色综合久久 | 一级女人18毛片免费 | 在线 亚洲 欧美 | 亚洲一级片免费 |