cAng^Er

          不懂我的人 , 離不了我 , 該了解了解我 !而懂我的人 , 更離不了我 , 因為他們愛我 。

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            30 隨筆 :: 16 文章 :: 18 評論 :: 0 Trackbacks

          http://paulandjoy.javaeye.com/blog/126315
          1、 類、對象的概念:
          1) 類:具有共同屬性和行為的對象的抽象。類是創(chuàng)建對象的模板。
          2) 對象:現(xiàn)實世界中的實體。在計算機中,是指可標識的存儲區(qū)域。
          3) 類是對象的抽象、對象是類的實例。
          2、 抽象:是從特定的實例中抽取共同性質(zhì)形成一般化概念的過程。
          3、 接口與抽象類:
          1)接口和抽象類都用于抽象,接口是抽象類的抽象。
          2)接口中只有方法聲明,沒有實現(xiàn)(無方法體);在接口中聲明的方法具有public和abstract屬性,一個類可以實現(xiàn)多個接口(即多繼承),接口以‘,’分隔;接口中的方法必須全部實現(xiàn)。
          3)抽象類可以有部分方法實現(xiàn),抽象類必須通過繼承才能使用。
          4、內(nèi)部類(Inner Class):
          1)內(nèi)部類是嵌套在另一個類中的類。
          2)內(nèi)部類用于名稱隱藏和程序代碼的組織,另外內(nèi)部類擁有直接訪問其外部類所有成員(包括private的)的權(quán)限(無需任何關(guān)鍵字修飾)。
          3)內(nèi)部類不可以在其他類或main方法里實例化,必須使用如下方法(非靜態(tài)內(nèi)部類)
          外部類.內(nèi)部類 對象名=new 外部類().new 內(nèi)部類();
          靜態(tài)內(nèi)部類調(diào)用方式:
          外部類.內(nèi)部類 對象名=new 外部類.內(nèi)部類();
          4)非靜態(tài)內(nèi)部類不可以聲明靜態(tài)成員;靜態(tài)內(nèi)部類的非靜態(tài)成員可以訪問其外部類的靜態(tài)成員,聲明為靜態(tài)的成員不可以訪問外部的非靜態(tài)成員。
          5、訪問修飾符限制:
          Private protected friendly(default) public
          同類 Y Y Y Y
          同包不同類 N Y Y Y
          同包子類 N Y Y Y
          不同包不同類 N N N Y
          不同包子類 N Y N Y
          6、Static關(guān)鍵字的使用:
          1)類成員,直接使用 類名.成員 調(diào)用。
          2)靜態(tài)方法只能訪問靜態(tài)成員。
          3)靜態(tài)方法不能使用this、super關(guān)鍵字。
          4)靜態(tài)方法不能被非靜態(tài)方法重寫或重載。
          7、final關(guān)鍵字:
          1)被final修飾的變量為常量不能改變。
          2)被final修飾的方法不可以重寫。
          3)被final修飾的類不能被繼承。
          8、abstract關(guān)鍵字:
          1)被abstract修飾的類不能實例化。
          2)被abstract修飾的方法只能在子類中實現(xiàn)。
          9、native關(guān)鍵字:非Java語言的編寫,例如JNI技術(shù)。
          10、synchronized關(guān)鍵字:多線程的同步訪問控制。
          11、分類列舉服務(wù)器和組件技術(shù):
          1)服務(wù)器端技術(shù):Jsp、Servlet;
          2)組件技術(shù):JavaBean、EJB。
          12、Http與Https:Https即多了安全的Http,s(Security Socket Layer)指加密套接字協(xié)議層(簡寫SSL)。
          13、OSI(Open System Interconnection)網(wǎng)絡(luò)抽象模型:
          1)由國際標準化組織(ISO)提出。
          2)將互聯(lián)網(wǎng)分為七層,從下至上分別為:物理層(physical)、數(shù)據(jù)鏈路層(data link)、網(wǎng)絡(luò)層(network)、傳送層(transport)、會話層(session)、表示層(presentation)、應(yīng)用層(application)。底層通過提供接口支持上層功能。各層詳解:
          物理層:LAN/ATM,為硬件層。
          數(shù)據(jù)鏈路層:LAN/ATM
          網(wǎng)絡(luò)層:IP協(xié)議,IOS
          傳輸層:TCP/UDP協(xié)議,支持Java Socket。
          會話層:
          表示層:HTML、XML
          應(yīng)用層:HTTP協(xié)議,使用Java Servlet/JSP
          <第八層(Web服務(wù)層):SOAP/UDDI>
          14、J2EE的容器與服務(wù)器:
          容器負責EJB組件中生命周期的控制;
          服務(wù)器包含在容器外,提供系統(tǒng)級操作底層服務(wù),包括事務(wù)、事件、多線程……。
          15、繼承限制:
          父類對象不可以賦給子類對象,因為子類可能具有更多的成員,反之可以。
          16、邏輯操作:c=(a>b)?a:b;等同于下式
          if(a>b) c=a; else c=b;
          17、列舉常見集合框架類型:
          1)List、Set、Map。由這三個接口實現(xiàn)出ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等常用集合框架。
          2)Vector屬于重量級組件不推薦使用。
          3)Map類型維護鍵/值對,Hashtable與HashMap相近但效率略低于HashMap、高于TreeMap,TreeMap優(yōu)點是可以排序。
          4)Set類型可裝入唯一值,HashSet效率高于TreeSet但TreeSet可以維護內(nèi)部元素的排序狀態(tài)。
          5)List類型可按某種特定順序維護元素。ArrayList允許快速隨機訪問,但如果添加或刪除位于中間的元素時效率很低;LikedList提供最佳循序訪問及快速的中間位置添加刪除元素,并有addFirst、addLast、getFirst、getLast、removeFirst、removeLast方法。
          18、面向?qū)ο蟮奶卣鳎?
          1)繼承:通過子類可以實現(xiàn)繼承,子類繼承父類的所有狀態(tài)和行為,同時添加自身的狀態(tài)和行為。
          2)封裝:將代碼及處理數(shù)據(jù)綁定在一起的一種編程機制,該機制保證程序和數(shù)據(jù)不受外部干擾。
          3)多態(tài):包括重載和重寫。重載為編譯時多態(tài),重寫是運行時多態(tài)。重載必須是同類中名稱相同參數(shù)不同(包括個數(shù)不同和類型不同),但返回類型不同不構(gòu)成重載;重寫發(fā)生于子類對父類的覆蓋,子類繼承父類方法名相同、參數(shù)列表相同、返回類型相同才構(gòu)成重寫。
          19、Java命名規(guī)范:必須以英文字母、下劃線(’_’)或’$’開始,其余可以有數(shù)字但不允許 包含空格,且組合后的名稱不能是Java關(guān)鍵字或保留字。
          匈牙利命名法:以m開始為類成員變量,以g開始為全局變量,以v開始為本地局部變量,常量命名一般不以下劃線、美元符開始。
          駝峰命名:一般稱由多個單詞或縮寫組成的變量名,并且該變量名每個單詞首字母均為大寫(一般類名全部首字母大寫,方法或?qū)傩悦谝粋€字母小寫)的稱為駝峰命名。
          20、Java語言共包含47個關(guān)鍵字。
          21、設(shè)計模式:
          一個設(shè)計模式描述了一個被證實可行的方案。這些方案非常普遍,是具有完整定義的最常用的模式。一般模式有4個基本要素:模式名稱(pattern name)、問題(problem)、解決方案(solution)、效果(consequences)。
          常見23種模式概述:
          1) 抽象工廠模式(Abstract Factory):提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無需指定它們具體的類。
          2) 適配器模式(Adapter):將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。適配器模式使得原本由于接口不兼容而不能一起工作的類可以一起工作。
          3) 橋梁模式(Bridge):將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化。
          4) 建造模式(Builder):將一個復(fù)雜對象的構(gòu)建與它的表示分離,使同樣的構(gòu)建過程可以創(chuàng)建不同的表示。
          5) 責任鏈模式(Chain of Responsibility):為解除請求的發(fā)送者和接收者之間耦合,而使多個對象都有機會處理這個請求。將這些對象連成一條鏈,并沿著這條鏈傳遞該請求,直到有一個對象處理它。
          6) 命令模式(Command):將一個請求封裝為一個對象,從而可用不同的請求對客戶進行參數(shù)化;對請求排隊或記錄請求日志,以及支持可取消的操作。
          7) 合成模式(Composite):將對象組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu)。它使得客戶對單個對象和復(fù)合對象的使用具有一致性。
          8) 裝飾模式(Decorator):動態(tài)地給一個對象添加一些額外的職責。就擴展功能而言,它能生成子類的方式更為靈活。
          9) 門面模式(Facade):為子系統(tǒng)中的一組接口提供一個一致的界面,門面模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。
          10) 工廠方法(Factory Method):定義一個用于創(chuàng)建對象的接口,讓子類決定將哪一個類實例化。Factory Method 使一個類的實例化延遲到其子類。
          11) 享元模式(Flyweight):運用共享技術(shù)以有效地支持大量細粒度的對象。
          12) 解釋器模式(Interpreter):給定一個語言,定義它的語法的一種表示,并定義一個解釋器,該解釋器使用該表示解釋語言中的句子。
          13) 迭代子模式(Iterator):提供一種方法順序訪問一個聚合對象中的各個元素,而又不需暴露該對象的內(nèi)部表示。
          14) 調(diào)停者模式(Mediator):用一個中介對象來封裝一系列的對象交互。中介者使各對象不需要顯式的內(nèi)部表示。
          15) 備忘錄模式(Memento):在不破壞封裝性的前提下,捕獲一個對象的內(nèi)部狀態(tài),并在該對象之外保存這個狀態(tài)。這樣以后就可將該對象恢復(fù)到保存的狀態(tài)。
          16) 觀察者模式(Observer):定義對象間的一種一對多的依賴關(guān)系,以便當一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并自動刷新。
          17) 原始模型模式(Prototype):用原型實例指定創(chuàng)建對象的種類,并且通過拷貝這個原型創(chuàng)建新的對象。
          18) 代理模式(Proxy):為其他對象提供一個代理以控制對這個對象的訪問。
          19) 單例模式(Singleton):保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。
          20) 狀態(tài)模式(State):允許一個對象在其內(nèi)部狀態(tài)改變時改變它的行為。對象看起來似乎修改了它所屬的類。
          21) 策略模式(Strategy):定義一系列的算法,把它們一個個封裝起來,并且使它們可相互替換。本模式使得算法的變化可獨立于使用它的客戶。
          22) 模板模式(Template Method):定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。
          23) 訪問者模式(Visitor):表示一個作用于某對象結(jié)構(gòu)中的各元素的操作。該模式可以實現(xiàn)在不改變各元素的類的前提下定義作用于這些元素的新操作。
          1、 你認為一個項目如何進行才正確?(比如:盡一切可能快的完成任務(wù)或完全按照類似CMM來操作)
          根據(jù)林銳博士的觀點:企業(yè)的根本目標是合法地賺取盡可能多的利潤,使企業(yè)利益最大化。企業(yè)所有的特定目標和行動都是圍繞上述根本目標開展的,任何背離根本目標的行動都將對企業(yè)造成傷害,應(yīng)當杜絕。
          基于此任何人都不要強調(diào)我將嚴格遵守XX模式,帶領(lǐng)團隊開發(fā)出具有XX等級的產(chǎn)品,企業(yè)需要的是能夠帶領(lǐng)團隊按時、合格的開發(fā)出產(chǎn)品的Manager。
          2、 你經(jīng)常看或仔細研讀過的書有哪些?
          不用回答你看過的課本,枚舉幾個經(jīng)典的當然前提是必須真的看過至少瀏覽過主題和目錄。比如《Java編程思想》、《Java模式》、《人月神話》等,由于將來要做的是team中的替補leader或真正的leader所以你必須說出軟工的東西。
          3、 你認為你應(yīng)聘我們公司的項目經(jīng)理,你自身的優(yōu)勢在哪?
          1)融洽,沒有領(lǐng)導(dǎo)希望你帶領(lǐng)團隊每天打嘴仗然后他還要去開屁股(Sorry,這似乎不很文明),你必須說明你能在以往團隊中與其他人和諧相處。
          2)技術(shù),千萬不要謙虛,對方要的就是技術(shù)過硬、能力出眾的人才,你只需要說明你成功解決過什么難題并且你對J2EE、XX中間件、XX系統(tǒng)有多么的熟悉。
          4、 如果給你一個Team,公司決定讓你的Team開發(fā)A產(chǎn)品,OK這恰好是你的強項,你們很快開發(fā)出來了,但很沮喪的結(jié)果是它(你們的產(chǎn)品)沒有銷路;經(jīng)過討論公司又決定讓你的Team開發(fā)B產(chǎn)品,OK這恰好又是你的強項,你們很快開發(fā)出來了,但很沮喪的結(jié)果是它(你們的產(chǎn)品)又沒有銷路。請問你怎么面對這個問題,你是否覺得決策層很無能甚至要推翻他或者去一個更有前途的公司?
          不要以為這個故事很單純,這應(yīng)該是人力在考核你。你一定要告訴她(人力多半是女的),我個人對于失敗的項目肯定會難過(是的,我想了很久才想出“難過”這個詞,它很中性),不過我認為這恰恰認證了公司在革新和新技術(shù)探索方面的魄力(自己想怎么說,如果天下人都說這句那才是悲劇呢),我肯定會以個人的名義向領(lǐng)導(dǎo)層提出我自己的建議和看法當然它未必正確,我不會離開公司,因為有點小挫折未嘗不是好事。(你應(yīng)該在這個問題上好好想想,盡量發(fā)揮到10分鐘)
          5、 你認為項目中最重要的是哪些過程?
          分析、設(shè)計階段(也可以加上測試,但千萬別說編碼或開發(fā)階段),根據(jù)《人月神話》的觀點:1/3 計劃;1/6 編碼;1/4 構(gòu)件測試和早期系統(tǒng)測試;1/4 系統(tǒng)測試,所有的構(gòu)件已完成
          但根據(jù)國內(nèi)目前的狀況一般公司不會有很多的分析與設(shè)計時間(這取決于公司規(guī)模和時間成本),這樣在一個工期很緊張的項目中我們應(yīng)該盡量分配出進度優(yōu)先級來,首先拿出客戶最希望看到的和最能證明成果的東西來,其他的留待2期甚至3期去作,你可以告訴客戶需要進一步調(diào)試(專業(yè)人員的欺騙手段,實際上就是在進行后續(xù)的開發(fā))。
          6、 如果給你一個4-6個人的Team,那么你怎么分配他們、管理他們?
          管理能力和經(jīng)驗的綜合題,可能沒有人有相同的觀點,那你可以按照某些思路來側(cè)面解答:我會挑選一個技術(shù)過硬的人作為我的替補和項目的輕騎兵,是的團隊中必須有機動人員,否則你的項目十有八九會夭折。其他的人會被平均的分配任務(wù)。
          我們會在每周進行全面的任務(wù)分配,每個人獲取一周的大概工作,然后每天的工作由他自己完成并匯報。(很好,如果答出這些就差不多了,多說可能會出現(xiàn)漏洞)
          7、 簡述常用的軟件開發(fā)文檔。
          1) 可行性研究報告(某些公司或模型沒有)
          2) 項目開發(fā)計劃
          3) 軟件需求說明書(必有)
          4) 數(shù)據(jù)要求說明書
          5) 概要設(shè)計說明書(必有)
          6) 詳細設(shè)計說明書(必有)
          7) 數(shù)據(jù)庫設(shè)計說明書(必有)
          8) 用戶手冊(一般會有)
          9) 操作手冊(必有)
          10) 模塊開發(fā)卷宗
          11) 測試計劃(必有)
          12) 測試分析報告
          13) 開發(fā)進度月報
          14) 項目開發(fā)總結(jié)報告
          8、 簡述類的關(guān)系。
          1) 當一個類是“一種”另一個類時:is-a關(guān)系
          2) 當兩個類之間有關(guān)聯(lián)時:
          一個類“包含”另一個類:has-a關(guān)系
          一個類“使用”另一個類
          還可以細分有聚合和組合(UML寶典)或聚集和組成(包括國內(nèi)某些知名學術(shù)團體都這么說)。
          聚集(aggregation)表示整體與各部分之間的關(guān)系。例如汽車與輪胎,沒有了汽車輪胎依然是一個整體。(用空心菱形表示)
          組成是一種整體和部分所屬更強的聚集關(guān)系,每個部分只能屬于一個整體,沒有整體部分也就沒有存在的價值。比如桌子和桌腿,沒有桌子也就沒有桌腿的價值了。(用實心菱形表示)

          posted on 2007-11-09 16:02 cAng^Er 閱讀(6780) 評論(0)  編輯  收藏 所屬分類: |:目標計劃:|
          主站蜘蛛池模板: 蓝田县| 嵊泗县| 祁连县| 潜山县| 德昌县| 会泽县| 黄大仙区| 清涧县| 中山市| 泽普县| 万州区| 兴安县| 塔河县| 中西区| 虎林市| 泽普县| 厦门市| 渝北区| 香港| 乐至县| 许昌市| 筠连县| 抚松县| 庆元县| 合江县| 安顺市| 青铜峡市| 闸北区| 神农架林区| 松滋市| 鄢陵县| 郸城县| 贵溪市| 临湘市| 蒙阴县| 盘山县| 河东区| 华宁县| 澄迈县| 包头市| 积石山|