久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

Java總結(jié)

時(shí)間:2019-05-12 16:02:36下載本文作者:會(huì)員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《Java總結(jié)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《Java總結(jié)》。

第一篇:Java總結(jié)

Java實(shí)驗(yàn)

1.調(diào)試HelloWorld程序

2.this,super,get ,set,把課本90頁程序4.7中的name改成私有變量

3.繼承,重寫,父類引用指向子類對象

4.驗(yàn)證數(shù)組Arrays類和Collection類

5.編寫一個(gè)自己的異常類并捕獲之。

6.編寫一個(gè)類,將該類的幾個(gè)對象裝入TreeSet容器中,并將該容器的內(nèi)容通過輸出流寫入文件中。

前三章重點(diǎn)

0.java的數(shù)據(jù)類型:四類八種-(1)布爾類型Boolean;(2)字符類型char;(3)整數(shù)byte,short,int,long;(4)浮點(diǎn)類型:float,double;1.面向?qū)ο蟮?個(gè)基本特征:封裝,繼承,多態(tài)。

2.構(gòu)造方法和普通方法的區(qū)別:對構(gòu)造方法而言,它有以下特性---(1)方法名必須與要?jiǎng)?chuàng)建對象的類名相同。(2)不允許聲明返回類型,即使聲明為void也不被允許。

3.this關(guān)鍵字:是一個(gè)引用,this引用指向的是其本身所在方法的當(dāng)前對象。this的使用方法:(1)調(diào)用成員變量;(2)可以用this()調(diào)用其他構(gòu)造函數(shù)。

4.java中只對類成員變量進(jìn)行自動(dòng)初始化,而方法內(nèi)部的局部變量在使用前必須手動(dòng)初始化。

5.static 關(guān)鍵字:可用來修飾類的成員變量和成員方法,需要注意兩點(diǎn)--(1)靜態(tài)方法不能調(diào)用類的非靜態(tài)方法,不能訪問類的非靜態(tài)變量。(2)靜態(tài)方法和靜態(tài)變量(非私有的)可以有兩種調(diào)用方式,一是實(shí)例對象調(diào)用,二是類名直接調(diào)用。

6.類成員訪問控制修飾符public、private、default(可不寫,即缺省狀態(tài))、protected的使用:public-公用的;private-私有的,只在定義它的類內(nèi)部使用;default-可以被同一包中的類訪問;protected-既可以被同一包中的類訪問,也可以被不在同一包中的子類訪問。

7.方法的重載:指方法名相同,而方法的參數(shù)列表不相同。參數(shù)列表不同有三層意思:(1)參數(shù)類型不同。(2)參數(shù)順序不同。(3)參數(shù)個(gè)數(shù)不同。另外需注意,在同一個(gè)類中,當(dāng)方法名和參數(shù)列表都相同時(shí),訪問控制修飾符或方法返回類型不相同并不是方法的重載,而且這種情況在java中是不被允許的。

第四五章重點(diǎn)

1.繼承:需使用關(guān)鍵字extends.在使用繼承時(shí)需注意--(1)每個(gè)子類只能定義一個(gè)超類(父類),即extends后面應(yīng)且僅應(yīng)跟一個(gè)類名作為該類的父類。(2)父類中的私有屬性和私有方法不能被繼承。

2.方法的重寫:即子類對超類中的方法保持方法名、返回類型和參數(shù)列表不變,重寫了方法體,使子類和超類完成不同的工作。重寫需注意下面幾個(gè)關(guān)鍵點(diǎn):(1)超類中的私有方法不能被重寫。(2)訪問限制符強(qiáng)度由低到高依次是:public、protected、default、private,在重寫過程中,如果子類和父類中方法的返回值、方法名及方法的參數(shù)列表都相同,這時(shí),要求子類中該方法的訪問限制符強(qiáng)度不能超過父類的。即如果父類中為public時(shí),子類也只能為public,而不能是余下的三種。

3.重載(overload)和覆蓋(override)的區(qū)別:(1)重載—發(fā)生在一個(gè)類的內(nèi)部或子類與父類之間,要求方法名相同而參數(shù)列表不一樣。(2)覆蓋—只能發(fā)生在繼承過程中,要求子類方法的返回類型,方法名和參數(shù)列表同父類的都相同,而方法體不一樣。

4.構(gòu)造器的調(diào)用順序:先祖先,再客人,最后自己。

5.多態(tài):指在類繼承中子類和父類中可以有同名但意義或?qū)崿F(xiàn)方式不同的屬性和方法。分為:覆蓋和重載。多態(tài)的優(yōu)點(diǎn):因?yàn)槎鄳B(tài),可以在程序中對類進(jìn)行擴(kuò)展,而不需改變那些操作基類接口的方法。

6.動(dòng)態(tài)綁定:指在代碼執(zhí)行期間,判斷所引用對象的實(shí)際類型,根據(jù)其實(shí)際類型調(diào)用相應(yīng)方法。動(dòng)態(tài)綁定存在的三個(gè)必要條件--(1)要有繼承;(2)要有重寫(覆蓋);(3)父類引用指向子類對象(向上轉(zhuǎn)型)。

