- 相關(guān)推薦
java基本知識點(diǎn)總結
Java編程語(yǔ)言是面向對象的,處理的最小的完整單元為對象。而現實(shí)生活中具有共同特性的對象的抽象就稱(chēng)之為類(lèi)。以下是java基本知識點(diǎn)總結,歡迎閱讀。
1.Java是什么?java的運行機制
Java 是由Sun Microsystems公司于1995年5月推出的高級程序設計語(yǔ)言。是一門(mén)面向對象編程語(yǔ)言,不僅吸收了C++語(yǔ)言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語(yǔ)言具有功能強大和簡(jiǎn)單易用兩個(gè)特征。Java語(yǔ)言作為靜態(tài)面向對象編程語(yǔ)言的代表,極好地實(shí)現了面向對象理論,允許程序員以?xún)?yōu)雅的思維方式進(jìn)行復雜的 編程 。
Java具有簡(jiǎn)單性、面向對象、分布式、健壯性、安全性、平臺的獨立與可移植性、多線(xiàn)程、動(dòng)態(tài)性等特點(diǎn) 。Java可以編寫(xiě)桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
關(guān)于java名字的由來(lái)還有一個(gè)小趣聞,java創(chuàng )建之初的一天,幾位Java成員組的會(huì )員正在討論給這個(gè)新的語(yǔ)言取什么名字,當時(shí)他們正在咖啡館喝著(zhù)Java(爪哇)咖啡,有一個(gè)人靈機一動(dòng)說(shuō)就叫Java怎樣,這個(gè)提議得到了其他人的贊同,于是,Java這個(gè)名字就這樣傳開(kāi)了。原來(lái)看SUN的JAVA標識沒(méi)去多想,現在看看,這不就是一杯正冒著(zhù)熱氣的咖啡嗎?
JVM作為Java運行的基礎,很難相信對于JVM一點(diǎn)都不了解的人可以把Java語(yǔ)言吃得很透。對于剛剛接觸Java的人來(lái)說(shuō),JVM相關(guān)的知識不一定需要理解很深,對此里面的概念有一些簡(jiǎn)單的了解即可。不過(guò)對于一個(gè)有著(zhù)3年以上Java經(jīng)驗的資深開(kāi)發(fā)者來(lái)說(shuō),不會(huì )JVM幾乎是不可接受的。
在JVM這個(gè)大類(lèi)中,我認為需要掌握的知識有:
1.JVM內存模型和結構
2.GC原理,性能調優(yōu)
3.調優(yōu):Thread Dump, 分析內存結構
4.class 二進(jìn)制字節碼結構, class loader 體系 , class加載過(guò)程 , 實(shí)例創(chuàng )建過(guò)程
5.方法執行過(guò)程
6.Java各個(gè)大版本更新提供的新特性(需要簡(jiǎn)單了解)
2. java變量
在Java語(yǔ)言中,所有的變量在使用前必須聲明。聲明變量的基本格式如下:
Java語(yǔ)言支持的變量類(lèi)型有:
類(lèi)變量:獨立于方法之外的變量,用 static 修飾。
實(shí)例變量:獨立于方法之外的變量,不過(guò)沒(méi)有 static 修飾。
局部變量:類(lèi)的方法中的變量。
3. 數據類(lèi)型
這條沒(méi)有什么好多說(shuō)的,無(wú)非就是Java中的基本類(lèi)型和對象類(lèi)型的掌握?梢栽倭私庖恍㎎DK如何自動(dòng)轉換方面的知識,包括裝箱拆箱等,還要注意避免裝箱之后的類(lèi)型相等的判斷
主要知識點(diǎn):
基本類(lèi)型: int, long, float, double, boolean
對應的對象類(lèi)型: Integer 等類(lèi)型到基本類(lèi)型的轉換, 裝箱和拆箱
Object類(lèi)型: equals, hashcode
String 類(lèi)型的特點(diǎn)
4. 運算符
Java的運算符,分為四類(lèi):
算數運算符、關(guān)系運算符、邏輯運算符、位運算符。
算數運算符(9):+ - * / % ++ --
關(guān)系運算符(6):== != > >= < <=
邏輯運算符(6):&& || ! ^ & |
位運算符(7):& | ~ ^ >> << >>>
邏輯運算符除了 ! 外都是用于連接兩個(gè)boolean類(lèi)型表達式。
5. 數據類(lèi)型轉換
在實(shí)際的使用中,經(jīng)常需要在不同類(lèi)型的值之間進(jìn)行操作,這就需要一種新的語(yǔ)法來(lái)適應這種需要,這個(gè)語(yǔ)法就是數據類(lèi)型轉換。
Java 語(yǔ)言中的數據類(lèi)型轉換有兩種:
自動(dòng)類(lèi)型轉換:編譯器自動(dòng)完成類(lèi)型轉換,不需要在程序中編寫(xiě)代碼。
強制類(lèi)型轉換:強制編譯器進(jìn)行類(lèi)型轉換,必須在程序中編寫(xiě)代碼。
由于基本數據類(lèi)型中 boolean 類(lèi)型不是數字型,所以基本數據類(lèi)型的轉換是出了 boolean 類(lèi)型以外的其它 7 種類(lèi)型之間的轉換。下面來(lái)具體介紹兩種類(lèi)型轉換的規則、適用場(chǎng)合以及使用時(shí)需要注意的問(wèn)題。
自動(dòng)類(lèi)型轉換
自動(dòng)類(lèi)型轉換,也稱(chēng)為隱式類(lèi)型轉換,是指不需要書(shū)寫(xiě)代碼,由系統自動(dòng)完成的類(lèi)型轉換,由于實(shí)際開(kāi)發(fā)中這種類(lèi)型轉換很多,所以java語(yǔ)言在設計時(shí),沒(méi)有為該操作設計語(yǔ)法,而是由JVM自動(dòng)完成。
轉換規則:從存儲范圍小的類(lèi)型到存儲范圍大的類(lèi)型。
具體規則為:byte→short(char)→int→long→float→double
也就是說(shuō) byte 類(lèi)型的變量可以自動(dòng)轉換為 short 類(lèi)型,示例代碼:
short sh = b;這里在賦值時(shí),JVM 首先將 b 的值轉換為 short 類(lèi)型,然后再賦值給 sh。
在類(lèi)型轉換時(shí)可以跳躍。示例代碼:
注意問(wèn)題: 在整數之間進(jìn)行類(lèi)型轉換時(shí),數值不發(fā)生改變,而將整數類(lèi)型,特別是比較大的整數類(lèi)型轉換成小數類(lèi)型時(shí),由于存儲方式不同,有可能存在數據精度的損失。
強制類(lèi)型轉換
強制類(lèi)型轉換,也稱(chēng)顯式類(lèi)型轉換,是指必須書(shū)寫(xiě)代碼才能完成的類(lèi)型轉換。該類(lèi)類(lèi)型轉換很可能存在精度的損失,所以必須書(shū)寫(xiě)相應的代碼,并且能夠忍受該種損失時(shí)才進(jìn)行該類(lèi)型的轉換。
轉換規則:從存儲范圍大的類(lèi)型到存儲范圍小的類(lèi)型。
具體規則為:double→float→long→int→short(char)→byte
語(yǔ)法格式為:(轉換到的類(lèi)型)需要轉換的值
示例代碼:
6. 條件結構
(1)單獨的 if
顧名思義,if 的中文意思是"如果" 表示判斷;即有選擇、就會(huì )有判斷條件,所以由 if 組成的語(yǔ)句塊稱(chēng)為條件結構。
執行原理:先判斷條件表達式是否為真(即是否成立),表達式為真則執行花括號{ }之間的語(yǔ)句,否則不執行。
細節注意:不管表達式如何復雜,其結果必須為boolean類(lèi)型的值,即要么是true、要么是false,而不能是其他值
(2)if---else結構
用于涉及兩個(gè)分支的選擇問(wèn)題
執行原理:先判斷表達式是否為true、為true則執行 if 的語(yǔ)句體,否則就執行else的語(yǔ)句體。
(3)條件結構中的多分支選擇語(yǔ)句:switch-----case
執行流程:先計算表達式的值,然后和case后面的常量匹配,如果相同,就執行對應的語(yǔ)句 否則執行default控制的語(yǔ)句
注意事項:
判斷條件語(yǔ)句 無(wú)論簡(jiǎn)單還是復雜 結果必須是boolean
7. 循環(huán)結構
(1)do-while循環(huán)
執行流程:
1. 執行初始化語(yǔ)句
2. 執行循環(huán)體語(yǔ)句
3. 執行控制條件語(yǔ)句
4. 執行判斷條件語(yǔ)句
如果是true 就繼續循環(huán)執行
如果是false 就結束循環(huán)
5. 回到2繼續
(2). for循環(huán)
執行流程:
1. 初始化語(yǔ)句
2. 判斷條件語(yǔ)句
true --> 循環(huán)體
false -->結束循環(huán)
3. 執行循環(huán)體
4. 控制條件語(yǔ)句
5. 回到2繼續
注意事項:
循環(huán)體語(yǔ)句如果是一條語(yǔ)句,花括號可以省略,如果是多條語(yǔ)句,就不可以省略 建議永遠不要省略。
當然,最重要的還是避免死循環(huán)。
8. 面向對象編程的概念
這是一個(gè)Java的核心概念,對于任何Java開(kāi)發(fā)者都需要熟練掌握。Java中很多特性或者說(shuō)知識點(diǎn)都是和Java面向對象編程概念相關(guān)的。在我的理解,一個(gè)好的開(kāi)發(fā)者不僅僅需要了解這些特性(知識點(diǎn))本身,也更需要知道這些對象在Java的面向對象編程概念中是如何體現出來(lái)的,這樣更有利于開(kāi)發(fā)者掌握Java這門(mén)開(kāi)發(fā)語(yǔ)言,以及其他面向對象編程的語(yǔ)言。在這里只是簡(jiǎn)單羅列了一下,主要的知識點(diǎn)包括有:
面向對象三大特性:封裝,繼承,多態(tài); 各自的定義概念,有哪些特性體現出來(lái),各自的使用場(chǎng)景
靜態(tài)多分派,動(dòng)態(tài)單分派的概念
重載的概念和使用
繼承:接口多實(shí)現,基類(lèi)單繼承
抽象,抽象類(lèi),接口
多態(tài):方法覆蓋的概念和使用
接口回調
9. 接口
接口是java語(yǔ)言中的一個(gè)引用類(lèi)型,和類(lèi)一樣,接口可以包含常量,方法簽名,默認方法,靜態(tài)方法和嵌套類(lèi)型。含有方法主體的只有其中的默認方法和靜態(tài)方法。接口不能被實(shí)例化,它們只能被類(lèi)實(shí)現或者被其他接口繼承。
接口的聲明部分包含修飾詞,關(guān)鍵詞interface,接口名稱(chēng),extends關(guān)鍵詞+由逗號分隔開(kāi)的繼承接口名稱(chēng)(可有可無(wú)),和一個(gè)接口主體,如下例所示:
以上也只是簡(jiǎn)單介紹了下我對于這些Java基本知識點(diǎn)和技術(shù)點(diǎn)的一些看法和介紹, 這些內容都源自于我這些年來(lái)使用Java的一些總結, 希望給剛剛接觸Java, 或者打算從Java開(kāi)發(fā)的人一些經(jīng)驗, 希望能夠更有效率地學(xué)習和使用Java, 避免走了彎路浪費了寶貴的時(shí)間。這當中還有些內容不夠完善的地方,會(huì )通過(guò)以后的文章再添加上。由于個(gè)人能力有限,當然其中也會(huì )有些錯誤和疏漏,歡迎指正,一起討論,共同來(lái)把這篇文章再完善下,希望它可以真正幫助到有需要的人。
【java基本知識點(diǎn)總結】相關(guān)文章:
導數基本知識點(diǎn)總結04-13
股票的基本知識點(diǎn)有哪些07-02
android開(kāi)發(fā)面試 主要問(wèn)的java知識點(diǎn)?07-13
會(huì )計基本知識點(diǎn)07-10
java實(shí)訓總結11-18