當前位置:首頁 » 素材參考 » 程序員口述面試題庫
擴展閱讀
中國網路原創新人樂團 2021-03-31 20:26:56
黨政視頻素材 2021-03-31 20:25:44
廈門大學統計學碩士 2021-03-31 20:25:36

程序員口述面試題庫

發布時間: 2021-03-18 03:00:12

A. 最近本人面試IT崗位,相求一份面試題庫,以及大家的面試感受

您可以使用網路的搜索引擎功能,查詢IT崗位面試題庫。
您可以在網路的搜索引擎的關鍵欄位框內,輸入「IT崗位面試題庫」,然後點擊「網路一下」,或點擊回車鍵,即可瀏覽大量的相關網頁。

B. 你要面試一個程序員,應該問他什麼問題

首先面試程序員分有沒有經驗
面試沒有經驗的程序員就隨便問問點ssm,ssh五大框架問題,多線程什麼的,再問問是否會點前端技術
有經驗就看看他的簡歷,問他簡歷項目上的問題,可以圍繞著簡歷上的項目問,通過他的回答涉及到的技術點之類的,拓展出去問其他的

C. 程序員面試,面試官說面試題答案怎麼寫這么少,怎麼優雅回答呢

先寫一半,後面的一半,等我入職了再寫。會給你一份滿意的答案的。

D. 程序員該如何跟面試官介紹自己的項目經歷呢

面試官通過被面試者自我介紹要考察以下五方面內容:
第一,考察自我介紹內容和遞交簡歷內容是否相沖突?如果簡歷是真實的,口述自我介紹就不會有明顯出入。如果簡歷有假,自我介紹階段一般就會漏馬腳。如被面試者反問:「我的經歷在簡歷里都寫了」,面試官會認為這人個色,印象分一下子降為負數。
第二,考察被面試者基本的邏輯思維能力、語言表達能力,總結提煉概括能力。
第三,考察被面試者是否聚焦,是否簡練和精幹,現場的感知能力與把控能力。
第四,考察被面試者初步的自我認知能力和價值取向。因為被面試者要敘述職業切換關鍵節點處的原因,尤其要考察最近職業變動的原因。
第五,考察被面試者是否聽明白了面試官的話以及時間的掌控能力。有時面試官給出的問題是「請您用3到5分鍾做一自我介紹」,被面試者有時一介紹就超過10分鍾,甚至20分鍾,逼得面試官不得不多次提醒引導。

E. 求程序員面試題

1.面向對象的軟體開發有哪些優點?
1)把軟體系統看成是各種對象的集合,這更接近人的思維。
2)軟體需求的變動往往是功能的變動,而功能的執行者--對象一般不會有太大的變化。這使得按照對象設計出來的系統結構比較穩定。
3)對象包括屬性和方法,對象把屬性和方法的具體實現方式一起封裝起來,這使得方法與之相關的屬性不再分離,提高每個子系統的相對獨立性,從而提高了軟體的可維護性。
4)支持封裝、繼承、多態和抽象,提高了軟體的可重用性、可維護性和可擴展性。

2.把一個類放在包里有什麼作用?(包的作用)
1)能夠區分名字相同的類。
2)有助於實施訪問許可權控制。
3)有助於劃分和組織java應用中的各個類。

3.說出一些常用的類,包,介面,請各舉出5個。
Runable,ActionListener,Conllection,Map,Set,List介面
1)java.lang包----包括線程類(Thread)、異常類(Exception)、系統類(System)、整數類(Integer)和字元串類(String) 等, 這些類是java程序中經常用到的。
2)java.awt包----抽象窗口工具箱包,awt是(Abstract Window Toolkit) 的縮寫。這個包中包含了用於構建GUI界面的類及繪圖類。
3)java.io包----輸入/輸出包,包含各種輸入流類和輸出流類,如文件輸入流類(FileInputStream類)及文件輸出流類(FileOutputStream)等。
4)java.util包----提供一些實用類,如日期類(Data)和集合類(Collection)等。
5)java.net包----支持TCP/IP網路協議,包括Socket類及和URL相關的類,這些類都用於網路編程。