7.Object中常用的方法總結(jié):toString();wait();equals();notify();notifyAll();hashCode();getClass();clone();finalize();(呵呵,盡可能記幾個(gè),以防老師讓咱們列舉)注:java中Object類是所有類的父類,即java中所有的類都有上述9種方法。

8.對象的比較:注意關(guān)鍵字instanceof的使用。

9.抽象類:

抽象方法—用關(guān)鍵字abstract修飾的方法,該方法只需方法的聲明,而不需方法的實(shí)現(xiàn)(即無方法體)。

抽象類——至少包含一個(gè)抽象方法的類,也用abstract關(guān)鍵字聲明。(注:(1)抽象類中可以有一些具體方法。(2)抽象類不能實(shí)例化。(3)子類繼承抽象類必須實(shí)現(xiàn)其抽象方法。)

10.接口:

(1)可以看成是高度抽象的抽象類,但是接口不是類。

(2)用關(guān)鍵字interface來聲明接口,用關(guān)鍵字imlpements來實(shí)現(xiàn)接口。

(3)接口不能有具體方法,不能有實(shí)例數(shù)據(jù),但可以定義常量。

(4)實(shí)現(xiàn)接口的非抽象類必須實(shí)現(xiàn)接口的所有方法。

(5)每個(gè)類可以實(shí)現(xiàn)多個(gè)接口,這些接口用逗號隔開,同時(shí),一個(gè)接口可以被多個(gè)類實(shí)現(xiàn)。

第六章:重點(diǎn)看一下實(shí)驗(yàn)四

1.容器——Collection(接口)和Map(接口).Collection——Set(接口)和List(接口)。其中,List必須保持元素的特定順序,常見的實(shí)現(xiàn)類有ArrayList和LinkedList;Set不能有重復(fù)元素,常見的實(shí)現(xiàn)類有HashSet和TreeSet。

Map——一組成對的“鍵值對”對象,即其元素是成對的對象,常見的實(shí)現(xiàn)類有HashMap和TreeMap。

第七章 1.異常類的根類是Throwable類,它的兩個(gè)直接子類是Error類和Exception類。

2.異常中常用的5個(gè)關(guān)鍵字為:try,catch,finally,throw,throws.其中,try和catch:用于捕獲異常;finally:無論try塊中的異常是否拋出,finally中的代碼塊總能被執(zhí)行;throw:拋出異常;throws:聲明異常。

3.“未被檢查的異常(Unchecked Exceptions)”和“受檢查的異常(Checked Exceptions)”——

Unchecked Exceptions :編譯器不檢查方法是否處理或拋出的異常,即不做處理,編譯時(shí)不報(bào)錯(cuò)。

Checked Exceptions:受編譯器檢查的異常,即不做處理編譯時(shí)通不過。

4.常見的幾種Checked Exceptions:ClassNotFoundExceptionIOExceptionInterruptedExceptionFileNotFoundException.(盡可能的記幾個(gè)吧,以防不測)第八章

1.流--字節(jié)流和字符流;

流--節(jié)點(diǎn)流和處理流。

2.所有的輸入流都是從抽象類InputStream和Reader繼承而來。所有輸出流都是從抽象類OutputStream和Writer繼承而來。3.字節(jié)流:InputStream和OutputStream;字符流:Reader和Writer;

4.節(jié)點(diǎn)流:直接與文件等底層打交道,如FileInputStreamFileOutputStreamFileReaderFileWriter.處理流:相當(dāng)于包裝流,套在節(jié)點(diǎn)流上,方便數(shù)據(jù)處理。相關(guān)一些用法,具體參考最后一次實(shí)驗(yàn)。

第二篇:JAVA總結(jié)專題

在這忙忙碌碌的這段時(shí)間里,經(jīng)過老師的輔導(dǎo),迅速的將一點(diǎn)沒有學(xué)的JAVA基礎(chǔ)搞定了!有了基礎(chǔ)學(xué)習(xí)還是好,萬事開頭難這句話說的太對了,學(xué)計(jì)算機(jī)語言我覺得記憶好的方法就是多打代碼,課前預(yù)習(xí),課堂上認(rèn)真聽講,把現(xiàn)學(xué)的方法把以前所做的作業(yè)用最簡便的方法再一次鞏固,創(chuàng)新最重要,在后續(xù)的學(xué)習(xí)中,得要加倍努力學(xué)習(xí)。

其實(shí)學(xué)java有不懂,要先自己思考。想清楚這句代碼是什么意思。為什么要寫在這,等等之類的。等你真的搞不明白的時(shí)候,就一定要向老師咨詢,不要感到有什么丟人的。因?yàn)椴粫?huì)是很正常的事。并不是每個(gè)人都是天才,一學(xué)就會(huì),一學(xué)就能運(yùn)用自如的。學(xué)java有一點(diǎn)是非常重要的,就是練習(xí)。一段代碼要不停的敲,多敲幾遍,尤其是自己不熟悉或者不熟練的代碼,更要敲。不要感覺到厭煩,其實(shí)我感覺敲代碼挺好玩的,并不是一件很枯燥的事。

