java基本知識點總結

Java程式語言是面向物件的,處理的最小的完整單元為物件。而現實生活中具有共同特性的物件的抽象就稱之為類。以下是java基本知識點總結,歡迎閱讀

java基本知識點總結

  是什麼?java的執行機制

Java 是由Sun Microsystems公司於1995年5月推出的高階程式設計語言。是一門面向物件程式語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向物件程式語言的代表,極好地實現了面向物件理論,允許程式設計師以優雅的思維方式進行復雜的 程式設計 。

Java具有簡單性、面向物件、分散式、健壯性、安全性、平臺的獨立與可移植性、多執行緒、動態性等特點 。Java可以編寫桌面應用程式、Web應用程式、分散式系統和嵌入式系統應用程式等。

關於java名字的由來還有一個小趣聞,java建立之初的一天,幾位Java成員組的會員正在討論給這個新的語言取什麼名字,當時他們正在咖啡館喝著Java(爪哇)咖啡,有一個人靈機一動說就叫Java怎樣,這個提議得到了其他人的贊同,於是,Java這個名字就這樣傳開了。原來看SUN的JAVA標識沒去多想,現在看看,這不就是一杯正冒著熱氣的咖啡嗎?

JVM作為Java執行的基礎,很難相信對於JVM一點都不瞭解的人可以把Java語言吃得很透。對於剛剛接觸Java的人來說,JVM相關的知識不一定需要理解很深,對此裡面的概念有一些簡單的瞭解即可。不過對於一個有著3年以上Java經驗的資深開發者來說,不會JVM幾乎是不可接受的。

在JVM這個大類中,我認為需要掌握的知識有:

記憶體模型和結構

原理,效能調優

3.調優:Thread Dump, 分析記憶體結構

s 二進位制位元組碼結構, class loader 體系 , class載入過程 , 例項建立過程

5.方法執行過程

各個大版本更新提供的新特性(需要簡單瞭解)

  2. java變數

在Java語言中,所有的變數在使用前必須宣告。宣告變數的基本格式如下:

Java語言支援的變數型別有:

類變數:獨立於方法之外的變數,用 static 修飾。

例項變數:獨立於方法之外的變數,不過沒有 static 修飾。

區域性變數:類的方法中的變數。

  3. 資料型別

這條沒有什麼好多說的,無非就是Java中的基本型別和物件型別的掌握。可以再瞭解一些JDK如何自動轉換方面的知識,包括裝箱拆箱等,還要注意避免裝箱之後的型別相等的判斷

主要知識點:

基本型別: int, long, float, double, boolean

對應的物件型別: Integer 等型別到基本型別的轉換, 裝箱和拆箱

Object型別: equals, hashcode

String 型別的特點

  4. 運算子

Java的運算子,分為四類:

算數運算子、關係運算符、邏輯運算子、位運算子。

算數運算子(9):+ - * / % ++ --

關係運算符(6):== != > >= < <=

邏輯運算子(6):&& || ! ^ & |

位運算子(7):& | ~ ^ >> << >>>

邏輯運算子除了 ! 外都是用於連線兩個boolean型別表示式。

  5. 資料型別轉換

在實際的使用中,經常需要在不同型別的值之間進行操作,這就需要一種新的語法來適應這種需要,這個語法就是資料型別轉換。

Java 語言中的資料型別轉換有兩種:

自動型別轉換:編譯器自動完成型別轉換,不需要在程式中編寫程式碼。

強制型別轉換:強制編譯器進行型別轉換,必須在程式中編寫程式碼。

由於基本資料型別中 boolean 型別不是數字型,所以基本資料型別的轉換是出了 boolean 型別以外的其它 7 種類型之間的轉換。下面來具體介紹兩種型別轉換的規則、適用場合以及使用時需要注意的問題。

自動型別轉換

自動型別轉換,也稱為隱式型別轉換,是指不需要書寫程式碼,由系統自動完成的型別轉換,由於實際開發中這種型別轉換很多,所以java語言在設計時,沒有為該操作設計語法,而是由JVM自動完成。

轉換規則:從儲存範圍小的型別到儲存範圍大的型別。

具體規則為:byte→short(char)→int→long→float→double

也就是說 byte 型別的變數可以自動轉換為 short 型別,示例程式碼:

