First of all,Java概述:
類是Java程序設計的基石和基本單元;
main()方法是程序的入口,它是共有的、靜態的,參數String[] args表示一個字符串數組可以傳入該程序,用來傳遞外部數據以初始化程序。
計算機語言,總的來說可分成:機器語言、匯編語言、高級語言。
高級語言:
解釋類——程序源碼由解釋器執行,不能生成可獨立執行的可執行文件,即程序不能脫離解釋器獨立運行。效率低、領過,能動態調整、修改程序。
編譯類——將程序源碼翻譯成目標代碼(機器語言),目標代碼和硬件、操作系統緊密相關。程序一旦修改,需重新編譯。
Java程序要先編譯、后執行。Java源文件—編譯器—字節碼文件——解釋器(JVM)——機器碼
?
JVM如何加載類并調用main()方法?
在main方法執行之前,JVM需要執行3個步驟:類加載、鏈接、初始化
(1)通過類加載器加載字節碼類和接口到JVM;
(2)連接合并字節碼到運行態的JVM。連接有三步:驗證、準備和解析。驗證確保類/接口在結構上是正確的,準備工作包括為所需的類/接口分配內存,然后解析符號引用并構建語法樹。
(3)為變量分配內存并初始化;
當JVM啟動時,有3個類加載器被使用:引導類加載器、擴展類加載器、系統類加載器。
系統類加載器負責在類的搜索路徑中找到對應代碼,所以HelloWorld類是由系統類加載器加載的。當執行到main()方法,會觸發加載、鏈接其它相關的類的初始化。
?
?
一、標識符——標識一個名字的存在性和唯一性
1. 保留字——Java預定義的標識符,又稱關鍵字
關鍵字分類:數據基本類型;程序控制語句;訪問控制;類、方法和變量的修飾符、變量引用、錯誤處理、包相關;
2. 用戶自定義標識符,以字母、下劃線或$開頭的字符序列
?
二、變量
變量是一個數據存儲空間的標識,不同的數據存入不同的內存地址的空間,相互獨立。
內存的數據需要通過變量來存取,因此,變量賦值操作本質上是內存引用的變化。
Java是強類型語言,聲明任何變量,必須為該變量指定一種數據類型。且先聲明,后使用。
JVM根據變量的類型為變量分配存儲空間,分配的空間只能用來存儲該類型的數據,因此定義不同類型的變量,實質上是獲得了對內存中各種數據類型的訪問引用。
?
三、數據類型
數據類型:基本數據類型、擴展數據類型
基本數據類型:布爾型(boolean)、字符型(char)、數值型——整數類型(byte,short,int long)、浮點型(float,double)
擴展數據類型:類(class)、接口(interface)、數組(array)
四、基本數據類型
Java不允許數值類型和布爾類型互相轉換;
Java不能定義無符號數(unsigned),當程序中需要無符號數時,需要通過位運算獲得。
整數類型和浮點數的表示范圍不受操作系統的影響;
Java基于unicode表示字符,每個字符占2 Byte;
整數、浮點、字符可以自動轉換,byte、short、char<int<long<double<float,前三種參與計算時不會相互轉換,因為都轉換為int;
多種數據類型混合計算,先自動將數轉換為容量最大的類型,再進行計算。
?
五、其它
常量,表示固定值(無需計算);常變量,final修飾的變量,賦值后不能修改。
求余運算的兩個運算變量沒有限制,結果符號跟隨求余運算符左邊的操作數;
instanceof(對象運算符)是一個關系運算符,即兩邊的數據類型應該一致。關系表達式的結果為boolean。
邏輯運算符&&和||存在短路現象。
位運算符(<<,>>>,>>).
運算符的結合性,從左至右。
break語句,終止某個語句塊的執行,使得應用程序從該語句塊后的第一個語句處開始執行;
continue語句,忽略當前循環,即跳過循環語句塊的一次執行,開始下一次循環。(break結束整個循環)
return語句,從當前方法退出,控制流返回到方法調用處;
?
六、程序設計風格
標識符命名:用完整的英文描述;駝峰式大小寫;
源文件命名:源文件與其中的公共類名字一致;一個源文件只能有一個公共類;若源文件不包含公共類,文件名和某個類名字相同就行;
?