老師平常布置的課后上機(jī)練習(xí)題一定要做,課后的練習(xí)題能夠讓你把新學(xué)到的知識鞏固一遍,能夠加深記憶,不會(huì)讓你在以后做題的時(shí)候感到?jīng)]一點(diǎn)思路。

當(dāng)感覺到不會(huì)的時(shí)候,千萬不要?dú)怵H,因?yàn)檫@很正常,現(xiàn)在的學(xué)習(xí)就是為了培養(yǎng)你有一個(gè)邏輯思維,為了以后開發(fā)軟件的時(shí)候有個(gè)完整,清晰的思路。

其實(shí),總體來說。學(xué)習(xí)java很快樂。尤其是當(dāng)你遇到一道自己不會(huì)的題,然后,又通過自己的努力解決了,那時(shí)候,那種心情不是用言語來表達(dá)的。就好像你遇到一個(gè)數(shù)學(xué)難題,自己解決了之后那種成就感一樣。

學(xué)java的時(shí)候一定要,放松心情,輕輕松松的來學(xué),隨時(shí)讓自己快樂著,這樣能夠讓你能夠更快的接受java,千萬不要有什么心理負(fù)擔(dān),因?yàn)閖ava的特點(diǎn)之一就是--簡單易懂。只要自己努力到了,就一定能夠?qū)W好java。

學(xué)完了JAVA今天我們用項(xiàng)目案例:迷你DVD管理器來鞏固了我們所學(xué)的所有內(nèi)容,通過這項(xiàng)目的操練,首先,1、項(xiàng)目用到了會(huì)使用順序、分支、循環(huán)、跳轉(zhuǎn)語句編寫程序,2、要會(huì)使用數(shù)組、操作字符串,3、會(huì)使用帶參的方法;

4、會(huì)定義類、創(chuàng)建和使用對象,看到這些腦袋里一片迷茫啊!不知道怎樣寫,然后想到早寫晚寫都一樣,就照著書上寫起來了,到現(xiàn)在還是弄不懂的就是那個(gè)對象數(shù)組,不知道怎樣去理解,抽象的把我抽暈了,有望老師來給我們補(bǔ)補(bǔ)這一章,在實(shí)現(xiàn)DVD的業(yè)務(wù)處理時(shí),計(jì)算時(shí)差還是不懂,照著書上打了一遍,可還是得不到想要的結(jié)果,經(jīng)過網(wǎng)上的搜尋與老師講解,現(xiàn)在已略懂一二了,在做完這項(xiàng)目后,真不知道當(dāng)時(shí)是怎樣敲出來的,難道這就是所說的靈感!感覺很高興,現(xiàn)在已習(xí)慣了代碼報(bào)錯(cuò),其實(shí)代碼報(bào)錯(cuò)是一件值得鼓勵(lì)的事,因?yàn)闆]有錯(cuò)就覺得自己什么都懂了,在學(xué)習(xí)中相信每一個(gè)人都遇到過挫折吧!但一定要想方法戰(zhàn)勝挫折!我的戰(zhàn)勝挫折方法就是不懂思考后還不懂就問,懂了以后就筆記本記下當(dāng)時(shí)的解決方案!學(xué)習(xí)剛開始!后面的路很長,慢慢的去磨煉了!總結(jié)完畢!

第三篇:Java格式總結(jié)

Java定義格式:

1、數(shù)據(jù)類型的強(qiáng)制性轉(zhuǎn)換語法:

(欲轉(zhuǎn)換的數(shù)據(jù)類型)變量名稱;

2、if語句的格式:

if(條件判斷)

語句;

3、if語句的格式:

if(條件判斷){ 語句1;

語句2;

語句3; }

4、if…else語句的格式:

if(判斷條件){ 語句主體1; } else { 語句主體2; }

5、條件語句格式:

條件判斷?表達(dá)式1:表達(dá)式2; 即:

If(條件判斷){ 變量 x=表達(dá)式1; } Else { 變量x=表達(dá)式2; }

6、if…else if…else語句格式:

if(判斷條件1){ 語句主體1; } else if(判斷條件2){ 語句主體2; }

//多個(gè)else if語句 Else { 語句主體3; }

7、switch語句格式:

switch(表達(dá)式){ case 選擇值1:語句主體1;

break;

case 選擇值2:語句主體2;

break;

……

case 選擇值n:語句主體n;

break;

default: 語句主體; }

8、while循環(huán)語句格式:

while(判斷條件){ 語句1;

語句2; ……

語句n; }

9、do……while語句格式:

do { 語句1;

語句2;

……

語句n;

}while(判斷條件)

10、for循環(huán)語句格式:

for(賦值初值:判斷條件:賦值增減量){ 語句1;

……

語句n; }

11、break語句格式:

