百問(wèn)百答

如果我們說(shuō)另一種不同的語(yǔ)言,那么我們就會(huì)發(fā)覺有一個(gè)不同的世界

 ——Luduing Wittgerstein

1、面向?qū)ο蟮奶卣饔心男?/p>

封裝

最常見的是把屬性私有化封裝在一個(gè)類里面宜肉,只能通過(guò)方法去訪問(wèn)

繼承

子類繼承父類,從而繼承了父類的方法和屬性

抽象

比如一個(gè)英雄類赁酝,抽象出了name葵姥、hp這些屬性,使得開發(fā)過(guò)程中更加易于理解

多態(tài)

多態(tài)分操作符的多態(tài)和類的多態(tài)蔫饰,類的多態(tài)指父類引用指向子類對(duì)象琅豆,并且有繼承,有重寫

2篓吁、String是最基本的數(shù)據(jù)類型嗎

不是茫因,String 是類類型

基本數(shù)據(jù)類型有四類八種

整型 byte short int long

字符 char

浮點(diǎn) double float

布爾 boolean

image

3、int 和integer有什么區(qū)別

int是基本數(shù)據(jù)類型32位證書

Integer是類類型杖剪,是int的包裝類

int和integer之間可以通過(guò)自動(dòng)裝箱冻押、自動(dòng)拆箱互相轉(zhuǎn)換

自動(dòng)裝箱:不需要調(diào)用構(gòu)造方法,通過(guò)=符號(hào)把基本類型轉(zhuǎn)換為類類型就叫裝箱

自動(dòng)拆箱:不需要調(diào)用integer的intvalue方法盛嘿,通過(guò)=就自動(dòng)轉(zhuǎn)換為int類型洛巢,就叫拆箱

4、String和StringBuffer的區(qū)別

String是immutable的次兆,其內(nèi)容一旦創(chuàng)建好之后稿茉,就不可以發(fā)生改變

StringBufffer是可以變長(zhǎng)的,內(nèi)容也可以發(fā)生改變

改變的原理是StringBuffer內(nèi)部采用了字符數(shù)組存放數(shù)據(jù),在需要增加長(zhǎng)度的時(shí)候漓库,創(chuàng)建新的數(shù)組恃慧,并且把原來(lái)的數(shù)據(jù)復(fù)制到新的數(shù)組這樣的辦法實(shí)現(xiàn)

5、為什么String類型不可變

String的成員變量都是private final的米苹,初始化之后不可變糕伐。

不可變的好處:最主要還是安全問(wèn)題

·便于實(shí)現(xiàn)字符串池

在java中會(huì)大量的使用String常量,如果每一次聲明一個(gè)String都要?jiǎng)?chuàng)建一個(gè)String

對(duì)象蘸嘶,那將會(huì)造成極大的空間資源浪費(fèi)良瞧。于是提出了String pool的概念,在堆中開辟一塊存儲(chǔ)空間String tool训唱,當(dāng)初始化String變量時(shí)褥蚯,如果該字符串已經(jīng)存在了,就不會(huì)創(chuàng)建一個(gè)新的字符串變量况增,而是會(huì)返回已經(jīng)存在了的字符串的引用

· 使線程安全

· 避免安全問(wèn)題

· 加快字符串處理速度

可通過(guò)反射破壞String的不可變性

6赞庶、運(yùn)行時(shí)異常與一般異常有什么區(qū)別?

運(yùn)行時(shí)異常又叫做非可排查異常澳骤,在編譯過(guò)程中歧强,不要求必須進(jìn)行顯示捕捉

一般異常又叫做可排查異常,在編譯過(guò)程中为肮,必須進(jìn)行處理摊册,要么捕捉,要么通過(guò)throws拋出去

7颊艳、說(shuō)出ArrayList茅特,Vector,LinkedList的存儲(chǔ)性能和特性

ArrayList和Vector棋枕,兩者都繼承了抽象類AbstractList白修,但是Vector是線程安全的,而ArrayList是非線程安全的

ArrayList和LinkedList區(qū)別重斑,參見8

8兵睛、ArrayList和LinkedList的區(qū)別

