JAVA基礎復習(1)

JAVA中的幾種基本類型

作用域public,private,protected,以及不寫時的區(qū)別

類的成員不寫訪問修飾時默認為default。默認對于同一個包中的其他類相當于公開(public)豆励,對于不是同一個包中的其他類相當于私有(private)夺荒。受保護(protected)對子類相當于公開,對不是同一包中的沒有父子關系的類相當于私有良蒸。

Java面向?qū)ο蟮奶卣魇鞘裁矗?/b>

特征:繼承技扼、封裝、多態(tài)嫩痰、抽象

繼承:繼承是從已有類得到繼承信息創(chuàng)建新類的過程剿吻。提供繼承信息的類被稱為父類(超類、基類)串纺;得到繼承信息的類被稱為子類(派生類)丽旅。繼承讓變化中的軟件系統(tǒng)有了一定的延續(xù)性,同時繼承也是封裝程序中可變因素的重要手段纺棺。

封裝:通常認為封裝是把數(shù)據(jù)和操作數(shù)據(jù)的方法綁定起來榄笙,對數(shù)據(jù)的訪問只能通過已定義的接口。

多態(tài)性:多態(tài)性是指允許不同子類型的對象對同一消息作出不同的響應祷蝌。簡單的說就是用同樣的對象引用調(diào)用同樣的方法但是做了不同的事情茅撞。多態(tài)性分為編譯時的多態(tài)性和運行時的多態(tài)性。

抽象:抽象就是找出一些事物的相似和共性之處,然后將這些事物歸為一個類米丘,這個類只考慮這些事物的相似和共性之處剑令,并且會忽略與當前主題和目標無關的那些方面,將注意力集中在與當前目標有關的方面蠕蚜。例如尚洽,看到一只螞蟻和大象悔橄,你能夠想象出它們的相同之處靶累,那就是抽象。抽象包括行為抽象和狀態(tài)抽象兩個方面癣疟。

組合(Composition)挣柬、聚合(Aggregation)區(qū)別:

組合和聚合是有很大區(qū)別的,這個區(qū)別不是在形式上睛挚,而是在本質(zhì)上:

比如A類中包含B類的一個引用b邪蛔,當A類的一個對象消亡時,b這個引用所指向的對象也同時消亡(沒有任何一個引用指向它扎狱,成了垃圾對象)侧到,這種情況叫做組合,

反之b所指向的對象還會有另外的引用指向它淤击,這種情況叫聚合

int與Integer的區(qū)別匠抗,Integer的值緩存范圍

基本對比:

(1)Integer是int的包裝類;int是基本數(shù)據(jù)類型污抬;?

(2)Integer變量必須實例化后才能使用汞贸;int變量不需要;?

(3)Integer實際是對象的引用印机,指向此new的Integer對象矢腻;int是直接存儲數(shù)據(jù)值 ;?

(4)Integer的默認值是null射赛;int的默認值是0多柑。

深入對比:

(1)由于Integer變量實際上是對一個Integer對象的引用,所以兩個通過new生成的Integer變量永遠是不相等的(因為new生成的是兩個對象楣责,其內(nèi)存地址不同)顷蟆。

(2)Integer變量和int變量比較時,只要兩個變量的值是相等的腐魂,則結(jié)果為true(因為包裝類Integer和基本數(shù)據(jù)類型int比較時帐偎,java會自動拆包裝為int,然后進行比較蛔屹,實際上就變?yōu)閮蓚€int變量的比較)削樊。

(3)非new生成的Integer變量和new Integer()生成的變量比較時,結(jié)果為false。(因為非new生成的Integer變量指向的是java常量池中的對象漫贞,而new Integer()生成的變量指向堆中新建的對象甸箱,兩者在內(nèi)存中的地址不同)

(4)對于兩個非new生成的Integer對象,進行比較時迅脐,如果兩個變量的值在區(qū)間-128到127之間芍殖,則比較結(jié)果為true,如果兩個變量的值不在此區(qū)間谴蔑,則比較結(jié)果為false豌骏。原因:java在編譯Integer i = 100 ;時,會翻譯成為Integer i = Integer.valueOf(100)隐锭。而java API中對Integer類型的valueOf的定義如下窃躲,對于-128到127之間的數(shù),會進行緩存钦睡,Integer i = 127時蒂窒,會將127進行緩存,下次再寫Integer j = 127時荞怒,就會直接從緩存中取洒琢,就不會new了。

public?static?void?main(String[]?args)?{ ?

Integer?i=new?Integer(100);??

Integer?s=new?Integer(100);??

int?i1=100;??

Integer?s1=100;??

Integer?j?=100;??

System.out.println(s1?==?j);//運行結(jié)果true??

Integer?i2?=128;??

Integer?j2?=128;??

System.out.println(i2?==?j2);//運行結(jié)果false??

System.out.println(i==s);//運行結(jié)果false??

System.out.println(i==i1);//運行結(jié)果true??

System.out.println(s==s1);//運行結(jié)果false??

???}??