除了上面提到的基本包,JDK中還有很多其他包,比如用於資料庫編程的java.sql包,用於編寫網路程序的java.rmi包(rmi是「Remote Method Invocation」的縮寫)。另外,javax.*包是對基本包的擴展,包括用於編寫GUI的javax.Swing包,以及用於編寫聲音程序的javax.sound包等。

4. 描述一下你最常用的編程風格。
1)注意編碼規則,符合編碼要求。
2)變數,類等起名要有意義。
3)經常格式化代碼,注意格式。
4)代碼中加入測試方法或測試類,盡量提早發現錯誤。
5)代碼中要加入注釋,為別人和自己將來理解代碼帶來方便。

5. 說一說標識符的命名規則,以及java的編程規范。

Java標識符的命名規則:
1) 標識符由字母、數字、下劃線「_」、美元符號「$」或者人民幣符號「¥」組成,並且首字母不能是數字。
2) 不能把關鍵字和保留字作為標識符。
3) 標識符沒有長度限制。
4) 標識符對大小寫敏感。

Java編程規范:
1)類名和介面名:首字母大寫,其餘字母小寫。如SamDoc
2)方法名和變數名:首字母小寫,其餘的字母大寫。
如bothEyesOfDoll。
3)包名:字母全部小寫。如,com.abc.dollapp。
4)常量名:採用大寫形式,單詞之間以下劃線「_」隔開。
如DEFAULT_COLOR_DOL。

…………………………
31、介紹JAVA中的Collection FrameWork(包括如何寫自己的數據結構)?
答:Collection FrameWork如下:
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection是最基本的集合介面,一個Collection代表一組Object,即Collection的元素(Elements)
Map提供key到value的映射

32、抽象類與介面?
答:抽象類與介面都用於抽象,但是抽象類(JAVA中)可以有自己的部分實現,而介面則完全是一個標識(同時有多重繼承的功能)。
JAVA類實現序例化的方法是實現java.io.Serializable介面
Collection框架中實現比較要實現Comparable 介面和 Comparator 介面

33、STRING與STRINGBUFFER的區別。
答:STRING的長度是不可變的,STRINGBUFFER的長度是可變的。如果你對字元串中的內容經常進行操作,特別是內容要修改時,那麼使用StringBuffer,如果最後需要String,那麼使用StringBuffer的toString()方法

34、談談final, finally, finalize的區別
答:final?修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變數或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變數必須在聲明時給定初值,而在以後的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載
finally?再異常處理時提供 finally 塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的 catch 子句就會執行,然後控制就會進入 finally 塊(如果有的話)
finalize?方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的

35、面向對象的特徵有哪些方面
答:主要有以下四方面:
1.抽象:
抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是數據抽象。
2.繼承:
繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那裡繼承方法和實例變數,並且類可以修改或增加新的方法使之更適合特殊的需要。
3.封裝:
封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的介面訪問其他對象。
4. 多態性:
多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。

36、String是最基本的數據類型嗎
答:基本數據類型包括byte、int、char、long、float、double、boolean和short。
java.lang.String類是final類型的,因此不可以繼承這個類、不能修改這個類。為了提高效率節省空間,我們應該用StringBuffer類

37、int 和 Integer 有什麼區別
答:Java 提供兩種不同的類型:引用類型和原始類型(或內置類型)。Int是java的原始數據類型,Integer是java為int提供的封裝類。Java為每個原始類型提供了封裝類。原始類型封裝類booleanBoolean,charCharacter,byteByte,shortShort,intInteger,
longLong,floatFloat,doubleDouble
引用類型和原始類型的行為完全不同,並且它們具有不同的語義。引用類型和原始類型具有不同的特徵和用法,它們包括:大小和速度問題,這種類型以哪種類型的數據結構存儲,當引用類型和原始類型用作某個類的實例數據時所指定的預設值。對象引用實例變數的預設值為 null,而原始類型實例變數的預設值與它們的類型有關

