㈠ 豆瓣:在哪兒買程序員代碼面試指南:IT名企演算法與數據結構題目最優解
還記得研發頻道此前發表過的一篇《白班程序員 VS. 夜貓子程序員》嗎?在這個世界上有兩種程序員,我們稱之為:Day Programmers(白班程序員)和Night Programmers(夜貓子程序員)。
本文我們將探討優秀程序員和一般程序員有哪些差別,看看您是屬
㈡ 程序員的面試問題(希望全面點)
很多用這個. 1. 問:怎樣用 Win95 的記事本 (Notepad) 來編輯 java源程序? 答:記得存檔時擴展名要加上".java",文件類型改成:「所有的文件(*.*)」。 2. 問:到底 Java 是如何傳遞參數的?是by value或by reference? 答:All parameters (values of primitive types, and values that are references to objects) are passed by value [JLS sect 8.4.1]。根據以上 Java規格文件的說法, 所有參數應該都是傳值的(by value)。但實際上, 實際經驗卻告訴我們所有 Java 的對象都是傳址的(by reference)。因此我們可以這樣解釋: 基本類型(如int, float, char等)是by value,而所謂「對象」(Object)則是by value of reference to object。 3. 問:String這個類型的class為何定義成final? 答: 主要是為了「效率」 和 「安全性」 的緣故。若 String允許被繼承, 由於它的高度被使用率, 可能會降低程序的性能,所以String被定義成final。 4. 問:finalizers和C++ 的 destructors有何差異? 答:Java內部具有「內存使用回收」 的機制, 雖然它也提供了類似 (C++ 的) destructors的 finalize(),每個對象都可以使用這個方法 method,但必須冒著破壞原先回收機制的危險。所以建議盡量避免使用finalize(),不妨考慮多使用 null 及 dispose() 來釋出資源會好一些。 5. 問:繼承了一個class叫做 Frotz,編譯器卻給我「No constuctor Frotz() in the class」這樣的錯誤提示,為什麼呢? 答:記住每當您定義了一個 class的constructor,除非您一開始就去call 這個constructor,否則 Java 會自動引入superclass原先不含參數的 constructor, 如果superclass的 constructor都是有參數的,那麼問題中的錯誤提示便出現了。 解決的方法很簡單, 找一找 API文件,加上正確的參數就得了。 6. 問:怎樣讓char類型的東西轉換成int類型? 答: char c = 'A'; int i = c; //反過來只要作強制類型轉換就行了 c = (char) I; 7. 問:我的applet原先好好的, 一放到web server就會有問題,為什麼? 答:一般來說,從以下方向試試: 確定class文件的格式沒錯——已經編譯過,也沒有損壞的情形; 確定所有用到的class文件放到web server上,少一個都不行; 確定所有的文件名和class名稱一致,特別檢查大小寫有無差錯; 如果程序中用到package,web server上的目錄就要當心了。譬如您在class中宣告了一個叫COM.foo.util的package,那麼web server的applet codebase目錄底下就非得有 COM/foo/util這個子目錄不可。(注意目錄名稱也有大小寫之分); web server上的文件檔案應該事先設定好。(尤其是search,read和execute許可權) 8. 問:怎樣在 Applet中用某個圖形塗滿整個背景? 答:在背景建立 Panel 或 Canvas, 然後用圖形填滿它。 9. 問:怎樣在 Applet 中建立自己的菜單(MenuBar/Menu)? 答:首先在Applet的init() 方法中建立Frame instance, 然後將Menus, Menubar都加上去即可。 (setMenuBar() 是 Frame下的方法)或者,找到Applet上層的Frame後依法炮製。 Container parent = getParent(); while (! (parent instanceof Frame) ) parent = parent.getParent(); Frame theFrame = (Frame) parent; 注意:第二個方法在Mac或某些browsers上並不可行。 如果您使用的是JDK 1.1,也可以考慮使用popup menu,這樣就不必理會Frame的問題了。 10. 怎樣比較兩個類型為String的字元串? 答:在兩個對象之間使用 "==",會將「兩個對象是否有同一reference」的結果傳回。也就是說, 這等同於「兩個對象是否擁有同一地址 (address)」,或者「兩個對象物件是否為同一對象」。如果您的意思是判斷兩個字元串的內容是否相同,那麼應該使用以下的方法才對: if (s1.equals(s2) ) or if (s1.equalsIgnoreCase(s2) ) or if (s1.startsWith(s2) ) or if (s1.endsWith(s2) ) or if (s1.regionMatches(s1_offset, s2, s2_offset, length) ) or if (s1.compareTo(s2) <0) 11. 怎樣將浮點數(float)相加 ? Float 好像沒有辦法? 答:我猜想您的程式大概寫成這樣: Float One; Float Two; Float Hard = One + Two; 請注意 float 和 Float 是不同的,前者是 Java 基本類型之一, 而後者卻是class。您應該將源代碼改為: float One; float Two; float Hard = One + Two; 或 Float One = new Float(1.0); Float Two = new Float(2.0); Float Hard = new Float(One.floatValue() + Two.floatValue());
㈢ 《程序員代碼面試指南》作者是誰
左程雲
㈣ java程序員面試問題,你在項目中遇到什麼困難,你是怎麼解決的,說簡單了又不像,有哪些復雜的困難,解決
生 : 30歲,我的程序員夢想
作 者: redbridge (雪燃)
30歲,開始實現我的程序員夢,從一個編程愛好者,從一個業余的程序員,一個水平不高的程序員,一個半道出家的程序員......
我的經歷到這里就告一段落了,五年裡跳了五次槽,不知道和大家比算不算多J,沒有什麼太多起伏,但我想很多朋友可能會和我有類似的經歷,不知道能不能引起你們的共鳴。我想對我上面所說的話給一個總結:
1. 如果你覺得自己應該追求什麼,不管遇到什麼困難千萬不要放棄,一定要堅持下去。
2. 不要因為自己年輕就找理由揮霍時間,少玩一點SC、CS、魔獸3、傳奇、魔力或者…….,多看點書,多練練題。
3. 如果你還是在校的學生,英語很差,專業課也很差。沒關系,想怎麼學計算機就怎麼學計算機吧。其它地只要能混到畢業證就行了。除非你對自己的未來沒有信心。(當然,如果你的理想不僅僅是要做一個程序員,那你別丟掉英語。)
4. 如果你不是科班出身,想要轉行而不知該怎麼開始的話,建議你先看兩類書:(1)計算機原理;(2)數據結構和演算法。(看數據結構之前先看C語言)。
5. 什麼時候努力都不晚,關鍵是你明白要努力了,大器晚成總比一事無成要好的多。
6. Java、.net、C++、PB、VB、Delphi、匯編到底應該學哪個?我的經驗,哪個最簡單就先學哪個、公司用哪個你就學哪個、哪個和你有緣(比如剛好你認識一個願意幫助你的Delphi高手)你就學哪個,如果你都學,或者三天兩頭的換,我可以告訴你結果肯定是什麼都不會,不要心浮氣燥,他們都只是工具,學精一門其它的就相通了,重要的是掌握編程的思想。如果你問我面向對象(好像現在已經是面向需求了)、UML、WebLogic、WebService、軟體工程、XML…….應該怎麼學呀,對不起,這些我也確實不是都會,但請相信,你先實實在在的寫上十萬行以上的代碼以後,那些東西你自然就慢慢會了。
7. 不要以為程序員的工資都很高,程序員之間的水平差異也大。公司衡量一個人的待遇標準是他能給公司帶來多大的效益。如果你體現了自己的價值,公司會主動給你加薪的,當然你也可以自己主動提,但一定要在你表現出了自己的價值之後。
8. 輕易不要跳槽,如果非要跳,也要保持工作經驗上的延續,而不是從新開始,不然就會象我一樣走很多彎路。
9. 如果你以為程序員都是熬夜熬出來的,那麼你錯了,因為它的代價就是縮短你的青春!大家不要象我一樣,真的,熬夜一點也不好!記住老毛的話:如有恆,何須三更起,半夜眠;最怕莫,三天打魚兩天曬網,竹籃打水一場空!
10. 這一點是我覺得最精華的一點:「君子性非異也,善假於物也。」這句話的本意是一個水平很高的人本身並不一定很高明,關鍵是他善於利用別人的高明!我在這里做個借鑒,就是要充分利用自己身邊的資源,不放過任何一個可以提高自己的機會。大家不要誤會,這里的假於物可不是指抄襲別人的源代碼,而是指通過學習別人的源代碼把他的思想擴展到自己的思想里去。
註:上面的十大「精華」純屬我個人的「謬論」,您自己看著消化,有用的收下,沒用的請拖入「回收站」。如果你覺得這些總結不過是一些浮華之詞,那請你先問問自己:「是不是在行動上都真正做到了。」
這就是我,一個不算優秀,不算勤奮;玩能玩通宵,學也學能學通宵;對夢想的追求很執著;到了30才開始真正寫程序;一個很平凡但又不甘於平凡的人……我的經歷相信很多朋友都有過的,我現在也不能算是一個成功人士,但我相信我的經歷卻是值得大家借鑒的,因為我終究代表了一類人。
最後我還想說一點:現在很多朋友都抱怨中國的軟體業環境太差,前途渺茫。確實是這樣,我有同感。不過我想軟體業不過是千萬個行業中的一種,每一個行業總是會有起落的,中國的軟體業環境差有她的歷史原因,我們不要總是簡單地和印度相比。抱怨沒有意義,已經這樣了,抱怨不能使她變好,希望我們每一個人多貢獻一份自己的力量,總有一天她會變的比印度還好,甚至比美國還好。
最後:希望所有的程序員和擁有成為程序員夢想的朋友們在新的一年裡心想事成,萬事如意。請相信我:明天不一定更美好,但美好的一天一定會來!