for(賦值初值:判斷條件:賦值增減量){ 語句1;12、13、14、15、16、17、18、19、20、21、語句2; …….break;

……

//若執(zhí)行break語句,此塊內(nèi)的語句都不再執(zhí)行 語句n; } continue語句格式:

for(賦值初值:判斷條件:賦值增減量){ 語句1;

語句2;

……

Continue;//若執(zhí)行continue語句,此塊內(nèi)的語句不再執(zhí)行

……

語句n; } 一維數(shù)組的聲明與分配內(nèi)存格式:

數(shù)據(jù)類型

數(shù)組名[];

//聲明一維數(shù)組

數(shù)組名=new 數(shù)據(jù)類型[個(gè)數(shù)];

//分配內(nèi)存給數(shù)組 聲明數(shù)組的同時(shí)分配內(nèi)存格式:

數(shù)據(jù)類型 數(shù)組名[]=new 數(shù)據(jù)類型[個(gè)數(shù)] 數(shù)組長度的取得格式: 數(shù)組名.length 數(shù)組初值的賦值格式:

數(shù)據(jù)類型 數(shù)組名[]={初值0,初值1,…,初值n}; 二維數(shù)組的聲明格式: 數(shù)據(jù)類型 數(shù)組名[][];

數(shù)據(jù)名=new 數(shù)據(jù)類型[行的個(gè)數(shù)][列的個(gè)數(shù)]; 二維數(shù)組色聲明及分配內(nèi)存格式:

數(shù)據(jù)類型 數(shù)據(jù)名[][]=new 數(shù)據(jù)類型[行的個(gè)數(shù)][列的個(gè)數(shù)]; 二維數(shù)組初值的賦值格式:

數(shù)據(jù)類型 數(shù)組名={{第0行初值},{第1行初值},……

{第n行初值} };

取得二維數(shù)組的行數(shù)與特定行的元素的個(gè)數(shù)格式: 數(shù)組名.length

//取得數(shù)組的行數(shù)

數(shù)組名[行的索引].length

//取得特定行元素的個(gè)數(shù) 聲明方法并定義內(nèi)容格式:

返回值類型 方法名稱(類型 參數(shù)1,類型 參數(shù)2,…){ 程序語句;

return 表達(dá)式;22、23、24、25、26、27、28、} 類的定義格式: class 類名稱 { 數(shù)據(jù)類型 屬性;

……

返回值的數(shù)據(jù)類型 方法名稱(參數(shù)1,參數(shù)2…){ 程序語句;

return 表達(dá)式; } } 對象的產(chǎn)生格式:

類名 對象名=new 類名();

訪問對象中某個(gè)變量或方法格式: 訪問對象:對象名稱.屬性名 訪問方法:對象名稱.方法名()封裝類中的屬性或方法格式:

封裝屬性:private 屬性類型 屬性名

封裝方法:private 方法返回類型 方法名稱(參數(shù))構(gòu)造方法的定義格式: class 類名稱 { 訪問權(quán)限 類名稱(類型1 參數(shù)1,類型2 參數(shù)2,…){

程序語句;

//構(gòu)造方法沒有返回值 } } 定義內(nèi)部類格式:

標(biāo)識符 class 外部類名稱 { //外部類的成員

標(biāo)識符 class 內(nèi)部類的名稱 {

//內(nèi)部類的成員 } } 類的繼承格式

class父類

//定義父類 { } class 子類 extends 父類

//用extends關(guān)鍵字實(shí)現(xiàn)類的繼承 {29、30、31、32、33、34、35、} Super調(diào)用父類中的屬性或方法格式: super.父類中的屬性; super.父類中的方法();

子類復(fù)寫父類中的方法的格式: class Super { 訪問權(quán)限 方法返回值類型 方法1(參數(shù)1)

{ } } class Sub extends Super { 訪問權(quán)限 方法返回值類型 方法1(參數(shù)1)//復(fù)寫父類中的方法

{ } } 抽象類的定義格式:

abstract class 類名稱

//定義抽象類 { 聲明數(shù)據(jù)成員;

訪問權(quán)限 返回值的數(shù)據(jù)類型 方法名稱(參數(shù)…)

{ } abstract 返回值的數(shù)據(jù)類型 方法名稱(參數(shù)…);

//定義抽象方法,在抽象方法里,沒有定義處理的方式 } 接口的定義格式:

Interface 接口名稱

//定義抽象類 { final 數(shù)據(jù)類型 成員名稱=常量;

//數(shù)據(jù)成員必須賦初值

abstract 返回值的數(shù)據(jù)類型 方法名稱(參數(shù)…);

//抽象方法,注意在抽象方法里,沒有定義處理的方式 } 接口的實(shí)現(xiàn)格式:

class 類名稱 implements 接口A,接口B

//接口的實(shí)現(xiàn) { …… } 接口的擴(kuò)展格式:

Interface 子接口名稱 extends 父接口1,父接口2,… { …… } 異常處理的語法格式: try36、37、38、39、40、41、{ 要檢查的程序語句;

… } catch(異常類 對象名稱){ 異常發(fā)生時(shí)的處理語句; } finally { 一定會(huì)運(yùn)行到的程序代碼; } 拋出異常的語法格式: Throw 異常類實(shí)例對象; 由方法拋出異常格式:

方法名稱(參數(shù)…)throws 異常類1,異常類2,… 編寫自定義異常類格式:

class 異常名稱 extends Exception { …… } Package的聲明格式: Package package名稱; package的導(dǎo)入格式:

import package名稱.類名稱; 由鍵盤輸入數(shù)據(jù)基本形式格式: Import java.io.*;Public class class_name

//類名 { Public static void main(String args[])throws IOException { BufferedReader buf;//聲明buf為BufferedReader類的變量

String str;//聲明str為String類型的變量

……

Buf=new BufferedReader(new InputStreamReader(System.in));//產(chǎn)生buf對象

Str=buf.readLine();

//讀入字符串至buf …… } }

第四篇:java總結(jié)

調(diào)用父類構(gòu)造方法

? 在子類的構(gòu)造方法中可使用super(argument_list)語句調(diào)用父類的構(gòu)造方法

? 如果子類的構(gòu)造方法中沒有顯示地調(diào)用父類構(gòu)造方法,也沒有使用this關(guān)鍵字調(diào)用重載的其它構(gòu)造方法,則系統(tǒng)默認(rèn)調(diào)用父類無參數(shù)的構(gòu)造方法

? 如果子類構(gòu)造方法中既未顯式調(diào)用父類構(gòu)造方法,而父類中又沒有無參的構(gòu)造方法,則編譯出錯(cuò)

1public class Person {

3private String name;

4private int age;private Date birthDate;

7public Person(String name, int age, Date d){ 8this.name = name;

9this.age = age;

10this.birthDate = d;

11}

12public Person(String name, int age){ 13this(name, age, null);

14}

15public Person(String name, Date d){ 16this(name, 30, d);

17}

18public Person(String name){

19this(name, 30);}

21// ……

22}

1public class Student extends Person {

2private String school;

4public Student(String name, int age, String s){ 5super(name, age);

6school = s;

7}

8public Student(String name, String s){

9super(name);

10school = s;

11}

12public Student(String s){ // 編譯出錯(cuò): no super()13school = s;

14}

15}

對象構(gòu)造和初始化細(xì)節(jié)

? 分配存儲(chǔ)空間并進(jìn)行默認(rèn)的初始化

? 按下述步驟初始化實(shí)例變量

1.綁定構(gòu)造方法參數(shù)

2.如有this()調(diào)用,則調(diào)用相應(yīng)的重載構(gòu)造方法,然后跳轉(zhuǎn)到步驟5

3.顯式或隱式追溯調(diào)用父類的構(gòu)造方法(Object類除外)

4.進(jìn)行實(shí)例變量的顯式初始化操作

5.執(zhí)行當(dāng)前構(gòu)造方法的方法體

==操作符與equals方法

==操作符與equals方法的區(qū)別:

? 引用類型比較引用;基本類型比較值;

? equals()方法只能比較引用類型,“==”可以比較引用類型及基本類型;

? 特例:當(dāng)用equals()方法進(jìn)行比較時(shí),對類File、String、Date及封裝類(Wrapper Class)來說,是比較類型及內(nèi)容而不考慮引用的是否是同一個(gè)實(shí)例;

? 用“==”進(jìn)行比較時(shí),符號兩邊的數(shù)據(jù)類型必須一致(可自動(dòng)轉(zhuǎn)換的基本數(shù)據(jù)類型除外),否則編譯出錯(cuò);

由裝箱引發(fā)的——Integer比較的來龍去脈

前置知識: 眾所周之,java是保留了int,char等基本數(shù)據(jù)類型的,也就是說int類型的并不是對象,然而有些方法卻需要object 類型的變量,所以java使用了裝箱機(jī)制,我們可一自豪的這樣聲明一個(gè)整型變量:Integer a = new Integer(10);那么整型的a也就是對象了,那這句是什么意思呢:Integer a= 10;java中可以這樣聲明一個(gè)對象嗎?當(dāng)然不是,從jdk1.5后,java實(shí)現(xiàn)了自動(dòng)裝箱,也就是自動(dòng)將Integer a =10 中的int類型的10轉(zhuǎn)化為了 Integer類型。好,有了前面的只是我們且先看一個(gè)題目:

Integer a = 127;

Integer b = 127;

Integer c = 128;

Integer d = 128;

System.out.println(a==b);

System.out.println(c==d);

答案是什么呢? 如果您回答true,false,那么很遺憾的告訴你,哈哈,其實(shí)你答對了!!

那我們暈了就相差1的兩個(gè)數(shù)為啥走向了“反目成仇”的地步呢?憑啥127等于127,我128就不等于128呢?且聽我慢慢道來,Integer a =127,Integer a=128。

127,128應(yīng)該不會(huì)造成什么差異吧,難道是自動(dòng)裝箱的過程有貓膩?找下源碼看看:

private static class IntegerCache {

private IntegerCache(){}

static final Integer cache[] = new Integer[-(-128)+ 127 + 1];static {

for(int i = 0;i < cache.length;i++)

cache[i] = new Integer(i128);

}

這是用一個(gè)for循環(huán)對數(shù)組cache賦值,cache[255] = new Integer(255-128),也就是newl一個(gè)Integer(127),并把引用賦值給cache[255],好了,然后是Integer b= 127,流程基本一樣,最后又到了cache[255] = new Integer(255-128),這一句,那我們迷糊了,這不是又new了一個(gè)對象127嗎,然后把引用賦值給cache[255],我們比較這兩個(gè)引用(前面聲明a的時(shí)候也有一個(gè)),由于是不同的地址,所以肯定不會(huì)相等,應(yīng)該返回false啊!呵呵,這么想你就錯(cuò)了,請注意看for語句給cache[i]初始化的時(shí)候外面還一個(gè){}呢,{}前面一個(gè)大大的static關(guān)鍵字大咧咧的杵在哪呢,對靜態(tài)的,那么我們就可以回想下static有什么特性了,只能初始化一次,在對象間共享,也就是不同的對象共享同一個(gè)static數(shù)據(jù),那么當(dāng)我們Integer b = 127的時(shí)候,并沒有new出一個(gè)新對象

來,而是共享了a這個(gè)對象的引用,記住,他們共享了同一個(gè)引用!!,那么我們進(jìn)行比較a==b時(shí),由于是同一個(gè)對象的引用(她們在堆中的地址相同),那當(dāng)然返回true了!!

然后我們在看Integer c = 128;Integer d = 128;這兩句。現(xiàn)在不用我說就應(yīng)該能明白了吧,當(dāng)數(shù)據(jù)不再-128到127之間時(shí),是不執(zhí)行return

IntegerCache.cache[i + offset];這句的,也就是不會(huì)返回一個(gè)static的引用,而是執(zhí)行了return new Integer(i);于是當(dāng) Integer d = 128 時(shí),又會(huì)重新返回一個(gè)引用,兩個(gè)不同的引用

在做c==d 的比較時(shí)當(dāng)然返回false了!

下面附上本程序的字節(jié)碼以供喜歡底層的讀者參考:

Compiled from “CompareInteger.java”

public class CompareInteger extends java.lang.Object{

public CompareInteger();

Code:

0:aload_0

1:invokespecial#1;//Method java/lang/Object.“”:()V4:return

public static void main(java.lang.String[]);

Code:

0:bipush 127

2:invokestatic#2;//Method

java/lang/Integer.valueOf:(I)Ljava/lang/Int

eger;

5:astore_1

6:bipush 127

8:invokestatic#2;//Method

java/lang/Integer.valueOf:(I)Ljava/lang/Int

eger;

11: astore_2

12: sipush 128

15: invokestatic#2;//Method

java/lang/Integer.valueOf:(I)Ljava/lang/Int

eger;

18: astore_3

19: sipush 128

22: invokestatic#2;//Method

java/lang/Integer.valueOf:(I)Ljava/lang/Int

eger;

25: astore 4

27: getstatic#3;//Field

java/lang/System.out:Ljava/io/PrintStream;

30: aload_1

31: aload_2

32: if_acmpne39

35: iconst_1

36: goto40

39: iconst_0

40: invokevirtual#4;//Method java/io/PrintStream.println:(Z)V43: getstatic#3;//Field

java/lang/System.out:Ljava/io/PrintStream;

46: aload_3

47: aload4

49: if_acmpne56

52: iconst_1

53: goto57

56: iconst_0

57: invokevirtual#4;//Method java/io/PrintStream.println:(Z)V60: return

}

評論:呵呵,這么想你就錯(cuò)了,請注意看for語句給cache[i]初始化的時(shí)候外面還一個(gè){}呢,{}前面一個(gè)大大的static關(guān)鍵字大咧咧的杵在哪呢,對靜態(tài)的,那么我們就可以回想下static有什么特性了,只能初始化一次,在對象間共享,也就是不同的對象共享同一個(gè)static數(shù)據(jù),那么當(dāng)我們Integer b = 127的時(shí)候,并沒有new出一個(gè)新對象來,而是共享了a這個(gè)對象的引用,記住,他們共享了同一個(gè)引用!!

呵呵,博主我被你這句話小小的誤導(dǎo)了一下,其實(shí)你這里說的原理沒錯(cuò),但是把位置說錯(cuò)了,這段代碼只是初始化cache:

static {

for(int i = 0;i < cache.length;i++)

cache[i] = new Integer(i-128);

}

但真正讓cache[i]為static變量的是這句代碼:

static final Integer cache[] = new Integer[-(-128)+ 127 + 1];

第五篇:Java個(gè)人總結(jié)參考

1、Java中取消指針運(yùn)算防止了內(nèi)存泄露的可能性。Java中的引用其實(shí)就是指針。JAVA語言不支持C++友元方法或友類。

2、編寫完java源代碼后,首先將其編譯為一種中間狀態(tài)字的字節(jié)碼,然后Java虛擬機(jī)上的解釋器來解釋執(zhí)行,“一次編程,到處運(yùn)行”,Java是文本文件,編輯代碼。

3、Window系統(tǒng)對于DOS命令中字符大小寫不敏感;Java編譯器和解釋器對大小寫敏感;保存源文件時(shí),文件名一定要和源文件中公開類的類名一致。

4、習(xí)慣上,變量名以小寫字母開頭,類名以大寫字母開頭,常量名中所有的字符均大寫。

5、final常量:初始化后不再重新賦值,在類繼承時(shí)不允許子類覆蓋。

6、類實(shí)例化就成為對象。

7、類繼承:繼承父類的屬性和方法(關(guān)鍵字extends)

定義抽象類:關(guān)鍵字abstract

類聲明:P62

類成員:P63

8、Java接口中聲明了一組抽象方法,它構(gòu)成了實(shí)現(xiàn)該接口的不同類共同遵守的約定。在類的定義中可以用關(guān)鍵字implements來指定其實(shí)現(xiàn)的接口。

9、Java接口與類的重要區(qū)別:Java接口中不存在構(gòu)建器。

10、包的作用(P105);Java中類的訪問控制符(P77);操作符優(yōu)先級(P38)

11、包的命名:網(wǎng)絡(luò)域名的逆序

包的使用:關(guān)鍵字import

12、異常處理(P119.120.125):FileNotFoundException:代表文件未找到;SQLException:代表有關(guān)JDBC的異常;NullPointerException:表示試圖引用null對象的方法或?qū)傩裕籌ndexOutOfBoundException:表示數(shù)組越界的異常。

13、框架的默認(rèn)關(guān)閉程序:f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

14、setIconImage用于設(shè)定框架的圖標(biāo);setLocation用于設(shè)定框架在屏幕上的位置。

15、取得框架的內(nèi)容窗格:Container contentPane=f.getContnetPane();

16、面板的默認(rèn)布局管理器是FlowLayout。setBownds(x,y,w,h)設(shè)置x,y坐標(biāo)以及寬和高

17、內(nèi)容窗格的默認(rèn)布局管理器是邊框布局(BorderLayout)

18、網(wǎng)格布局(GridLayout)將容器劃分為大小相同的網(wǎng)格。

19、網(wǎng)格袋布局(GridBagLayout)是最靈活,也是最復(fù)雜的布局管理器。20、對話框 P180

showMessageDialog:消息對話框

showInputDialog:輸入對話框

showConfirmDialog:確認(rèn)對話框

showOptionDialog:選項(xiàng)對話框

21、類File有三種常用構(gòu)建器:

File(String fileName)

File(String directory ,String fileName)File(File directory ,String fileName)

22、位于java.io包中的類包含兩組獨(dú)立的類層次結(jié)構(gòu):一個(gè)用于讀取字節(jié),成為字節(jié)流;一個(gè)用于讀寫字符,稱為字符流。區(qū)別在于它們處理數(shù)據(jù)的方式,字節(jié)流按字節(jié)(一個(gè)8位組)來處理。字節(jié)流(P243)字符流(P245)

23、System.in 表示系統(tǒng)標(biāo)準(zhǔn)輸入流,指向鍵盤輸入;System.out 表示系統(tǒng)標(biāo)準(zhǔn)輸出流,指向屏幕輸出;System.err 表示系統(tǒng)標(biāo)準(zhǔn)錯(cuò)誤輸出流,指向屏幕輸出;

24、文件的讀寫工作包括三個(gè)步驟:①、打開文件輸入流或輸出流;②、文件讀或?qū)懖僮鳎虎邸㈥P(guān)閉文件輸入流或輸出流;

25、定制線程類:①、繼承線程類Thread;②、實(shí)現(xiàn)Runnable接口;

#約定俗成的命名規(guī)則#

1、類名首字母必須大寫

2、方法和屬性必須小寫

3、由多個(gè)單詞組成的類名或方法必須采用駝峰標(biāo)識

如:類名:StudentAdmin 方法或?qū)傩裕簊tudentName

*Equal 匹配

*equalIgnoreCase 匹配時(shí)忽略大小寫 *Indexof 包含

*getMetaDate 獲取元數(shù)據(jù) *精度轉(zhuǎn)換

*面向?qū)ο笕筇匦裕悍庋b、繼承、多態(tài) *界面邏輯、業(yè)務(wù)邏輯、數(shù)據(jù)邏輯 *三層架構(gòu)總結(jié):

1、開發(fā)人員可以只關(guān)注整個(gè)結(jié)構(gòu)中的其中某一層

2、可以很容易用新的實(shí)現(xiàn)來替換原有層次的實(shí)現(xiàn)

3、可以降低層與層之間的依賴

4、有利于標(biāo)準(zhǔn)化

5、利于各層邏輯的復(fù)用

下載Java總結(jié)word格式文檔
下載Java總結(jié).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    Java筆記總結(jié)

    1、Java是一種可以編譯 跨平臺、面向?qū)ο蟮母呒売?jì)算機(jī)語言。 2、Java語言的特點(diǎn):簡單、安全、跨平臺、面向?qū)ο蟆⒅С侄嗑€程。 3、Java的三個(gè)技術(shù)平臺分別是 JavaSE、JavaEE......

    java實(shí)習(xí)總結(jié)

    java實(shí)習(xí)總結(jié) java實(shí)習(xí)總結(jié)1 實(shí)習(xí)第五個(gè)禮拜,使用collection框架做派叫號系統(tǒng)首先分析項(xiàng)目需求,概述如下:1.產(chǎn)品參與者顧客:到營業(yè)大廳排隊(duì)取號柜員:提供業(yè)務(wù)服務(wù)的柜臺業(yè)務(wù)員管......

    java培訓(xùn)總結(jié)(范文大全)

    在現(xiàn)在這個(gè)科技飛速發(fā)展的時(shí)代,計(jì)算機(jī)已經(jīng)悄然走進(jìn)我們的生活,并且占據(jù)了不可動(dòng)搖與替代的地位,無論是在工作還是生活,學(xué)習(xí)還是娛樂中,當(dāng)我們意識到的時(shí)候,卻突然發(fā)現(xiàn)我們已經(jīng)離不......

    二級JAVA總結(jié)

    對長度為n的線性表進(jìn)行冒泡排序,最壞情況先需要比較的次數(shù)為log2n。 對長度為n的線性表進(jìn)行順序排序,最壞情況先需要比較的次數(shù)為n。 高內(nèi)聚低耦合有利于模塊的獨(dú)立性。 二叉......

    java學(xué)習(xí)總結(jié)

    第三周學(xué)習(xí)總結(jié)這周從HTML學(xué)到了mysql: 1. HTML:Hypertext Markup Language超文本標(biāo)記語言 后綴名為.html或.htm 由兩部分組成:head和body 2.body屬性:bgcolor、background、bgp......

    Java實(shí)習(xí)總結(jié)

    Java實(shí)習(xí)總結(jié)Java實(shí)習(xí)總結(jié)1進(jìn)一步了解Java開發(fā)的相關(guān)知識,掌握J(rèn)ava開發(fā)的基本技術(shù),豐富Java開發(fā)的實(shí)戰(zhàn)經(jīng)驗(yàn)。學(xué)習(xí)SQL的基礎(chǔ)知識及正確的運(yùn)用方法,ssh等企業(yè)應(yīng)用框架和有用的相......

    Java排序總結(jié)

    倒敘排序 第一種利用一個(gè)數(shù)組來盛放后,再來倒敘輸出 public class daoxu { } 第二種利用一個(gè)變量來轉(zhuǎn)換后,倒序輸出 public class daoxu { public static void main(String......

    Java線程總結(jié)

    Java線程總結(jié) 首先要理解線程首先需要了解一些基本的東西,我們現(xiàn)在所使用的大多數(shù)操作系統(tǒng)都屬于多任務(wù),分時(shí)操作系統(tǒng)。正是由于這種操作系統(tǒng)的出現(xiàn)才有了多線程這個(gè)概念。我......

主站蜘蛛池模板: 久久久久久人妻一区二区三区| 丝袜老师办公室里做好紧好爽| 在线精品国产成人综合| 又大又紧又粉嫩18p少妇| 亚洲精品无码永久在线观看男男| 无码中文字幕色专区| 欧美日韩综合一区二区三区| 国产私人尤物无码不卡| 国产免费一区二区三区免费视频| 国产亚洲欧美另类一区二区| 亚洲精品成人片在线播放| 久爱www人成免费网站| 人妻中文字幕乱人伦在线| 亚洲国产av无码精品| 成人免费无码大片a毛片18| 日本一道高清一区二区三区| 国产人妻鲁鲁一区二区| 中文字幕 在线观看 亚洲| 不卡一区二区视频日本| 久久精品国产只有精品96| 久久久久亚洲波多野结衣| 国产在线无码制服丝袜无码| 国产精品成人免费一区久久羞羞| 国产精品成人免费一区久久羞羞| 成人无码视频| 夜夜高潮次次欢爽av女| 人妻中文字幕无码系列| 国产亚洲精品久久久久久小说| 国产剧情国产精品一区| 亚洲欧洲无卡二区视頻| 97久久精品无码一区二区天美| 亚洲国产精品无码久久久不卡| 西西人体44www高清大胆| 四虎国产精品永久地址入口| 伊人精品一本久久综合| 国产人妻久久精品一区二区三区| 日本 欧美 制服 中文 国产| 日本真人边吃奶边做爽动态图| 性xxxxx欧美极品少妇| 亚洲精品久久久久久久久av无码| 女人被狂躁的高潮免费视频|