38、運行時異常與一般異常有何異同
答:異常表示程序運行過程中可能出現的非正常狀態,運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。java編譯器要求方法必須聲明拋出可能發生的非運行時異常,但是並不要求必須聲明拋出未被捕獲的運行時異常。

39、說出ArrayList,Vector, LinkedList的存儲性能和特性
答:ArrayList和Vector都是使用數組方式存儲數據,此數組元素數大於實際存儲的數據以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作,所以索引數據快而插入數據慢,
Vector由於使用了synchronized方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行前向或後向遍歷,但是插入數據時只需要記錄本項的前後項即可,所以插入速度較快。

40、HashMap和Hashtable的區別
答:HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map介面,主要區別在於HashMap允許空(null)鍵值(key),由於非線程安全,效率上可能高於Hashtable。
HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。
Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現同步,而HashMap 就必須為之提供外同步。
Hashtable和HashMap採用的hash/rehash演算法都大概一樣,所以性能不會有很大的差異。

41、heap和stack有什麼區別
答:棧是一種線形集合,其添加和刪除元素的操作應在同一段完成。棧按照後進先出的方式進行處理。堆是棧的一個組成元素

42、Java的介面和C++的虛類的相同和不同處
答:由於Java不支持多繼承,而有可能某個類或對象要使用分別在幾個類或對象裡面的方法或屬性,現有的單繼承機制就不能滿足要求。與繼承相比,介面有更高的靈活性,因為介面中沒有任何實現代碼。當一個類實現了介面以後,該類要實現介面裡面所有的方法和屬性,並且介面裡面的屬性在默認狀態下面都是public static,所有方法默認情況下是public.一個類可以實現多個介面。

43、Java中的異常處理機制的簡單原理和應用
答:當JAVA程序違反了JAVA的語義規則時,JAVA虛擬機就會將發生的錯誤表示為一個異常。違反語義規則包括2種情況。一種是JAVA類庫內置的語義檢查。例如數組下標越界,會引發IndexOutOfBoundsException;訪問null的對象時會引發NullPointerException。另一種情況就是JAVA允許程序員擴展這種語義檢查,程序員可以創建自己的異常,並自由選擇在何時用throw關鍵字引發異常。所有的異常都是java.lang.Thowable的子類。

43、垃圾回收的優點和原理。並考慮2種回收機制
答:Java語言中一個顯著的特點就是引入了垃圾回收機制,使c++程序員最頭疼的內存管理的問題迎刃而解,它使得Java程序員在編寫程序的時候不再需要考慮內存管理。由於有個垃圾回收機制,Java中的對象不再有"作用域"的概念,只有對象的引用才有"作用域"。垃圾回收可以有效的防止內存泄露,有效的使用可以使用的內存。垃圾回收器通常是作為一個單獨的低級別的線程運行,不可預知的情況下對內存堆中已經死亡的或者長時間沒有使用的對象進行清楚和回收,程序員不能實時的調用垃圾回收器對某個對象或所有對象進行垃圾回收。回收機制有分代復制垃圾回收和標記垃圾回收,增量垃圾回收。

44、你所知道的集合類都有哪些?主要方法?
答:最常用的集合類是 List 和 Map。 List 的具體實現包括 ArrayList 和 Vector,它們是可變大小的列表,比較適合構建、存儲和操作任何類型對象的元素列表。 List 適用於按數值索引訪問元素的情形。
Map 提供了一個更通用的元素存儲方法。 Map 集合類用於存儲元素對(稱作"鍵"和"值"),其中每個鍵映射到一個值。

45、描述一下JVM載入class文件的原理機制?
答:JVM中類的裝載是由ClassLoader和它的子類來實現的,Java ClassLoader 是一個重要的Java運行時系統組件。它負責在運行時查找和裝入類文件的類。