· ArrayList的實(shí)現(xiàn)是基于數(shù)組,LinkedList的實(shí)現(xiàn)是基于雙向鏈表

· 對(duì)于隨機(jī)訪問(wèn)窥浪,ArrayList優(yōu)于LinkedList卤恳,ArrayList可以根據(jù)下標(biāo)O(1)時(shí)間復(fù)雜度對(duì)元素進(jìn)行隨機(jī)訪問(wèn)。而LinkedList的每一個(gè)元素都依靠地址指針和它后一個(gè)元素連接在一起寒矿,在這種情況下突琳,查找某個(gè)元素的時(shí)間復(fù)雜度是O(n)

· 對(duì)于插入和刪除操作,LinkedList優(yōu)于ArrayList符相,因?yàn)楫?dāng)勻速被添加在LinkedList任意位置的時(shí)候拆融,不需要像ArrayList那樣重新計(jì)算大小或者更新索引

· LinkedList比ArrayList更占內(nèi)存蠢琳,因?yàn)長(zhǎng)inkedList的節(jié)點(diǎn)除了存儲(chǔ)數(shù)據(jù),還存儲(chǔ)了兩個(gè)引用镜豹,一個(gè)指向前一個(gè)元素傲须,一個(gè)指向后一個(gè)元素

9、Collection和Collections的區(qū)別

Collection是接口趟脂,是List和Set的父接口

Collections是工具類泰讽,提供了排序、混淆等等實(shí)用方法

10昔期、&和&&的區(qū)別

&有兩個(gè)作用已卸,分別是位與和邏輯與

&& 就是邏輯與

作為邏輯與,& 和 &&分別表示長(zhǎng)路與和短路與

長(zhǎng)路與兩次都會(huì)被運(yùn)損

短路與 只要第一個(gè)是false硼一,第二個(gè)就不進(jìn)行運(yùn)算了

11累澡、HashMap和Hashtable的區(qū)別

HashMap和Hashtable都實(shí)現(xiàn)了Map接口,都是鍵值對(duì)保存數(shù)據(jù)的方式

區(qū)別1:HashMap可以存放null般贼,Hashtable不能

區(qū)別2:HashMap不是線程安全的類读拆,Hashtable是

12栓袖、final傲绣、finally咆爽、finalize的區(qū)別

final

final修飾類、方法腮介、基本類型變量

修飾類望几,表示該類不能被繼承

修飾方法,表示該方法不能被重寫

修飾基本類型變量萤厅,表示該變量只能被賦值一次

修飾引用 表示引用只有一次指向?qū)ο蟮臋C(jī)會(huì)

finally

finally用于異常處理的場(chǎng)面,無(wú)論是否有異常拋出靴迫,都會(huì)執(zhí)行

finalize

finalize是Object的方法惕味,所有類都繼承了該方法。當(dāng)一個(gè)對(duì)象滿足垃圾回收的條件玉锌,并且被回收的時(shí)候名挥,其finalize()方法就會(huì)被調(diào)用

13、Overload和Override的區(qū)別主守,即重載和重寫的區(qū)別禀倔,OverLoaded的方法是否可以改變返回值的類型?

OverLoad参淫。重載

Override 重寫

可以救湖,重載其實(shí)本質(zhì)上就是完全不同的方法,只是恰好取了相同的名字

14涎才、Error和Exception的區(qū)別

Error和Exception都實(shí)現(xiàn)了Throwable接口

Error指的是JVM層面的錯(cuò)誤鞋既,比如內(nèi)存不足OOM

Exception指的是代碼邏輯的異常力九,比如數(shù)組下表越界等

15、abstract 邑闺、class跌前、抽象類和interface接口的區(qū)別

使用方式:

抽象類只能通過(guò)繼承被使用

接口必須通過(guò)實(shí)現(xiàn)被使用

實(shí)現(xiàn)方法:

抽象類不近可以提供抽象方法,也可以提供實(shí)現(xiàn)方法

接口只能提供抽象方法陡舅,不能提供實(shí)現(xiàn)方法抵乓,但從1.8開始,接口可以提供實(shí)現(xiàn)方法了靶衍,前提是要在方法前加一個(gè)default修飾符

