JDK、JRE、JVM
JDK>JRE>JVM(>包含)

jdk-jre-jvm.png
JRE把原有的jar包打碎成模塊,以便于調(diào)用,提高加載速度。
JVM在不同平臺(tái)版本不同,但是JVM能夠識(shí)別的字節(jié)碼是相同的。綜上兩點(diǎn)實(shí)現(xiàn)跨平臺(tái)
類和方法
- 類的定義
在一個(gè)源代碼文件中可以聲明多個(gè)class,但是只能有一個(gè)class是public的,而且此類的名稱一定要與其所在的源代碼文件的著文件名完全一致。非public的類在實(shí)際開發(fā)工作中已經(jīng)很少用到了。 - 類的聲明格式
訪問修飾符 class 類名{類主體}
每個(gè)類通常要放在屬于他的源代碼文件中,再寫Java程序時(shí)通常是要先聲明class的,在擦歷史上中封裝相關(guān)的數(shù)據(jù)與程序邏輯。 - 方法的聲明格式
訪問修飾符 其他修飾符 方法的返回?cái)?shù)據(jù)類型 方法名稱(形式參數(shù)列表){方法體}
形式參數(shù)的數(shù)量0-n,如果沒有形式參數(shù)也需要在方法名后加一堆空的圓括號(hào)。 - 注釋的特點(diǎn)
Java注釋的特點(diǎn):在編譯過程中,Java源代碼中的所有注釋都會(huì)被Java編譯器忽略。 - 注釋的作用
- 提高代碼的可讀性
- 用于屏蔽程序調(diào)試中展示被忽略的代碼
輸出代碼的運(yùn)行信息:java -verbose 文件名
數(shù)據(jù)類型
數(shù)據(jù)類型可以分為兩大類
- 基本數(shù)據(jù)類型
- 比特byte:1字節(jié) -27~27-1
- 短整型short:2字節(jié) -215~215-1
- 整型int:4字節(jié) -231~231-1
- 長(zhǎng)整形long:8字節(jié) -263~263-1
- 單精度浮點(diǎn)型float:4字節(jié)
- 雙精度浮點(diǎn)型double:8字節(jié)
- 字符型char:2字節(jié)
- 布爾型boolean:一位--取值只有true/false
- 引用數(shù)據(jù)類型
- 字符串String
- 對(duì)象的引用類型---class Pet{} Pet pet
8中基本數(shù)據(jù)類型不屬于對(duì)象。
在Java中的數(shù)字都是有符號(hào)的,char本質(zhì)上時(shí)int類型的子集,范圍0~65535
內(nèi)存結(jié)構(gòu)(棧內(nèi)存)

棧內(nèi)存存儲(chǔ)數(shù)據(jù).png
- 棧內(nèi)存在函數(shù)中定義的一些基本類型的變量和對(duì)象的引用變量都在函數(shù)的棧內(nèi)存中分配。當(dāng)在一段代碼塊定義一個(gè)變量時(shí),Java就在棧中為這個(gè)變量分配內(nèi)存空間,當(dāng)超過變量的作用域后,Java會(huì)自動(dòng)釋放掉為該變量所分配的內(nèi)存空間,該內(nèi)存空間可以立即被另作他用
- 棧內(nèi)存的特點(diǎn)
棧的優(yōu)勢(shì)是,存取速度比堆要快,僅次于寄存器,棧數(shù)據(jù)可以共享。但缺點(diǎn)是,存在棧中的數(shù)據(jù)大小與生存期必須是確定的,缺乏靈活性。棧中主要存放一些基本類型的變量(,int, short, long, byte, float, double, boolean, char)和對(duì)象句柄。棧有一個(gè)很重要的特殊性,就是存在棧中的數(shù)據(jù)可以共享。
bipush 開辟一個(gè)內(nèi)存空間存儲(chǔ)變量值
istore_1 把變量值存儲(chǔ)到數(shù)組下標(biāo)為1的位置上。