short sh = b;這裡在賦值時,JVM 首先將 b 的值轉換為 short 型別,然後再賦值給 sh。

在型別轉換時可以跳躍。示例程式碼:

注意問題: 在整數之間進行型別轉換時,數值不發生改變,而將整數型別,特別是比較大的整數型別轉換成小數型別時,由於儲存方式不同,有可能存在資料精度的損失。

強制型別轉換

強制型別轉換,也稱顯式型別轉換,是指必須書寫程式碼才能完成的型別轉換。該類型別轉換很可能存在精度的損失,所以必須書寫相應的程式碼,並且能夠忍受該種損失時才進行該型別的轉換。

轉換規則:從儲存範圍大的型別到儲存範圍小的型別。

具體規則為:double→float→long→int→short(char)→byte

語法格式為:(轉換到的型別)需要轉換的值

示例程式碼:

  6. 條件結構

(1)單獨的 if

顧名思義,if 的中文意思是"如果" 表示判斷;即有選擇、就會有判斷條件,所以由 if 組成的語句塊稱為條件結構。

執行原理:先判斷條件表示式是否為真(即是否成立),表示式為真則執行花括號{ }之間的.語句,否則不執行。

細節注意:不管表示式如何複雜,其結果必須為boolean型別的值,即要麼是true、要麼是false,而不能是其他值

(2)if---else結構

用於涉及兩個分支的選擇問題

執行原理:先判斷表示式是否為true、為true則執行 if 的語句體,否則就執行else的語句體。

(3)條件結構中的多分支選擇語句:switch-----case

執行流程:先計算表示式的值,然後和case後面的常量匹配,如果相同,就執行對應的語句 否則執行default控制的語句

注意事項:

判斷條件語句 無論簡單還是複雜 結果必須是boolean

  7. 迴圈結構

(1)do-while迴圈

執行流程:

1. 執行初始化語句

2. 執行迴圈體語句

3. 執行控制條件語句

4. 執行判斷條件語句

如果是true 就繼續迴圈執行

如果是false 就結束迴圈

5. 回到2繼續

(2). for迴圈

執行流程:

1. 初始化語句

2. 判斷條件語句

true --> 迴圈體

false -->結束迴圈

3. 執行迴圈體

4. 控制條件語句

5. 回到2繼續

注意事項:

迴圈體語句如果是一條語句,花括號可以省略,如果是多條語句,就不可以省略 建議永遠不要省略。

當然,最重要的還是避免死迴圈。

  8. 面向物件程式設計的概念

這是一個Java的核心概念,對於任何Java開發者都需要熟練掌握。Java中很多特性或者說知識點都是和Java面向物件程式設計概念相關的。在我的理解,一個好的開發者不僅僅需要了解這些特性(知識點)本身,也更需要知道這些物件在Java的面向物件程式設計概念中是如何體現出來的,這樣更有利於開發者掌握Java這門開發語言,以及其他面向物件程式設計的語言。在這裡只是簡單羅列了一下,主要的知識點包括有:

面向物件三大特性:封裝,繼承,多型; 各自的定義概念,有哪些特性體現出來,各自的使用場景

靜態多分派,動態單分派的概念

過載的概念和使用

繼承:介面多實現,基類單繼承

抽象,抽象類,介面

多型:方法覆蓋的概念和使用

介面回撥

  9. 介面

介面是java語言中的一個引用型別,和類一樣,介面可以包含常量,方法簽名,預設方法,靜態方法和巢狀型別。含有方法主體的只有其中的預設方法和靜態方法。介面不能被例項化,它們只能被類實現或者被其他介面繼承。

介面的宣告部分包含修飾詞,關鍵詞interface,介面名稱,extends關鍵詞+由逗號分隔開的繼承介面名稱(可有可無),和一個介面主體,如下例所示:

以上也只是簡單介紹了下我對於這些Java基本知識點和技術點的一些看法和介紹, 這些內容都源自於我這些年來使用Java的一些總結, 希望給剛剛接觸Java, 或者打算從Java開發的人一些經驗, 希望能夠更有效率地學習和使用Java, 避免走了彎路浪費了寶貴的時間。這當中還有些內容不夠完善的地方,會通過以後的文章再新增上。由於個人能力有限,當然其中也會有些錯誤和疏漏,歡迎指正,一起討論,共同來把這篇文章再完善下,希望它可以真正幫助到有需要的人。