16灾炭、heap和stack有什么區(qū)別

heap:堆

stack:棧

存放的內(nèi)容不一樣:

heap是存放對(duì)象的

stack是存放基本類型,引用摊灭、方法調(diào)用的

存取方式不一樣:

heap是自動(dòng)增加大小的咆贬,所以不需要指定大小,但是存取相對(duì)較慢

stack是固定大小帚呼,并且是FILO陷入后廚的順序掏缎,并且存取速度比較快

17、GC是什么煤杀?為什么要有GC

GC是垃圾回收英文的縮寫

所謂的垃圾眷蜈,指的是哪些不再被使用的對(duì)象,JVM的垃圾回收機(jī)制使得開發(fā)人員從無(wú)聊沈自、容易犯錯(cuò)的手動(dòng)釋放內(nèi)存資源的過(guò)程中解放出來(lái)酌儒,開發(fā)人員可以專注進(jìn)行業(yè)務(wù)開發(fā),而資源回收的工作交由更加專業(yè)的垃圾回收機(jī)制自動(dòng)完成

18枯途、short s1=1忌怎,s1=s1+1,有什么錯(cuò)誤

short s1=1 無(wú)錯(cuò)誤酪夷,1最終為short類型

s1=s1+1榴啸,會(huì)出現(xiàn)強(qiáng)制轉(zhuǎn)換錯(cuò)誤

19、Math.round(11.5)等于多少晚岭,Math,round(-11.5)等于多少鸥印?

Math.round取整數(shù),四舍五入坦报,第一步為12库说,第二部為-11

20、String s = new String(“xyz”)創(chuàng)建了幾個(gè)String Object片择?

構(gòu)造方法本身就是一個(gè)字符串對(duì)象

然后new'關(guān)鍵字一定會(huì)創(chuàng)建一個(gè)對(duì)象

所以總共創(chuàng)建了兩個(gè)String對(duì)象

21潜的、接口是否可繼承接口?抽象類是否可實(shí)現(xiàn)接口字管?抽象類是否可繼承實(shí)體類夏块?

1>可以疏咐,比如List就是繼承了Collection

2>可以

3>可以,所有抽象類都繼承了Object

22脐供、List浑塞、Set、Map是否繼承自Collection接口

List和Set繼承了Collection接口

Map和Collection之間沒(méi)有繼承關(guān)系政己,一個(gè)是鍵值對(duì)酌壕,一個(gè)是單值,無(wú)法兼容

23歇由、abstract的method是否可同時(shí)是static卵牍,是否可同時(shí)是synchroized?

都不可以

24沦泌、數(shù)組沒(méi)有l(wèi)ength()方法糊昙?String有沒(méi)有該方法?

數(shù)組獲取長(zhǎng)度的手段是.length屬性

String獲取長(zhǎng)度的手段是length()方法

集合獲取長(zhǎng)度的手段是size()方法

文件獲取長(zhǎng)度的手段是length()方法

25谢谦、Set里的元素是不能重復(fù)的释牺,那么用什么方法來(lái)區(qū)分重復(fù)與否呢?

以hashSet為例回挽,判斷重復(fù)的邏輯是:

1>首先看hashcode是否相同没咙,如果不同,就是不重復(fù)的

2>如果hashcode一樣千劈,再比較equals祭刚,如果不同就是不重復(fù)的,否則就是重復(fù)的

26墙牌、構(gòu)造器Constructor是否可被override涡驮?是否可繼承String類?

子類不能繼承父類構(gòu)造方法喜滨,所以就不存在重寫父類的構(gòu)造方法

27捉捅、switch是否能作用在byte上,是否能作用在long上鸿市,是否能作用在String上?

switch可以作用在byte即碗、short焰情、int、String剥懒、ENUM上内舟,但是不能作用在long上面

28、try{}里有一個(gè)return語(yǔ)句初橘,那么緊跟在這個(gè)try后的finally{}李的code會(huì)不會(huì)被執(zhí)行验游,什么時(shí)候執(zhí)行充岛,在return前還是后?

