java总结(1)
JDK java軟件開發(fā)工具包
包括java運行環(huán)境,java開發(fā)工具,java基礎的類庫
bin 存放java各種可執(zhí)行文件
jre java運行環(huán)境
lib jdk所需要的一些資源文件和資源包
helloworld背后的故事
1.編寫代碼
2.編譯
機器不認識我們寫的代碼,需要進行編譯成字節(jié)碼,編譯后的文件叫做class文件
3.類裝載ClassLoader
執(zhí)行程序?qū)ふ液脱b載所需要的類
4.字節(jié)碼校驗(byte-code)
對class文件的代碼進行校驗,保證代碼的安全性
5.解釋(Interpreter)或者JIT(just in time,java即時編譯)
可是機器也不能認識class文件,還需要被解釋器進行解釋,或者是通過即時編譯成為本地機器碼,機器才能最終理解我們所表達的東西
6.運行
最后由環(huán)境對代碼進行運行
開發(fā)期=====編譯期=======運行
虛擬機的功能
(1)通過classloader尋找和裝載class文件
(2)解釋字節(jié)碼成為指令并執(zhí)行,提供class文件的運行環(huán)境
(3)進行運行期間垃圾回收
(4)提供與硬件交互的平臺
所有與平臺有關的東西都是由虛擬機去處理
java技術三大特性
(1)垃圾回收
(2)安全性
(3)虛擬機
for和while
for 如果用于控制循環(huán)的增量定義for語句中,那么該變量只在for語句內(nèi)有效(節(jié)省內(nèi)存)
for和while可以互換。如果需要定義循環(huán)增量,用for更為合適
break與continue
break語句 應用范圍為選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)
continue語句:應用于循環(huán)結(jié)構(gòu),特點為結(jié)束本次循環(huán),繼續(xù)下一次循環(huán)
break與continue單獨存在,下面有任何語句,都執(zhí)行不到。
函數(shù)
修飾符 返回值類型 函數(shù)名(參數(shù)類型 形式參數(shù)){
執(zhí)行語句;
return 返回值;
}
當函數(shù)的返回值類型為void時,函數(shù)中return語句省略不寫。
&和&&
&無論左邊是true是false,右邊都運算。
&&當左邊為false時,右邊不運算。
|和||
|兩邊都參與運算。
||當左邊為true,右邊不運算。
位運算符
<<其實就是乘以2的移動的位數(shù)次冪(向左移)
>>就是除以2的移動的位數(shù)次冪
最高位補什么有原來的數(shù)據(jù)最高值而定
如果最高位0,右移后,用0補空位
如果最高位1,右移后,用1補空位
面向?qū)ο?/strong>
什么是類
類是用來描述對象的。由于對象是虛擬出來的東西,是看不見摸不著的,我們需要在程序中使用對象,就需要用一種方式來描述對象,然后根據(jù)這個描述來創(chuàng)建對象。
類和對象的關系
對象是類的實例,類是對象的抽象。
怎么定義類
將一系列特征相似的對象的共同特征及行為抽取出來進行描述,寫在一個class中,用成員變量描述對象的特征,用成員方法來描述對象的行為。
怎么使用類創(chuàng)建對象
使用new關鍵字和指定類名來創(chuàng)建一個對象。
對象的產(chǎn)生
Person p = new Person();
先在堆內(nèi)存中創(chuàng)建了一個對象,然后棧內(nèi)存中創(chuàng)建一個變量引用了對象的地址。
static關鍵字
static關鍵字用來修飾類的成員,被這個關鍵字修飾的成員都和類加載有關。
JVM運行時不會將所有類加載到內(nèi)存,因為無法確定程序中要使用哪些。類在第一次使用時加載,只加載一次。
靜態(tài)變量
用static修飾的變量就是靜態(tài)變量。
靜態(tài)變量在類加載后就初始化。
靜態(tài)變量被類的所有實例所共享。
靜態(tài)變量可以使用 類名.變量名 形式訪問。
如果在定義一個類的時候,發(fā)現(xiàn)一個成員變量需要被所有實例所共享,那么這個成員變量就需要定義為 static 的。
靜態(tài)方法
用 static 修飾的方法就是靜態(tài)方法。
靜態(tài)方法在類加載后就可以使用。
靜態(tài)方法可以使用 類名 . 方法名 形式訪問。
靜態(tài)方法不能直接訪問外部非靜態(tài)成員。
因為外部非靜態(tài)成員必須在類創(chuàng)建對象之后才能使用,而靜態(tài)方法可以在沒創(chuàng)建對象時就使用。
如果要在靜態(tài)方法內(nèi)部訪問外部非靜態(tài)成員,需要先創(chuàng)建該類對象,通過對象訪問。
靜態(tài)方法中不能使用 this關鍵字。
因為 this 是個引用,哪個對象調(diào)用方法就引用哪個對象。 而靜態(tài)方法有可能不是被對象調(diào)用的, this 無從引用。
如果一個方法不用訪問對象的非靜態(tài)成員,那么就可以定義為靜態(tài)的,這樣使用者就不需要創(chuàng)建對象,直接用類名調(diào)用。
靜態(tài)方法通常是作為工具方法或者一個可以產(chǎn)生對象的方法被聲明,目的是為了讓調(diào)用者更方便的使用,不必創(chuàng)建對象。
靜態(tài)代碼快
用 static 修飾的代碼塊就是靜態(tài)代碼塊。
靜態(tài)代碼塊在類加載后執(zhí)行。
靜態(tài)代碼塊和靜態(tài)方法相同,不能使用外部非靜態(tài)成員。
靜態(tài)代碼塊執(zhí)行和靜態(tài)變量的初始化順序由代碼從上到下順序決定
靜態(tài)內(nèi)部類
用 static 修飾的內(nèi)部類就是靜態(tài)內(nèi)部類。
靜態(tài)內(nèi)部類在類加載后就可以創(chuàng)建對象,無需創(chuàng)建外部類對象
向上轉(zhuǎn)型
把一個子類當做父類來用是可以的,因為父類有的子類都有
把一個父類當做子類來用就不可以了,因為子類有的父類不一定有
可以定義一個父類類型的變量來記住子類對象,這在程序中稱之為向上轉(zhuǎn)型
轉(zhuǎn)載于:https://www.cnblogs.com/shhaoran/archive/2013/02/23/2924337.html
總結(jié)
- 上一篇: 关于报表中汇率转换的问题
- 下一篇: 十五、表单