- 相關(guān)推薦
常見面試題六之java系列
做Android開發(fā)最重要的是要有一個很好的java基礎(chǔ)。所以在我們的面試過程中也會被經(jīng)常問到有關(guān)java的問題,其實在小編看來,如果java基礎(chǔ)不好,那開發(fā)起Android來,怎一個累字了得。我記得小編在大二的時候,剛接觸Android,那是java基礎(chǔ)相當(dāng)不好,做起來那個費勁都不用說,所以害的我重新又好好研讀和學(xué)習(xí)了一遍java,之后,做起Android來簡直就是順風(fēng)順?biāo)F鋵崿F(xiàn)在很多培訓(xùn)機(jī)構(gòu)出來的學(xué)員,之所以做Android困難,就是因為時間太短,java的底子沒有打好。好了,說了這么多,言歸正傳,今天這篇文章我們來說一說java中容易混淆和不容易記住,又不太常用而且用感覺很重要的幾個問題。
接口和抽象類的區(qū)別是什么?
Java提供和支持創(chuàng)建抽象類和接口。它們的實現(xiàn)有共同點,不同點在于:
接口中所有的方法隱含的都是抽象的。而抽象類則可以同時包含抽象和非抽象的方法。
類可以實現(xiàn)很多個接口,但是只能繼承一個抽象類
類如果要實現(xiàn)一個接口,它必須要實現(xiàn)接口聲明的所有方法。但是,類可以不實現(xiàn)抽象類聲明的所有方法,當(dāng)然,在這種情況下,類也必須得聲明成是抽象的。
抽象類可以在不提供接口方法實現(xiàn)的情況下實現(xiàn)接口。
Java接口中聲明的變量默認(rèn)都是final的。抽象類可以包含非final的變量。
Java接口中的成員函數(shù)默認(rèn)是public的。抽象類的成員函數(shù)可以是private,protected或者是public。
接口是絕對抽象的,不可以被實例化。抽象類也不可以被實例化,但是,如果它包含main方法的話是可以被調(diào)用的。
創(chuàng)建線程有幾種不同的方式?你喜歡哪一種?為什么?
有三種方式可以用來創(chuàng)建線程:
繼承Thread類
實現(xiàn)Runnable接口
應(yīng)用程序可以使用Executor框架來創(chuàng)建線程池
實現(xiàn)Runnable接口這種方式更受歡迎,因為這不需要繼承Thread類。在應(yīng)用設(shè)計中已經(jīng)繼承了別的對象的情況下,這需要多繼承(而Java不支持多繼承),只能實現(xiàn)接口。同時,線程池也是非常高效的,很容易實現(xiàn)和使用。
Java集合類框架的基本接口有哪些?
Java集合類提供了一套設(shè)計良好的支持對一組對象進(jìn)行操作的接口和類。Java集合類里面最基本的接口有:
Collection:代表一組對象,每一個對象都是它的子元素。
Set:不包含重復(fù)元素的Collection。
List:有順序的collection,并且可以包含重復(fù)元素。
Map:可以把鍵(key)映射到值(value)的對象,鍵不能重復(fù)。
HashMap和Hashtable有什么區(qū)別?
HashMap和Hashtable都實現(xiàn)了Map接口,因此很多特性非常相似。但是,他們有以下不同點:
HashMap允許鍵和值是null,而Hashtable不允許鍵或者值是null。
Hashtable是同步的,而HashMap不是。因此,HashMap更適合于單線程環(huán)境,而Hashtable適合于多線程環(huán)境。
HashMap提供了可供應(yīng)用迭代的鍵的集合,因此,HashMap是快速失敗的。另一方面,Hashtable提供了對鍵的列舉(Enumeration)。
一般認(rèn)為Hashtable是一個遺留的類。
ArrayList和LinkedList有什么區(qū)別?
ArrayList和LinkedList都實現(xiàn)了List接口,他們有以下的不同點:
ArrayList是基于索引的數(shù)據(jù)接口,它的底層是數(shù)組。它可以以O(shè)(1)時間復(fù)雜度對元素進(jìn)行隨機(jī)訪問。與此對應(yīng),LinkedList是以元素列表的形式存儲它的數(shù)據(jù),每一個元素都和它的前一個和后一個元素鏈接在一起,在這種情況下,查找某個元素的時間復(fù)雜度是O(n)。
相對于ArrayList,LinkedList的插入,添加,刪除操作速度更快,因為當(dāng)元素被添加到集合任意位置的時候,不需要像數(shù)組那樣重新計算大小或者是更新索引。
LinkedList比ArrayList更占內(nèi)存,因為LinkedList為每一個節(jié)點存儲了兩個引用,一個指向前一個元素,一個指向下一個元素。
好了,今天我們就先解釋和總結(jié)這5個問題吧,接下來我會再發(fā)一篇關(guān)于java中非常重要的一些問題的文章,敬請期待。
http://m.shddsc.com/【常見面試題六之java系列】相關(guān)文章:
Java經(jīng)典面試題12-29
Java面試題01-22
java學(xué)習(xí):Java面試題和答案07-17
Java框架面試題07-16
2016高薪Java面試題02-20
java線程面試題匯總02-22
瞬聯(lián)java面試題03-26
常見的英文面試題12-30
常見的算法面試題07-30
阿里巴巴java面試題07-31