try里的return和 finally里的return都會(huì)執(zhí)行,但是當(dāng)前方法知會(huì)采納finally中return的值

29耕蝉、兩個(gè)對(duì)象值相同(x.equals(y)==true),但卻可有不同的hash code崔梗,這句話對(duì)不對(duì)?

因?yàn)閔ashcode()方法和equals()方法都可以通過(guò)自定義重寫垒在,是可以做到equals相同蒜魄,但是hashcode不同的

30、垃圾回收的有點(diǎn)和原理场躯。并考慮2種回收機(jī)制

java提供垃圾回收機(jī)制谈为,自行GC,將開發(fā)人員從容易犯錯(cuò)的內(nèi)存管理中解放出來(lái)

原理:當(dāng)某一個(gè)對(duì)象踢关,沒(méi)有任何引用指向它的時(shí)候伞鲫,那么它就滿足垃圾回收的條件,在適當(dāng)?shù)臅r(shí)候签舞,jvm虛擬機(jī)進(jìn)行GC將其回收秕脓,釋放空間,以便后續(xù)再利用

常見回收機(jī)制:

1>定時(shí)回收

每隔30分鐘進(jìn)行一次回收瘪菌,這種機(jī)制的弊端是如果垃圾產(chǎn)生的較快撒会,有可能30分鐘內(nèi)垃圾已經(jīng)把內(nèi)存占用光了,導(dǎo)致性能變慢

2>當(dāng)垃圾占到某個(gè)百分比的時(shí)候师妙,進(jìn)行回收

比如當(dāng)垃圾占用到70%的時(shí)候诵肛,進(jìn)行回收。這種機(jī)制的弊端是默穴,如果垃圾產(chǎn)生的頻率很快怔檩,那么jvm就必須高頻率的進(jìn)行垃圾回收。而在垃圾回收的過(guò)程中蓄诽,jvm會(huì)停頓下來(lái)薛训,只做垃圾回收,而影響業(yè)務(wù)功能的正常運(yùn)行仑氛。

一般來(lái)說(shuō)會(huì)將兩種機(jī)制結(jié)合使用

31乙埃、你所知道的集合類有哪些?主要方法

常見的集合:ArrayList锯岖、LinkedList介袜、HashSet、HashMap等等

常見方法:size()出吹,add()遇伞,remove()等等

32、char型變量中能不能存儲(chǔ)一個(gè)中文漢字捶牢?

char是16位的鸠珠,占用2個(gè)字節(jié)巍耗。

漢字通常使用GBK編碼,也是使用兩個(gè)字節(jié)

所以可以存放漢字

33渐排、解析XML文檔有集中方式

SAX和DOM

SAX是逐行讀取炬太,直到找到目標(biāo)為止

DOM是先全文檔加載,然后讀取

34飞盆、關(guān)鍵字:throws娄琉、throw、try~catch吓歇、finally分表代表什么意義孽水,在try塊中可以拋出異常嗎?

throws:用在方法聲明上面城看,表示該方法有可能拋出某個(gè)異常

throw:拋出一個(gè)指定異常

try~catch:在try中有可能會(huì)拋出某個(gè)異常女气,一旦某個(gè)異常拋出后,就會(huì)在catch中進(jìn)行捕捉测柠,一般是一起用的

finally:表示無(wú)論是否捕捉住異常炼鞠,都會(huì)執(zhí)行

35、java源文件中是否包括多個(gè)類轰胁?有什么限制

可以包括多個(gè)類谒主,但是只能出現(xiàn)一個(gè)public修飾的類,但是可以出現(xiàn)多個(gè)非public修飾的類

36赃阀、java中有集中類型的流霎肯?

所有的流都是基于字節(jié)流,所以最基本的流是:

輸入輸出字節(jié)流:InputStream榛斯、OutputStream

在字節(jié)流的基礎(chǔ)上观游,封裝了字符流:Reader、Writer

進(jìn)一步又封裝了緩存流:BufferedReader驮俗、PrintWriter

以及數(shù)據(jù)流:DataInputStream懂缕、DataOutputStream