46、排序都有哪幾種方法?請列舉
答: 排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(冒泡排序、快速排序),選擇排序(直接選擇排序、堆排序),歸並排序,分配排序(箱排序、基數排序)
快速排序的偽代碼。
/ /使用快速排序方法對a[ 0 :n- 1 ]排序
從a[ 0 :n- 1 ]中選擇一個元素作為middle,該元素為支點
把餘下的元素分割為兩段left 和right,使得left中的元素都小於等於支點,而right 中的元素都大於等於支點
遞歸地使用快速排序方法對left 進行排序
遞歸地使用快速排序方法對right 進行排序
所得結果為left + middle + right

47、JAVA語言如何進行異常處理,關鍵字:throws,throw,try,catch,finally分別代表什麼意義?在try塊中可以拋出異常嗎?="3">答:Java通過面向對象的方法進行異常處理,把各種不同的異常進行分類,並提供了良好的介面。在Java中,每個異常都是一個對象,它是Throwable類或其它子類的實例。當一個方法出現異常後便拋出一個異常對象,該對象中包含有異常信息,調用這個對象的方法可以捕獲到這個異常並進行處理。Java的異常處理是通過5個關鍵詞來實現的:try、catch、throw、throws和finally。一般情況下是用try來執行一段程序,如果出現異常,系統會拋出(throws)一個異常,這時候你可以通過它的類型來捕捉(catch)它,或最後(finally)由預設處理器來處理。
用try來指定一塊預防所有"異常"的程序。緊跟在try程序後面,應包含一個catch子句來指定你想要捕捉的"異常"的類型。
throw語句用來明確地拋出一個"異常"。
throws用來標明一個成員函數可能拋出的各種"異常"。
Finally為確保一段代碼不管發生什麼"異常"都被執行一段代碼。
可以在一個成員函數調用的外面寫一個try語句,在這個成員函數內部寫另一個try語句保護其他代碼。每當遇到一個try語句,"異常"的框架就放到堆棧上面,直到所有的try語句都完成。如果下一級的try語句沒有對某種"異常"進行處理,堆棧就會展開,直到遇到有處理這種"異常"的try語句。

48、一個".java"源文件中是否可以包括多個類(不是內部類)?有什麼限制?
答:可以。必須只有一個類名與文件名相同。

49、java中有幾種類型的流?JDK為每種類型的流提供了一些抽象類以供繼承,請說出他們分別是哪些類?
答:位元組流,字元流。位元組流繼承於InputStream OutputStream,字元流繼承於InputStreamReader OutputStreamWriter。在java.io包中還有許多其他的流,主要是為了提高性能和使用方便。

50、java中會存在內存泄漏嗎,請簡單描述。
答:會。自己實現堆載的數據結構時有可能會出現內存泄露,可參看effective java.

F. 如何面試一名程序員