?? 總之Java是一個近乎純潔的面向?qū)ο缶幊陶Z言褐桌,但是為了編程的方便還是引入不是對象的基本數(shù)據(jù)類型衰抑,但是為了能夠?qū)⑦@些基本數(shù)據(jù)類型當成對象操作,Java為每一個基本數(shù)據(jù)類型都引入了對應的包裝類型(wrapper class)撩嚼,int的包裝類就是Integer停士,從JDK 1.5開始引入了自動裝箱/拆箱機制,使得二者可以相互轉(zhuǎn)換完丽。小編推薦一個學java的學習裙【五五七恋技,八六五,】逻族,【驗證:煙火】無論你是大牛還是小白蜻底,是想轉(zhuǎn)行還是想入行都可以來了解一起進步一起學習!裙內(nèi)有開發(fā)工具聘鳞,很多干貨和技術(shù)資料分享!每天晚上8點還會直播講課薄辅,大家可以一起互動學習,一起進步抠璃。

...

final, finally, finalize 的區(qū)別

(1)final修飾符(關鍵字)如果一個類被申明為final,意味著它不能再派生出新的子類站楚,不能作為父類被繼承,因此一個類不能既被聲明為abstract的搏嗡,又被聲明為final的窿春。將變量和方法聲明為final變量的拉一,可以保證它們在使用中不被改變。被聲明為final的變量必須在申明時給定初值旧乞,而在以后的引用中只能讀取不可以被修改蔚润。被申明為final的方法也同樣只能使用不能重載。

(2)finally在異常處理時提供finally塊來執(zhí)行任何清除操作尺栖。如果拋出一個異常嫡纠,那么相匹配的catch子句就會執(zhí)行,然后控制就會進入finally塊(如果有的話)延赌。

(3)finalize方法名除盏。java技術(shù)允許使用finalize()方法在垃圾收集器將對象從內(nèi)存中清除出去之前做好必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用的情況下對這個對象的調(diào)用皮胡。它是在object類中定義的痴颊,因此所有的類都繼承了它赏迟。子類覆蓋finalize()方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作屡贺。finalize()方法是在垃圾收集器刪除對象之前對這個對象的調(diào)用。

&和&&锌杀、|和||的區(qū)別甩栈?

(1) 與操作:與操作分為兩種,一種是普通與糕再,另外一種是短路與量没,一樣的地方就是二者執(zhí)行最后的結(jié)果是一樣的,但是執(zhí)行的過程有區(qū)別:

???? 普通與(&):表示所有的判斷條件都要執(zhí)行突想,不管前面是否滿足殴蹄;

???? 短路與(&&):如果前面的條件已經(jīng)是false了,那么后面的條件不需要再進行任何的判斷猾担;

(2)同理袭灯,或操作:或操作分為兩種,一種是普通或绑嘹,另外一種是短路或:

??? 普通或(|):表示所有的判斷條件都要執(zhí)行稽荧,不管前面是否滿足;

??? 短路或(||):如果前面的條件已經(jīng)是true了工腋,那么后面無論如何判斷都是true姨丈,就不判斷了;

在開發(fā)之中考慮到程序的性能肯定使用短路與(&&)和短路或(||)擅腰,執(zhí)行效率更高蟋恬。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市趁冈,隨后出現(xiàn)的幾起案子歼争,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矾飞,死亡現(xiàn)場離奇詭異一膨,居然都是意外死亡,警方通過查閱死者的電腦和手機洒沦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門豹绪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人申眼,你說我怎么就攤上這事瞒津。” “怎么了括尸?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵巷蚪,是天一觀的道長。 經(jīng)常有香客問我濒翻,道長屁柏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任有送,我火速辦了婚禮淌喻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘雀摘。我一直安慰自己裸删,他們只是感情好,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布阵赠。 她就那樣靜靜地躺著涯塔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪清蚀。 梳的紋絲不亂的頭發(fā)上匕荸,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音轧铁,去河邊找鬼每聪。 笑死,一個胖子當著我的面吹牛齿风,可吹牛的內(nèi)容都是我干的药薯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼救斑,長吁一口氣:“原來是場噩夢啊……” “哼童本!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起脸候,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤穷娱,失蹤者是張志新(化名)和其女友劉穎绑蔫,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泵额,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡配深,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了嫁盲。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片篓叶。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖羞秤,靈堂內(nèi)的尸體忽然破棺而出缸托,到底是詐尸還是另有隱情,我是刑警寧澤瘾蛋,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布俐镐,位于F島的核電站,受9級特大地震影響哺哼,放射性物質(zhì)發(fā)生泄漏佩抹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一幸斥、第九天 我趴在偏房一處隱蔽的房頂上張望匹摇。 院中可真熱鬧咬扇,春花似錦甲葬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梭灿,卻和暖如春画侣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背堡妒。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工配乱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人皮迟。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓搬泥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親伏尼。 傳聞我的和親對象是個殘疾皇子忿檩,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353