對(duì)象流:ObjectInputStream、ObjectOutputStream

等等

37王凑、會(huì)出現(xiàn)內(nèi)存泄露嗎搪柑,具體說(shuō)明

會(huì)的

當(dāng)某些對(duì)象不被使用,但是又有非直接引用指向的時(shí)候索烹,那么就不滿足垃圾回收的條件工碾,從而形成內(nèi)存泄露

demo:

<pre style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;">static ArrayList<Object> al = new ArrayList<Object>(); public static void main(String[] args){ for(int i = 0; i < 100; i++){
Object o = new Object();
al.add(o);
}
}</pre>

38、多態(tài)實(shí)現(xiàn)的機(jī)制是什么术荤?

· 父類引用指向子類對(duì)象

· 重寫

39倚喂、靜態(tài)變量和實(shí)例變量的區(qū)別

靜態(tài)變量直接通過(guò)類就可以訪問(wèn)每篷,無(wú)需實(shí)例

示例變量瓣戚,比如通過(guò)類的具體實(shí)例端圈,才可以訪問(wèn)

40、什么是java序列化子库?如何實(shí)現(xiàn)java序列化

序列化就是把一個(gè)java對(duì)象舱权,通過(guò)某種介質(zhì)進(jìn)行傳輸,比如Socket輸入輸出流仑嗅,或者保存在一個(gè)文件里

實(shí)現(xiàn)java序列化的手段是讓該類實(shí)現(xiàn)接口Serializable宴倍,這個(gè)接口是一個(gè)標(biāo)識(shí)性接口,沒(méi)有任何方法仓技,僅僅用于表示該例可以序列化

41鸵贬、是否可以從一個(gè)static方法內(nèi)部發(fā)出對(duì)非static方法的調(diào)用?

不行脖捻,因?yàn)榉莝tatic方法需要一個(gè)具體的實(shí)例才可以調(diào)用阔逼,而調(diào)用static方法的時(shí)候,不一定存在一個(gè)實(shí)例

42地沮、List嗜浮、Map、Set三個(gè)接口摩疑,存取元素的時(shí)候危融,各有什么特點(diǎn)?

List是有順序的雷袋,并且可以重復(fù)的

Set是無(wú)序的吉殃,不可以重復(fù)

Map保存數(shù)據(jù)的方式是鍵值對(duì)

43、Anonymous Inner Class(匿名內(nèi)部類)是否可以extends其他類片排,是否可以實(shí)現(xiàn)接口寨腔?

匿名內(nèi)部類本質(zhì)上就是在繼承其他的類,實(shí)現(xiàn)其他的接口

44率寡、內(nèi)部類可以應(yīng)用外部類的成員嗎迫卢?有沒(méi)有什么限制?

可以使用

如果是非靜態(tài)內(nèi)部類冶共,可以使用外部類的所有成員

如果使靜態(tài)內(nèi)部類乾蛤,只能使用外部類的靜態(tài)成員

45、多線程有幾種實(shí)現(xiàn)方式捅僵,都是什么家卖?

三種

· 繼承一個(gè)Thread類

· 實(shí)現(xiàn)Runnable接口

· 匿名內(nèi)部類

46、sleep和wait有什么區(qū)別

這二者之間沒(méi)有任何關(guān)系

sleep是Thread類的方法庙楚,指的是當(dāng)前線程暫停

wait是Object類的方法上荡,指的占用當(dāng)前對(duì)象的線程臨時(shí)釋放對(duì)當(dāng)前對(duì)象的占用,以使得其他線程有機(jī)會(huì)占用當(dāng)前對(duì)象。所以調(diào)用wait方法一定是在synchronized中進(jìn)行的

47酪捡、說(shuō)說(shuō)數(shù)據(jù)連接池的工作機(jī)制是什么

連接原理:因?yàn)閯?chuàng)建鏈接和關(guān)閉連接的行為是非常耗時(shí)的叁征。會(huì)顯著降低軟件的性能表現(xiàn),解決辦法就是先創(chuàng)建N條數(shù)據(jù)庫(kù)連接Connection逛薇,循環(huán)使用捺疼,但是不進(jìn)行關(guān)閉,這樣再執(zhí)行SQL語(yǔ)句永罚,就不需要額外創(chuàng)建鏈接了啤呼,直接使用。現(xiàn)成的連接就可以呢袱,從而節(jié)約了創(chuàng)建鏈接和關(guān)閉連接的時(shí)間開銷