如何面試程序員
一、提問之前的准備
首先,最重要的是,你自己一開始就應該想清楚:
1. 需要新員工完成什麼樣的任務?
2. 怎樣的人能完成這樣的任務?
3. 哪些途徑和方法可以發現這樣的人?
只有明確這些根本性的問題,才能正確高效地完成面試。
二、提問的原則
假定你對上一節的三個問題,已經有了清晰的想法,那麼接下來就可以設計如何提問了。
有一些提問的原則,是你應該遵循的:
每一個面試問題都有明確的目的。你不僅自己了解,還能向其他面試官解釋清楚。
多提一些開放性(Open-ended)的問題,而不是那種用Yes/No就可以回答的問題。這樣做使你有機會與面試者展開討論,並且提出後續的問題,盡可能多地了解對方。
不要問宗教、家庭、健康、個人隱私等方面的問題。
不要問太復雜的問題。因為面試者沒有太多思考時間,所以無法周全地回答,你也就無從判斷他的能力了。
三、考察專業能力
為了確認面試者是勝任的,你可以問一些與職位相關的專業方面的問題。(不過通常來說,一次面試不足以看出一個人的專業能力。)
比如,你的招聘職位是系統管理員,你可以問"如何快速地在50台機器上部署Linux?"(提示:正確答案不是刻錄50張安裝光碟。)
另外,你還應該向面試者了解他的過去,因為過去是未來的最好預測依據。不過,提問的重點不要僅僅是他過去的成果,更要關注在當時的環境中,他是如何決策和實施的。
四、考察綜合素質
因為人是會發展的,所以某種程度上,面試者的綜合素質要比他的專業能力更重要。
所以,具體的技術問題(如何調用API、什麼是設計模式、編程語言的語法等等)可以少問一些,更應該關注面試者的事業心、對工作的熱情、進取心、自律能力、毅力等方面。
下面是一些典型問題:
Why did you get into development?
你為什麼開發軟體?
How many technical books did you read in the past year?
去年你讀了幾本技術書籍?
What was your favorite technical book in the past year? What did you learn from it?
去年你最喜歡的技術書籍是哪本?你從中學到了什麼?
What websites do you read regularly, related to development?
平時你經常訪問哪些編程類網站?
Do you maintain any open-source projects?
你有自己的開源項目嗎?
Do you code in your spare-time?
業余時間你編程嗎?
Do you love programming, or do you do it for the money?
對於你來說,編程是一種愛好,還是一種謀生手段?
Have you accomplished anything important in your career yet? Do you want to?
你的職業生涯之中有什麼重要的成就?它是你主導的嗎?
What would make you feel that you have done something important?
什麼事情會讓你很有成就感?
五、考察理性思維
某些情況下,你可能需要了解面試者的分析判斷能力,看他能否全面地思考問題、客觀地評價自己。
那麼,你可以依次提出這樣三個問題:
What's your favorite programming language? Why?
你最喜歡的編程語言是哪種?為什麼?
If you could add one feature to your favorite language, what would it be? Why?
如果允許你為這種語言加一種功能,你會加什麼功能?為什麼?
If you could remove one feature from it, what would it be? Why?
如果允許你取消一種功能,會是什麼功能?為什麼?
這里的重點是,讓面試者從正反兩方面評價一件自己熟悉的東西,看看他的思維是否片面。答案無所謂對錯,只要面試者有一個明確的立場,能夠從正反兩方面說出令人信服的理由,就可以了。比如,某個軟體的口碑不好,但是面試者說他很喜歡,而且說得出一大堆理由,清楚地解釋了這種軟體的優點和缺點在哪裡,這樣就很好。
你還可以把這些問題,套用在其他東西上面,比如操作系統、文字編輯器等等。

G. 為什麼程序員都很排斥面試時做題

第一, 能做上的人真的不多。
所謂程序員,方向很廣的,前端、後端、UI、架構等等,不同的崗位研究的方向不同;做不同的產品,用到的語言可能也不盡相同。用做題來衡量一個人的水平這件事,本身就不是很可行。明明是擅長資料庫的從業者面試者,硬是要做一套Java的試題,是很為難的。對於企業來講,從筆試想檢測下專業水平,但是程序員術業有專攻是沒錯的。
第二, 寫程序不是一項程序活兒。
面試時的做題的環境,心情和真正的工作是不一樣的,我們說打球會有手感,寫代碼其實也有手感。在壓力,虛擬的情景下,程序員容易造成失誤,影響發揮。不僅是程序員,離開了學校之後,考試這種形式都不招人喜歡。
第三, 面試的誠意。
面試時一個雙向選擇的過程,如果是技術總監來聊聊,會顯得比較尊重人才有誠意,雙方一旦發現有不可調和的供求不匹配,也可以馬上結束談話。人是活兒的,但試題是死的。如果做完題目後一聊,發現雙方並不合適,做題就很浪費自己的時間了。

H. 求程序員--筆試面試題庫

ASP.Net程序員測試題
一、資料庫部分:
資料庫中有以下幾個表
Customers(客戶信息)
列名稱 含義 數據類型 可空 是主鍵 是外鍵 默認值
Customer_ID 客戶編號 int(自動增長) N Y N 無
Customer_Name 客戶名稱 nvarchar(30) N N N 無

