恩達(dá)

          可愛(ài)的兒子--陽(yáng)陽(yáng)坨

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            43 隨筆 :: 14 文章 :: 55 評(píng)論 :: 0 Trackbacks
           

          1、面向?qū)ο蟮奶卣饔心男┓矫?

            主要有以下四方面:

            1.抽象:抽象就是忽略一個(gè)主題中與當(dāng)前目標(biāo)無(wú)關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。抽象并不打算了解全部問(wèn)題,而只是選擇其中的一部分,暫時(shí)不用部分細(xì)節(jié)。抽象包括兩個(gè)方面,一是過(guò)程抽象,二是數(shù)據(jù)抽象。

            2.繼承:繼承是一種聯(lián)結(jié)類(lèi)的層次模型,并且允許和鼓勵(lì)類(lèi)的重用,它提供了一種明確表述共性的方法。對(duì)象的一個(gè)新類(lèi)可以從現(xiàn)有的類(lèi)中派生,這個(gè)過(guò)程稱為類(lèi)繼承。新類(lèi)繼承了原始類(lèi)的特性,新類(lèi)稱為原始類(lèi)的派生類(lèi)(子類(lèi)),而原始類(lèi)稱為新類(lèi)的基類(lèi)(父類(lèi))。派生類(lèi)可以從它的基類(lèi)那里繼承方法和實(shí)例變量,并且類(lèi)可以修改或增加新的方法使之更適合特殊的需要。

            3.封裝:封裝是把過(guò)程和數(shù)據(jù)包圍起來(lái),對(duì)數(shù)據(jù)的訪問(wèn)只能通過(guò)已定義的界面。面向?qū)ο笥?jì)算始于這個(gè)基本概念,即現(xiàn)實(shí)世界可以被描繪成一系列完全自治、封裝的對(duì)象,這些對(duì)象通過(guò)一個(gè)受保護(hù)的接口訪問(wèn)其他對(duì)象。

            4. 多態(tài)性:多態(tài)性是指允許不同類(lèi)的對(duì)象對(duì)同一消息作出響應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語(yǔ)言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢(shì),很好的解決了應(yīng)用程序函數(shù)同名問(wèn)題。

           

          2、final, finally, finalize的區(qū)別。

          final 用于聲明屬性,方法和類(lèi),分別表示屬性不可變,方法不可覆蓋,類(lèi)不可繼承。

          finally是異常處理語(yǔ)句結(jié)構(gòu)的一部分,表示總是執(zhí)行。

          finalizeObject類(lèi)的一個(gè)方法,在垃圾收集器執(zhí)行的時(shí)候會(huì)調(diào)用被回收對(duì)象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。

           

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

             sleep是線程類(lèi)(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會(huì)給其他線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù)。調(diào)用sleep不會(huì)釋放對(duì)象鎖。

              waitObject類(lèi)的方法,對(duì)此對(duì)象調(diào)用wait方法導(dǎo)致本線程放棄對(duì)象鎖,進(jìn)入等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象發(fā)出notify方法(或notifyAll)后本線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲得對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。

           

          4、abstract classinterface有什么區(qū)別?

             聲明方法的存在而不去實(shí)現(xiàn)它的類(lèi)被叫做抽象類(lèi)(abstract class),它用于要?jiǎng)?chuàng)建一個(gè)體現(xiàn)某些基本行為的類(lèi),并為該類(lèi)聲明方法,但不能在該類(lèi)中實(shí)現(xiàn)該類(lèi)的情況。不能創(chuàng)建abstract 類(lèi)的實(shí)例。然而可以創(chuàng)建一個(gè)變量,其類(lèi)型是一個(gè)抽象類(lèi),并讓它指向具體子類(lèi)的一個(gè)實(shí)例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract 類(lèi)的子類(lèi)為它們父類(lèi)中的所有抽象方法提供實(shí)現(xiàn),否則它們也是抽象類(lèi)為。取而代之,在子類(lèi)中實(shí)現(xiàn)該方法。知道其行為的其它類(lèi)可以在類(lèi)中實(shí)現(xiàn)這些方法。

              接口(interface)是抽象類(lèi)的變體。在接口中,所有方法都是抽象的。多繼承性可通過(guò)實(shí)現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒(méi)有一個(gè)有程序體。接口只可以定義static final成員變量。接口的實(shí)現(xiàn)與子類(lèi)相似,除了該實(shí)現(xiàn)類(lèi)不能從接口定義中繼承行為。當(dāng)類(lèi)實(shí)現(xiàn)特殊接口時(shí),它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實(shí)現(xiàn)了該接口的類(lèi)的任何對(duì)象上調(diào)用接口的方法。由于有抽象類(lèi),它允許使用接口名作為引用變量的類(lèi)型。通常的動(dòng)態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類(lèi)型或從接口類(lèi)型轉(zhuǎn)換,instanceof 運(yùn)算符可以用來(lái)決定某對(duì)象的類(lèi)是否實(shí)現(xiàn)了接口。

           

          5、j2ee常用的設(shè)計(jì)模式?說(shuō)明工廠模式。

                Java中的23種設(shè)計(jì)模式:

                Factory(工廠模式), Builder(建造模式), Factory Method(工廠方法模式),

                Prototype(原始模型模式),Singleton(單例模式), Facade(門(mén)面模式),

                Adapter(適配器模式), Bridge(橋梁模式), Composite(合成模式),

                Decorator(裝飾模式), Flyweight(享元模式), Proxy(代理模式),

                Command(命令模式), Interpreter(解釋器模式), Visitor(訪問(wèn)者模式),

                Iterator(迭代子模式), Mediator(調(diào)停者模式), Memento(備忘錄模式),

                Observer(觀察者模式), State(狀態(tài)模式), Strategy(策略模式),

                Template Method(模板方法模式), Chain Of Responsibleity(責(zé)任鏈模式)

                工廠模式:工廠模式是一種經(jīng)常被使用到的模式,根據(jù)工廠模式實(shí)現(xiàn)的類(lèi)可以根據(jù)提供的數(shù)據(jù)生成一組類(lèi)中某一個(gè)類(lèi)的實(shí)例,通常這一組類(lèi)有一個(gè)公共的抽象父類(lèi)并且實(shí)現(xiàn)了相同的方法,但是這些方法針對(duì)不同的數(shù)據(jù)進(jìn)行了不同的操作。首先需要定義一個(gè)基類(lèi),該類(lèi)的子類(lèi)通過(guò)不同的方法實(shí)現(xiàn)了基類(lèi)中的方法。然后需要定義一個(gè)工廠類(lèi),工廠類(lèi)可以根據(jù)條件生成不同的子類(lèi)實(shí)例。當(dāng)?shù)玫阶宇?lèi)的實(shí)例后,開(kāi)發(fā)人員可以調(diào)用基類(lèi)中的方法而不必考慮到底返回的是哪一個(gè)子類(lèi)的實(shí)例。

           

          6、java中實(shí)現(xiàn)多態(tài)的機(jī)制是什么?

             方法的重寫(xiě)Overriding和重載OverloadingJava多態(tài)性的不同表現(xiàn)。重寫(xiě)Overriding是父類(lèi)與子類(lèi)之間多態(tài)性的一種表現(xiàn),重載Overloading是一個(gè)類(lèi)中多態(tài)性的一種表現(xiàn)。

           

          7、作用域public,private,protected,以及不寫(xiě)時(shí)的區(qū)別

            區(qū)別如下:

            作用域       當(dāng)前類(lèi)      同一package      子孫類(lèi)       其他package
            public           √            √             √              √

            protected      √            √             √              ×

            friendly         √            √             ×              ×

            private          √            ×             ×              ×

            不寫(xiě)時(shí)默認(rèn)為friendly

           

          8、說(shuō)一說(shuō)Servlet的生命周期?

            答:servlet有良好的生存期的定義,包括加載和實(shí)例化、初始化、處理請(qǐng)求以及服務(wù)結(jié)束。這個(gè)生存期由javax.servlet.Servlet接口的init,servicedestroy方法表達(dá)。 Servlet被服務(wù)器實(shí)例化后,容器運(yùn)行其init方法,請(qǐng)求到達(dá)時(shí)運(yùn)行其service方法,service方法自動(dòng)派遣運(yùn)行與請(qǐng)求對(duì)應(yīng)的doXXX方法(doGetdoPost)等,當(dāng)服務(wù)器決定將實(shí)例銷(xiāo)毀的時(shí)候調(diào)用其destroy方法。

            與cgi的區(qū)別在于servlet處于服務(wù)器進(jìn)程中,它通過(guò)多線程方式運(yùn)行其service方法,一個(gè)實(shí)例可以服務(wù)于多個(gè)請(qǐng)求,并且其實(shí)例一般不會(huì)銷(xiāo)毀,而CGI對(duì)每個(gè)請(qǐng)求都產(chǎn)生新的進(jìn)程,服務(wù)完成后就銷(xiāo)毀,所以效率上低于servlet。

           

           

          posted on 2007-06-01 09:12 恩達(dá) 閱讀(2033) 評(píng)論(2)  編輯  收藏 所屬分類(lèi): JAVA

          評(píng)論

          # re: 某公司的java經(jīng)典面試題 2007-06-09 16:50 itkui
          不錯(cuò),收藏了
          等我面試的時(shí)候可能用的上!  回復(fù)  更多評(píng)論
            

          # re: 某公司的java經(jīng)典面試題 2007-06-10 18:50 恩達(dá)
          面試java工程師一般都會(huì)讓你做一做這種題。我就沒(méi)準(zhǔn)備,挺虧的,呵呵  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 中宁县| 盘锦市| 郁南县| 麦盖提县| 青河县| 榆社县| 共和县| 桐城市| 罗山县| 武冈市| 青河县| 红河县| 游戏| 阿勒泰市| 盐边县| 西峡县| 阿拉善右旗| 英山县| 德安县| 黄浦区| 赤峰市| 长治市| 马龙县| 巴林左旗| 洛浦县| 上饶市| 拜城县| 宿迁市| 吴堡县| 开原市| 隆回县| 临泽县| 繁昌县| 邓州市| 墨玉县| 化隆| 右玉县| 南和县| 蚌埠市| 磐石市| 丰县|