48官扣、簡(jiǎn)述synchronized和java,util,concurrent.locks.Lock的異同

·Lock是一個(gè)接口,而synchronized是java中的關(guān)鍵字羞福,synchronized是內(nèi)置的語(yǔ)言實(shí)現(xiàn)醇锚,Lock是代碼層面的實(shí)現(xiàn)

·Lock可以選擇性的獲取鎖,如果一段時(shí)間獲取不到坯临,可以放棄焊唬。synchronized不行,會(huì)一直獲取下去看靠,借助Lock這個(gè)特性赶促,就能夠規(guī)避死鎖,synchronized必須通過(guò)謹(jǐn)慎和良好的設(shè)計(jì)挟炬,才能減少死鎖的發(fā)生

·synchronized在發(fā)生異常和同步快結(jié)束的時(shí)候鸥滨,會(huì)自動(dòng)釋放鎖。而Lock必須手動(dòng)釋放谤祖,如果忘記釋放鎖婿滓,一樣會(huì)造成死鎖

49、Class.forName的作用粥喜,為什么要這么用

Class.forName常見場(chǎng)景是在數(shù)據(jù)庫(kù)驅(qū)動(dòng)初始化的時(shí)候調(diào)用

Class.forName本身的意義是加載類到JVM中凸主,一旦一個(gè)類被加載到JVM中,它的靜態(tài)屬性就會(huì)被初始化额湘,在初始化的過(guò)程中就會(huì)執(zhí)行相關(guān)代碼卿吐,從而達(dá)到“加載驅(qū)動(dòng)的效果”

50、當(dāng)一個(gè)線程進(jìn)入到一個(gè)對(duì)象的一個(gè)synchronized方法后锋华,其他線程是否可進(jìn)入此對(duì)象的其他方法

視情況而定嗡官,如果該對(duì)象的其他方法也是有synchronized修飾的,那么其他線程就會(huì)被擋在外面毯焕,否則其他線程就可以進(jìn)入其他方法

51衍腥、舉例常見的runtime exception

NullpointException 空指針

ArithMeiticException 算數(shù)

ClassCastException 類型轉(zhuǎn)換

ConcurrentModificationException 同步修改

IndexOutOfBoundsException 數(shù)組越界

NegativeArraySizeException 為數(shù)組分配的空間是負(fù)數(shù)

52、進(jìn)程、線程和任務(wù)之間的區(qū)別是什么婆咸?

進(jìn)程:是一個(gè)OS的抽象概念坊罢,是用來(lái)執(zhí)行程序的環(huán)境,程序通常運(yùn)行在用戶模式擅耽,通過(guò)系統(tǒng)調(diào)用或自陷來(lái)進(jìn)入內(nèi)核模式。

線程:可被調(diào)度的運(yùn)行在CPU上的可執(zhí)行上下文物遇,內(nèi)核擁有多個(gè)線程乖仇,一個(gè)進(jìn)程有一個(gè)或多個(gè)線程。

任務(wù):一個(gè)Linux的可運(yùn)行實(shí)體询兴,可以指一個(gè)進(jìn)程(含有單個(gè)線程)乃沙,或一個(gè)多線程的進(jìn)程里的一個(gè)線程,或內(nèi)核線程诗舰。

image

53警儒、什么是上下文切換?

內(nèi)核程序切換CPU讓其在不同的地址空間上做操作(上下文)眶根。

有時(shí)也稱做進(jìn)程切換或任務(wù)切換蜀铲,是指CPU 從一個(gè)進(jìn)程或線程切換到另一個(gè)進(jìn)程或線程。(百度百科)

54属百、paging和swapping之間的區(qū)別是什么记劝?

