java必備基本知識點
Java是目前企業中應用最廣的跨平臺程式設計語言,在學習Java的過程中,我們需要掌握下面這些Java中的必備知識點。
01JVM相關
JVM作為java執行的基礎,很難相信對於JVM一點都不瞭解的人可以把java語言吃得很透。在面試有超過3年Java經驗的開發者的時候, JVM幾乎就是一個必問的問題了。當然JVM不是唯一決定技術能力好壞的面試問題,但是可以佐證java開發能力的高低。
在JVM這個大類中,需要掌握的知識有:
GC原理,效能調優
調優:Thread Dump, 分析記憶體結構
class 二進位制位元組碼結構, class loader 體系 , class載入過程 , 例項建立過程
方法執行過程
Java各個大版本更新提供的新特性
02Java的執行
這個知識點是最最基本的java開發者需要掌握的,初學java,第一個肯定是教你如何在命令列中執行java程式,但是很多人一旦把java學完了,IDE用上了,就把這個都忘了。為什麼強調要知道這個呢,知道了java最純粹的啟動方式之後,你才能在啟動出問題的時候,去分析當時啟動的目錄多少,執行命名如何,引數如何,是否有缺失等。 這樣有利於你真正開發中去解決那些奇奇怪怪的可能和環境相關的問題。
在這裡需要掌握的知識有:
javac 編譯java檔案為 class 檔案
java 命令的使用, 帶package的java類如何在命令列中啟動
java程式涉及到的各個路徑(classpath, java。library。path, java執行的主目錄等)
03資料型別
這條無非就是Java中的'基本型別和物件型別的掌握。可以再瞭解一些JDK如何自動轉換方面的知識,包括裝箱拆箱等,還要注意避免裝箱之後的型別相等的判斷。
主要知識點:
基本型別: int, long, float, double, boolean , 。。。
對應的物件型別: Integer 等型別到基本型別的轉換, 裝箱和拆箱
Object型別: equals, hashcode
String 型別的特點
04物件和例項,物件的建立
在這方面,開發者需要了解class和instance的概念以及之間的差別, 這是java面向物件特性的一個基礎。
主要知識點有:
Class和 Instance 的概念
Instance 建立的過程:
1。 無繼承:分配記憶體空間, 初始化變數, 呼叫建構函式
2。 有繼承:處理靜態動作, 分配記憶體空間, 變數定義為初始值 , 從基類->子類, 處理定義處的初始化, 執行構造方法
需要注意的點:
靜態屬性等從基類->子類進行初始化
預設無參構造方法相關的特性
05訪問控制
這也是java封裝特性的一個基礎。
需要掌握的有:
public protected default private 對於class, method, field 的修飾作用
06 流程控制
Java 流程控制的基礎, 雖然有些語法不一定很常用,但是都需要了解,並且在合適的地方使用它們。
需要掌握的有:
if, switch, loop, for, while 等流程控制的語法
07面向物件程式設計的概念
這是一個java的核心概念,對於任何java開發者都需要熟練掌握。Java中很多特性或者說知識點都是和java面向物件程式設計概念相關的。一個好的開發者不僅僅需要了解這些特性本身,也更需要知道這些物件在java的面向物件程式設計概念中是如何體現出來的,這樣更有利於開發者掌握java這門開發語言,以及其他面向物件程式設計的語言。
這裡簡單羅列一下主要的知識點:
面向物件三大特性:封裝,繼承,多型; 各自的定義概念,特性體現,使用場景
靜態多分派,動態單分派的概念
過載的概念和使用
繼承:介面多實現,基類單繼承
抽象,抽象類,介面
多型:方法覆蓋的概念和使用
介面回撥
08 Static
靜態屬性在java日常開發中也是經常使用,需要了解和 static 關鍵字相關的用法,還有和其他關鍵字的配合使用, 如是否可以和 abstract, final 等關鍵字聯合使用。
主要需要掌握的有:
靜態屬性的定義,使用,以及類載入時如何初始化
靜態方法的定義和使用
靜態類的定義和使用
靜態程式碼塊的定義和初始化時機
09集合框架
這個是一個需要多加掌握的部分,做java開發,可以說沒有不用到集合框架的,這很重要。但是這裡的知識點並不難,但是對於集合最好要了解內部的實現方式,因為這樣有助於你在各個不同的場景選擇適合的框架來解決問題,比如有1W個元素的集合,經常要進行contains判斷操作,知道了集合的特性或者內部實現,就很容易做出正確的選擇。
這裡包括瞭如下內容(併發相關不包含在內):
集合框架的體系: 基礎Collection ,Map
具體集合實現的內容, List ,Set ,Map 具體的實現,內部結構, 特殊的方法, 適用場景等
集合相關的工具類 Collections 等的用法
10多執行緒併發
多執行緒是Java中普遍認為比較難的一塊。多執行緒用好了可以有效提高cpu使用率, 提升整體系統效率, 特別是在有大量IO操作阻塞的情況下;但是它也是一柄雙刃劍, 如果用不好,系統非但提升不大,或者沒有提升,而且還會帶來多執行緒之間的除錯時等問題。
Java中初步使用多執行緒需要掌握的知識點:
多執行緒的實現和啟動
callable 與 runable 區別
syncrhoized ,reentrantLock 各自特點和比對
執行緒池
future 非同步方式獲取執行結果
concurrent 包
lock
-
Java 正則表示式
Java是一門程式語言,那麼大家知道Java正則表示式是怎樣的呢?下面一起來看看!Java正則表示式正則表示式定義了字串的模式。正則表示式可以用來搜尋、編輯或處理文字。正則表示式並不僅限於某一種語言,但是在每種語言中有細微的差別。正則表示式例項一個字串其...
-
Java中的物件與引用知識詳解
在Java中,有一組名詞經常一起出現,它們就是“物件和物件引用”,很多朋友在初學Java的時候可能經常會混淆這2個概念,覺得它們是一回事,事實上則不然。今天我們就來一起了解一下物件和物件引用之間的區別和聯絡。以下僅供參考!1.何謂物件?在Java中有一句比較流行的話,叫...
-
java日期時間基本操作方法
1.獲得Calendar例項:Calendarc=nstance();2.定義日期/時間的格式:SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");3.把日期/時間轉換成固定格式,使用SimpleDateFormat的'format()方法:Stringdatetime=at(ime());4.把字串轉換成日期/時間,...
-
Java發展史之Java的由來
Java發展史之Java的由來Java:由SunMicrosystems公司於1995年5月推出的Java程式設計語言和Java平臺的總稱。Java語言是一種可以撰寫跨平臺應用軟體的面向物件的程式設計語言,由當時任職太陽微系統的詹姆斯·高斯林(JamesGosling)等人於1990年代初開發,它最初被命名為...