java分布式面試
『壹』 java程序員面試時被問到:如何在j2ee項目中處理高並發量訪問 該怎麼回答 請仔細看題干再回答
你好,來高並發系統的設計需源要注意一下幾點:
盡量使用緩存,包括用戶緩存,信息緩存等,多花點內存來做緩存,可以大量減少與資料庫的交互,提高性能。
用jprofiler等工具找出性能瓶頸,減少額外的開銷。
優化資料庫查詢語句,減少直接使用hibernate等工具的直接生成語句(僅耗時較長的查詢做優化)。
優化資料庫結構,多做索引,提高查詢效率。
統計的功能盡量做緩存,或按每天一統計或定時統計相關報表,避免需要時進行統計的功能。
能使用靜態頁面的地方盡量使用,減少容器的解析(盡量將動態內容生成靜態html來顯示)。
解決以上問題後,使用伺服器集群來解決單台的瓶頸問題。
基本上以上述問題解決後,達到系統最優。
至於樓上有人提到別用JAVA來做,除非是低層的連接數過大(如大量的埠佔用需求),這種情況下考慮直接C來寫,其他的可以用JAVA來做。
『貳』 如何通過java的面試
第一,不管你基礎只是牛逼不牛逼,看一看java面試題是有必要的,Java面試題有筆試部分和面試部分,首先內你筆試得過吧
第二,面容試,就談談自己學了些什麼東西之類的,然後再說說自己是個認真好學的好娃娃,其次,有工作經驗的就談談之前做了些什麼,應屆畢業的話就談談之前在學校做了什麼項目,比如圖書館管理系統,就跟他扯,扯也要扯你知道的,不知道的能扯就扯,扯不了的就打住
『叄』 java 二面一般會面試什麼內容
Java程序員應聘一般要經過筆試和面試。作為一個技術人員,特別是剛出道的,筆試的成績是比較重要。以下是我經過幾次筆試總結的一些經驗教訓。
一般來說,試題會分為三個部分,Java基礎、資料庫基礎和綜合題。
首先是Java基礎,這個很簡單,也就是考考你對Java語言本身的理解,包括語法,類庫的使用等。有選擇題,也會有寫代碼題。寫代碼的時候認真仔細就是了。基礎題答案一般都比較死,所以盡量不要錯。在這,出一道我遇到的題考考大家,Java編程:把American,Japan,China,France,Brazil按英文字母排序。說說思路就行了:)
其次是資料庫。准確的說,考的不是資料庫,而是SQL語句。一般題型是,給兩三個表,然後讓你根據需求寫SQL。最普通的就是學生表、選課表和成績表。要掌握的就是連接查詢,還有就是一些函數(建表、表操作等就不說了哈)。其實這些都相當簡單,但是往往被新手忽略。我就遭過,因為有半年沒寫過SQL了,連接查詢搞忘完了,有兩次筆試都空起,結果可想而知。這些是必備技術,千萬不能空起啊!
然後是綜合題。之所以說是綜合題,是因為包含的內容比較多,一般都是主觀題。這里,人家是想看看你對Java高級技術以及周邊技術的了解程度和運用能力,說白了,就是考概念和考應用題。這里說的Java高級技術,也就是J2EE架構中的技術,這些不會的話,人家是不得要你的。如果你會一些流行的技術框架,那就更好了。所謂Java周邊技術,包括HTTP,HTML,XML,UML,JavaScript,CSS等,要求一般不是很高,要了解,比如讓你用HTML寫個表單你要會。關於剛才提到的技術或者框架,希望要了解其工作的原理和機制,一般要考,比如讓你說說Struts的MVC。關於應用題,可能出一道網路應用來考。
以上就是我筆試的經驗,一般是這樣,不過我也遇到過變態的。一次筆試,就被徹底甩翻,C/C++、資料庫、Java技術、Shell編程、網路協議、Unix、軟體工程全部上了。
如果筆試做的好,那就成功大半了,不過不要輕視面試哦!
『肆』 通常java的面試都會問些什麼
首先,你先向面試官自我介紹一下。
我:「我做過兩個項目。寫過幾篇論文和專利。還參加過XX大數據競賽。同時,出於個人興趣,我還閱讀了一下xxxx的少部分源碼,理解了一下xxxx的核心思想,實現了一個功能非常簡單,並且還不完善的xxxx。」
有可能剛開始,還是討論比賽和分布式。後面就會問你一道大量文本處理的問題,例如「找出一個大文本中的Top3的字元串」,沒有做過這方面的研究。
Java問題:「講一下JVM的結構。」
網路問題:「TCP/IP的三次握手、四次揮手」
問關於JavaWEB的問題。
或者是「淘寶用戶的數據(購物車……)存在那裡?怎麼滿足高並發?」
問一下你的演算法問題「輸入兩個整型數組,返回一個數組:兩個數組中的公共值。」
「考一下你對遞歸的掌握。寫一個函數,輸入int型,返回整數逆序後的字元串。如:輸入123,返回「321」。 要求必須用遞歸,不能用全局變數,輸入必須是一個參數,必須返回字元串。」
問完之後可能會說「就當做我們在聊天,討論技術問題。講一下你的相關經歷吧。「
這時候你就可以很輕松地在聊比賽相關的事情,以及自己對數據的理解。
總結:
對於,基礎比較扎實的人,那就讓面試官隨便問吧。不過,我覺得任何人都有可能別問死的,因為他們想通過這種方式看看你的掌握深度。
如果只是基礎知識一般:數據結構、排序演算法和遞歸,能寫出來;操作系統,懂一些基本理論;計算機網路,懂一些基本概念和理論。就必須要充分發揮自己的競賽、項目、論文和專利的優勢了。
面試過程中,有一點很重要,把握面試官的興趣點,並將面試官帶入自己的優勢。當然,如果自己的優勢不是面試官非常了解的領域,但是面試官又比較感興趣,那就更好了。最好能把面試官帶入你的話題中,讓他對你產生興趣,然後,大部分時間就都可以花在在討論這些內容了。
可以肯定的說,JAVA目前的就業還是很緊缺。總體來看,就業崗位有的是,要就業的JAVA人才也很多,但是目前大多數求職者的水平與就業崗位的要求有一定的差距,所以目前的JAVA求職者很有必要提升自己。我和一群java的愛好者創建的一個免費學習的qun,開頭的三個數字是四二六,中間的三位數就是三九六,最後面的三位數就是二八四。你可以與java愛好者共同學習和交流經驗。無論是從技術上,還是從實際工作的執行上,都要提升,這樣才能從眾多的從業人員中脫穎而出。成為領高薪資,有高職位的人上人。
如果你還沒有足夠的勇氣去面試,覺得自己的能力還達不到企業的高水平要求,可以來一起交流一下。
總而言之,把自己的優勢發揮到極致。祝你面試成功!
『伍』 跪求java面試高手分享面試時怎麼做項目描述
目測樓主是新手吧?如果有豐富的經驗就不會這么問了。那拿我當初的例子和樓至分享下吧,不一定精彩,希望對你有幫助。
剛開始缺乏項目經驗的時候都是很不自信的,面對面試官難免忐忑。我當時沒學過java,做了個郵件發送也是抄的。但是面試個時候還要小小裝一下。
第一點就是不要太誇大自己,實事求是,挑自己明白的地方說,如果太誇大自己了會給對方過高的期望值,如果對方是技術人員,那麼多問幾個深入的問題咱就露出馬腳了,這樣會使對方反感。
第二點面試之前你要把你做過的項目好好研究一下,盡量多懂一些,如果時間不充足的話就只針對你做過的項目,挑自己做的部分或者能當做自己創新的部分和面試官說,最好能有個人見解。如果有哪些地方不明白也可以坦白說,比如某某技術還不是太懂,准備繼續研究,給人感覺你很誠實,而且有上進心。
第三就是突出優勢,引導面試官問你熟悉的或者已准備的問題,比如我當時會的c語言比java多一點,我就和面試官說了我以前是學c語言的(其實也是入門而已)。面試之前我背了點東西,就是面向對象和面向過程的區別,面試官一聽我說起c語言,就問了我這個問題,所以我答的很好。
第四很多時候面試官會和你談本專業的東西,比如看到你是某某專業畢業的,自然會問一下平時都學的什麼,這個問題如果真問了一定要大好,及時專業知識不好,但是也可以說出很多,表現的自己對本專業很精通(其實面試官不一定聽懂啦,忽悠),所謂術業有專攻,所以本專業問題一定答好,一般就問問學什麼課程,專業主要從事哪些工作。
第五個人總結的就是一般筆試考的技術題,面試的時候就不太會多問了,所以不要太緊張,著重准備上面說的第二第三點,注意自己的表達,表現的淡定一點。要注視面試官的眼睛,會顯得你更自信更尊重。
第六補充一下吧,關於java你會哪些,可以說基本語法沒問題,還有一些相關知識(看書都能懂得,即使沒用過也無所謂的,比如介面啊,內部類啊),拓展的知識比如spring,jsp,js之類的,不會的話可以先網路一下這些技術是干什麼的,至少面試官說起來你不會連聽都沒聽過。然後你說:正准備自學什麼什麼。。。。。
好像有點跑題了,
關於你的項目描述,如果是面試官讓你設計一個產品的話,先搞明白面試的公司是做什麼的,然後針對他們的產品研究下,一般的東西基本上就是前台顯示和後台操作及資料庫,如果能套你自己的項目模版就直接套進去。如果說不清楚你可以想像一下這個項目要實現哪些功能,越多越好。突出自己的邏輯性。
希望對你有幫助,祝你好運!
『陸』 現在西安java開發面試都問些什麼問題在線等 急!
1. junit用法,before,beforeClass,after, afterClass的執行順序
2. 分布式鎖
3. nginx的請求轉發演算法,如何配置根據權重轉發
4. 用hashmap實現redis有什麼問題(死鎖,死循環,可用ConcurrentHashmap)
5. 線程的狀態
5. 線程的阻塞的方式
6. sleep和wait的區別
7. hashmap的底層實現
8. 一萬個人搶100個紅包,如何實現(不用隊列),如何保證2個人不能搶到同一個紅包,可用分布式鎖
9. java內存模型,垃圾回收機制,不可達演算法
10. 兩個Integer的引用對象傳給一個swap方法在方法內部交換引用,返回後,兩個引用的值是否會發現變化
11. aop的底層實現,動態代理是如何動態,假如有100個對象,如何動態的為這100個對象代理
12. 是否用過maven install。 maven test。git(make install是安裝本地jar包)
13. tomcat的各種配置,如何配置docBase
14. spring的bean配置的幾種方式
15. web.xml的配置
16. spring的監聽器。
17. zookeeper的實現機制,有緩存,如何存儲注冊服務的
18. IO會阻塞嗎?readLine是不是阻塞的
19. 用過spring的線程池還是java的線程池?
『柒』 今天遇到一公司的超難的java面試題,面掛了,求幫忙!
交流一下,有些復我也不會。制^_^
1、數據沒有排序的嗎?排序了,可以用類似二分法搞。
3、只需用ThreadLocal包裝一下這個bean的日期屬性即可,簡單。
5、有介面直接用spring HttpInvoke遠程調用即可。
6、最簡單的辦法就是使用Terracotta伺服器集群tomcat,ecache、quartz、session一站式解決。不那樣的,緩存的話,可用memcached。tomcat中的session是復制式,直接在tomcat配置文件就可以吧。如果要實現自己手動更新感覺可以考慮用jms手動傳遞數據同步。
8、處理效率高了不少,並發效率好、數據更安全。
9、簽名的演算法是公開的,但是演算法相關的密鑰是私有的。
『捌』 java兩年經驗面試都會問什麼問題
兩年的java經驗, 找工作時候簡歷就要實事求是, 匹配一些基礎的研發崗位去面試, 如果平時內功修煉的到位, 拿下一個offer應該不成問題。
1、會問你科班基礎: 操作系統知識, 資料庫原理、數據結構、以及軟體工程相關的測試, 流程之類知識。
2、會問你java涉及到的基礎知識: OO基礎, 常見類庫用法, 常見類的區別, 優點和缺點。
3、會問你一般問題的解決方法: 如登錄流程, 資料庫不重名的方法, 文件讀取或者處理的方法。這些都是平時應該積累的。
4、會問你一些演算法的定義和區別, 可以參考一下:hihocoder.com/problemset
5、闡述問題的時候,盡量不要教科書式, 白話形式。
6、資料庫方面:關系資料庫各個範式的目的, 主鍵,索引,規則,PS,triger這些也要了解下用法。
7、能用常見BS框架做過小東西:ssh,ssi等, 能說出mvc,切面等內容。
8、記住: 不懂千萬不要裝懂亂說,態度要誠懇, 面試官看你求知慾強, 態度誠懇,也就喜歡和你聊下去, 就會有好印象。
9、面試過程不要
如果你還有很多Java行業的問題,可以加這個java學習交流qun:前面是四九四,中間是八零一,後面是九三一。學習氛圍濃厚,有很多大神可以咨詢。
『玖』 面試Java開發時問到高並發怎麼處理的,還有sql優化有哪些辦法,有哪位大神知道啊,新手!!
Java開發高並發的處理方法:
最基礎的地方做起,優化我們寫的代碼,減少必要的資源浪費
避免頻繁的使用new對象,對於整個應用只需要存在一個實例的類,我們可以使用單例模式。對於String連接操作,使用StringBuffer或StringBuilder,對於工具類可以通過靜態方法來訪問。
避免使用錯誤的方式,盡量不用instanceof做條件判斷。使用java中效率高的類,比如ArrayList比Vector性能好。
圖片伺服器分離
對於web伺服器來說,圖片是最消耗資源的,於是我們有必要把圖片與頁面進行分離,我們把圖片放到獨立的圖片伺服器。這樣的架構可以降低提供頁面訪問請求的伺服器系統壓力,並且可以保證系統不會因為圖片的問題而崩潰。在圖片伺服器上,我們可以對不同的配置進行優化。
緩存
具體接觸過的緩存機制是hibernate的緩存機制。為了避免每次都向資料庫中取得數據,我們把用戶常常訪問到的數據放到內存中,甚至緩存十分大的時候我們可以把內存中的緩存放到硬碟中。還有高級的分布式緩存資料庫使用,都可以增加系統的抗壓力。
分批傳送
在做某項目的時候,一次傳遞的參數太多,而且資料庫規定一次最多傳遞的參數最多是三萬條,當時有五萬條記錄,那怎麼傳送呢?最終是分批傳送,電梯里一次乘不下那麼多的人,會報超重的bug,那就分批把人送上去。
還有一次在考試系統中,如果那麼多的考試人員同時提交到資料庫中,資料庫的壓力增大,有時會被down掉,當時採用的方法是使用ajax非同步傳輸,沒有等待考生點擊提交按鈕的時候,就把考生的答案自動提交,這樣也避免了突然斷電考生前面做過的題出現丟失的現象。
DB優化
在資料庫設計的時候就要考慮到後期的維護,資料庫三範式是我們設計資料庫索要遵循的原則。
索引的建立:建立索引要適當,如果一個表經常用來被查詢,對於增加和修改很少被用到,我們就可以為這個表建立索引,因為對於增加和修改和刪除操作時,我們對索引的維護要大大超過索引給我們帶來的效率。
表欄位的類型選擇要恰當。包括欄位的長度、類型等,要根據實際存儲的數據進行選擇,長度不要過長,否則會影響效率。
外鍵要慎用,因為主鍵代表這一張表,而外鍵代表一群表,對表之間進行了關聯,在刪除修改等需要我們關聯。
在資料庫操作上。 盡量使用prepareStatement,少用Statement,因為PrepareStatement是進行預編譯的。
connection設置為readOnly,Connection是對書庫連接,屬於重量級,我們使用即可。
連接池的使用,我們可以修改資料庫默認的連接數。
『拾』 求兩份java面試項目和心得。
1:認真練習耿老師給的那五十道演算法題。
2:看清自己的優缺點,多反省自己,做個自信的人。
3:平時在學校測試時千萬別無目的無時間觀念地去練,即使是離校後也不能放
松專業知識的復習,沒有電腦也要在腦子里多回憶以前寫的那些代碼。公司要的是高效高質的員工,而不是別人20分鍾寫出來的程序你要花1個小時寫出來,
你想仗都打完了你才想出破敵方略還管什麼用。
4:高級時千萬要穩住不能浮,每堂課都要認真聽,老師講的所有知識點都將可能成為公司判定你知識面是否寬泛的標准。有條件時最好了解了解其它的語言。
5:做自我介紹時一定不要只談那幾個簡單的前景,還要展示你的口才,表達你對公司的嚮往。每個去面試的人都很優秀,或有名企工作背景,或有幾個大型項目經驗,或是名校科班學生,所以你要努力讓主考官記住你。一句話,放鬆,自信。
因為很多人都缺少項目經驗,對軟體開發的過程相對陌生,而老師講這方面的知識也比較少,如果你沒有一定的代碼和項目積累就算老師講你也很難去體會、理解。再說這方面的內容太要求實際經驗和日月積累,老師也不好講。現在採用把枯燥的概念和實際的項目結合起來進行歸納,從而形成這樣一個答題技巧。並且對其中的一些技術結合實際進行分析和總結。希望求職者能快速的知其然也知其所以然。從而能夠提高面試的成功率。當然這僅僅是一個答題技巧,關鍵還是需要知識的積累。