內(nèi)存和 SWAP 的這種交換過(guò)程稱為頁(yè)面交換(Paging),值得注意的是 paging 和 swapping 是兩個(gè)完全不同的概念,國(guó)內(nèi)很多參考書把這兩個(gè)概念混為一談,swapping 也翻譯成交換,在操作系統(tǒng)里是指把某程序完全交換到硬盤以騰出內(nèi)存給新程序使用,和 paging 只交換程序的部分(頁(yè)面)是兩個(gè)不同的概念。純粹的 swapping 在現(xiàn)代操作系統(tǒng)中已經(jīng)很難看到了,因?yàn)榘颜麄€(gè)程序交換到硬盤的辦法既耗時(shí)又費(fèi)力而且沒(méi)必要,現(xiàn)代操作系統(tǒng)基本都是 paging 或者 paging/swapping 混合,swapping 最初是在 Unix system V 上實(shí)現(xiàn)的族扰。(阿里云PTS)

55厌丑、說(shuō)說(shuō)進(jìn)程和線程

進(jìn)程是程序分配靜態(tài)資源的基本單位

線程是程序動(dòng)態(tài)執(zhí)行的基本單位

56、緩存行大小標(biāo)準(zhǔn)以及一致性

64個(gè)字節(jié)

沒(méi)有一致性標(biāo)準(zhǔn)

57渔呵、抽象類和接口的區(qū)別

相同點(diǎn):

·都不能被實(shí)例化

·接口的實(shí)現(xiàn)類或者抽象類的子類都只有實(shí)現(xiàn)了接口或抽象類中的方法后才能實(shí)例化

不同點(diǎn):

·接口只有定義怒竿,不能有方法的實(shí)現(xiàn),1.8之后可以定義default扩氢,而抽象類可以有定義與實(shí)現(xiàn)耕驰,方法可在抽象類中實(shí)現(xiàn)

·實(shí)現(xiàn)接口的關(guān)鍵字未implements,繼承抽象類的關(guān)鍵字為extends录豺。一個(gè)類可以實(shí)現(xiàn)多個(gè)接口耍属,但一個(gè)類只能繼承一個(gè)抽象類。所以使用接口可以間接實(shí)現(xiàn)多重繼承

·接口強(qiáng)調(diào)特定功能的實(shí)現(xiàn)巩检,而抽象類強(qiáng)調(diào)所述關(guān)系

·接口成員默認(rèn)為public static final厚骗,必須賦初始值,不能被修改兢哭;其他所有的成員方法都是public领舰、abstract的。抽象類中成員變量默認(rèn)為default,可以在子類中被重新定義冲秽,也可以被重新賦值舍咖;抽象方法被abstrace修飾,不能被private锉桑、static排霉、synchronized和native等修飾,必須以分號(hào)結(jié)尾民轴,不帶花括號(hào)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末攻柠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子后裸,更是在濱河造成了極大的恐慌瑰钮,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件微驶,死亡現(xiàn)場(chǎng)離奇詭異浪谴,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)因苹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門苟耻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人扶檐,你說(shuō)我怎么就攤上這事梁呈。” “怎么了蘸秘?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵官卡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我醋虏,道長(zhǎng)寻咒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任颈嚼,我火速辦了婚禮毛秘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘阻课。我一直安慰自己叫挟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布限煞。 她就那樣靜靜地躺著抹恳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪署驻。 梳的紋絲不亂的頭發(fā)上奋献,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天健霹,我揣著相機(jī)與錄音,去河邊找鬼瓶蚂。 笑死糖埋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的窃这。 我是一名探鬼主播瞳别,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼杭攻!你這毒婦竟也來(lái)了祟敛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤朴上,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后卒煞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痪宰,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年畔裕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了衣撬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扮饶,死狀恐怖具练,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情甜无,我是刑警寧澤扛点,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站盯捌,受9級(jí)特大地震影響镜悉,放射性物質(zhì)發(fā)生泄漏缴饭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一铜邮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧寨蹋,春花似錦松蒜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至运褪,卻和暖如春难述,著一層夾襖步出監(jiān)牢的瞬間萤晴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工胁后, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留店读,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓攀芯,卻偏偏與公主長(zhǎng)得像屯断,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子侣诺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容