Procts(商品信息)
列名稱 含義 數據類型 可空 是主鍵 是外鍵 默認鍵
Procts _ID 客戶編號 int(自動增長) N Y N 無
Procts _Name 客戶名稱 nvarchar(100) N N N 無
Unit_Price 單價 decimal(7,2) N N N 無

Orders(訂單信息)
列名稱 含義 數據類型 可空 是主鍵 是外鍵 默認鍵
Order _ID 訂單編號 int(自動增長) N Y N 無
Order _Date 訂單日期 smalldatetime N N N DETDATEO
Customer_Price客戶編號 int N N Y 無

OrderDetails(訂單詳細內容)
列名稱 含義 數據類型 可空 是主鍵 是外鍵 默認鍵
Order _ID 訂單編號 int(自動增長)N Y Y 無
Proct _ID 商品編號 smalldatetime N Y Y 無
Proct_Quantity商品數量 int N N N 1

問題如下
1.Orders表Order_Date欄位的默認值GETDATEO是什麼意思?
2.查詢商品信息表中的商品總數量,各種商品平均單價。
3.查詢用戶名稱為「張三」,訂單日期為2005-8-30日的訂單總金額。
4.查詢商品名稱為「聯想電腦」的商品在2005-7-1日至2005-7-31之間每天的銷售明細(要求顯示日期、當日的銷售總量)。

二、C#語法題
1.C#中所有類的基類是什麼?
2.計算n+(n-1)+(n-2)+…+1(n=100)。
3.請閱讀以下代碼,並求出結果。
Int iResult=0;
Int iTemp=0;
for(int i=0;i+=2)

iResult+=i;

While(iTemp<3)

iResult-=iTemp;
iTemp++;

請問iResult的值為多少?
4.override與重載有什麼區別?
5.閱讀以下代碼,然後回答問題
Private int Division(int x,int y)

return x/y;

請問該函數被調用時是否可能會出現問題?如果有問題請修改該函數。
6.public class A

private string_value=「」;
public A(string value)

This._value=value;



Public class B:A

//想在構造類B的同時初始化類A中的_value欄位?


想在構造類B的同時初始化類A中的_value欄位,是否可以實現?如果可以實現,請補充類B的代碼。
7.public sealed class A

……

請問代碼中的sealed是什麼意思?
8.請問Session 和Application各在什麼場合下使用(最好舉例說明)
9.請問您在什麼情況下會用到虛方法?它與介面方法有什麼不同?
10.請列舉二個您用到過的設計模式?
11.請列舉一些ASP.Net中支持數據綁定的控制項,您經常使用哪些?
12.頁面上有一個input框的名字為txtPrice,請在提交前驗證該控制項中的內容(不能為空,必須是整數,用javascript驗證)。
13.請問重定向頁面有幾種方法?

你可以試著做做看,公司出的題應該都不一樣的,希望對你有所幫助!

I. java程序員面試時被問到:如何在j2ee項目中處理高並發量訪問 該怎麼回答 請仔細看題干再回答

你好,高並發系統的設計需要注意一下幾點:
盡量使用緩存,包括用戶緩存,信息緩存等,多花點內存來做緩存,可以大量減少與資料庫的交互,提高性能。
用jprofiler等工具找出性能瓶頸,減少額外的開銷。
優化資料庫查詢語句,減少直接使用hibernate等工具的直接生成語句(僅耗時較長的查詢做優化)。
優化資料庫結構,多做索引,提高查詢效率。
統計的功能盡量做緩存,或按每天一統計或定時統計相關報表,避免需要時進行統計的功能。

能使用靜態頁面的地方盡量使用,減少容器的解析(盡量將動態內容生成靜態html來顯示)。
解決以上問題後,使用伺服器集群來解決單台的瓶頸問題。
基本上以上述問題解決後,達到系統最優。

至於樓上有人提到別用JAVA來做,除非是低層的連接數過大(如大量的埠佔用需求),這種情況下考慮直接C來寫,其他的可以用JAVA來做。