多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > 程序員電話面試問答Top 50

程序員電話面試問答Top 50

來源:程序員人生   發(fā)布時(shí)間:2015-03-26 09:36:57 閱讀次數(shù):4185次

詳細(xì)解析

今年是2015年,在過去幾年中,電面(電話面試)是挑選程序員職位候選人的最流行的方式。它讓雇傭雙方很容易相互了解對(duì)方,候選人不需要去未來雇主的所在地,面試官也不用做額外的安排。這是我介紹程序員面試問題的文章的第2部份。我得到反饋說第1部份過于偏重編碼的題了,許多程序員希望我針對(duì)電面問題列1個(gè)類似的列表。為了順利通過電面進(jìn)入下1輪,你必須足夠好地回答與你工作要求相干的全部問題。在大多針對(duì)JavaC++開發(fā)者的電面中,你不但會(huì)遇到相應(yīng)程序語言的問題,還會(huì)遇到其他技術(shù)的問題,比如SQLXMLUNIX、泛型編程、面向?qū)ο缶幊獭?shù)據(jù)結(jié)構(gòu)與算法、網(wǎng)絡(luò)、編碼和工作的其他方面。由于程序員求職電面的多變性,你需要有特殊的技能,以面試官期待的方式展現(xiàn)自己。

要記住1件重要的事,在回答電面問題的時(shí)候,盡早提出關(guān)鍵點(diǎn),總是給出關(guān)鍵性回答。由于面試官的問題常常會(huì)覆蓋很大范圍的主題,他們更喜歡關(guān)鍵性回答,而不是OK,我知道之類的空話。在面對(duì)面的面試中,你會(huì)有機(jī)會(huì)更深入地解釋問題的。順便說1下,這其實(shí)不是固定的規(guī)則,根據(jù)面試官對(duì)你的回答的反應(yīng),你可以了解到他期望得到甚么樣的回答。如果他進(jìn)行追問,期望你多說1些,那末你就應(yīng)當(dāng)多說。但如果他立刻跳到下1個(gè)問題,那末你就應(yīng)當(dāng)回答得清晰簡(jiǎn)潔。在這篇文章中,我要和你分享1些常見的有趣編程問題,它們是針對(duì)電面改編過的。其中大部份都來自科技公司的電面環(huán)節(jié),包括BarclaysCitiNomura之類的銀行,和InfosysTCSCTSTech MahindraHCL之類的提供服務(wù)的公司。像我之條件過的,面試題是隨機(jī)選的,但大部份是基于基礎(chǔ)知識(shí),由于那是面試官在電面時(shí)想考察的。雖然這些問題大多數(shù)是針對(duì)低級(jí)開發(fā)者(2至5年經(jīng)驗(yàn)),高級(jí)和資深程序員依然可以把它們用作自己面試的題目。如果你是1名面試官,你可以用這些問題快速挑選開發(fā)職位的候選人。我在此提供簡(jiǎn)短答案,并給出詳細(xì)答案的鏈接。

編程崗位電話面試問答Top 50

下面是幾近50道程序員電面題目的列表。這些問題可以用來考察任何程序員、開發(fā)者、軟件工程師、測(cè)試和運(yùn)營(yíng)工程師,由于它們是基于程序設(shè)計(jì)的基礎(chǔ)知識(shí)的。但它們最合適程序員和開發(fā)者。順便說1下,如果你是Java開發(fā)者,并且在尋覓Java電面題目,去看看那個(gè)列表。本列表更加普遍,適用于所有的程序員,包括PythonRubyPerlC#開發(fā)者。

1.從哈希表,2叉樹和鏈表中取元素需要多少時(shí)間?如果你有數(shù)百萬記錄呢?

哈希表需要O(1)時(shí)間,2叉樹需要O(logN) (N是樹中節(jié)點(diǎn)數(shù)),鏈表需要O(N) (N是鏈表中節(jié)點(diǎn)數(shù))。如果數(shù)據(jù)結(jié)構(gòu)工作正常(比如哈希表沒有或只有相對(duì)少許沖突,2叉樹是平衡的),數(shù)百萬記錄其實(shí)不影響效力。如果工作不正常,那末效力會(huì)隨著記錄數(shù)上升而降落。

2.覆蓋(Overriding)和重載(Overloading)的區(qū)分是甚么? detailed answer

覆蓋在運(yùn)行時(shí)決定,重載是在編譯時(shí)決定。并且覆蓋和重載的機(jī)制不同,例如在Java中,private

3.fork1個(gè)進(jìn)程和生成1個(gè)線程有甚么區(qū)分?

當(dāng)你fork1個(gè)進(jìn)程時(shí),新的進(jìn)程將履行和父進(jìn)程相同的代碼,只是在不同的內(nèi)存空間中。但當(dāng)你在已有進(jìn)程中生成1個(gè)線程時(shí),它會(huì)生成1個(gè)新的代碼履行線路,但同享同1個(gè)內(nèi)存空間

4.甚么是臨界區(qū)? answer

臨界區(qū)是1段代碼,10分重要,在多線程中同1時(shí)間只能被1個(gè)線程履行。可以用信號(hào)量或互斥量來保護(hù)臨界區(qū)。在Java中你可以用synchronized關(guān)鍵字或ReentrantLock來保護(hù)臨界區(qū)。

5.值類型和援用類型有甚么區(qū)分? answer

值類型是更加優(yōu)化的類型,總是不可變的(immutable),例如Java原始的intlongdoublefloat。援用類型指向1個(gè)對(duì)象,多是可變的,也多是不變的。你也能夠說值類型指向1個(gè)值,援用類型指向1個(gè)對(duì)象。

6.甚么是在進(jìn)程中的堆和棧?

在同1個(gè)進(jìn)程中,有兩塊不同的內(nèi)存區(qū)域。以Java來講,棧用來存儲(chǔ)原始值和指向?qū)ο蟮脑妙愋?/strong>,但對(duì)象本身總是在堆中被創(chuàng)建。堆和棧的1個(gè)重要區(qū)分是,堆內(nèi)存被所有線程同享,但每一個(gè)線程有自己的棧

7.甚么是版本控制?

版本控制是用來存儲(chǔ)代碼和管理代碼庫(kù)版本的軟件,例如SVNCVSGitPerforceClearCase。它們?cè)趯?duì)照代碼、審查代碼和從之前的穩(wěn)定版本構(gòu)造時(shí)10分高效。所有的專業(yè)開發(fā)都使用某種版本控制工具,否則你沒法有效的管理代碼,特別是如果有20個(gè)開發(fā)者在同1個(gè)代碼庫(kù)上工作的時(shí)候。版本控制工具在保持代碼庫(kù)1致性和處理代碼沖突上扮演著10分重要的角色

8.甚么是強(qiáng)類型程序設(shè)計(jì)語言?

在強(qiáng)類型語言中,編譯器確保類型的正確性,例如你沒法在String類型中寄存數(shù)字,反之亦然。Java是強(qiáng)類型語言,因此存在各種數(shù)據(jù)類型(如intfloatStringcharboolean等)。你只能將兼容的值存入相應(yīng)的類型中。與此相反,弱類型語言不要求在編譯時(shí)進(jìn)行類型檢查,它們根據(jù)上下文處理值。PythonPerl是兩個(gè)常見的弱類型程序設(shè)計(jì)語言的例子,你可以將數(shù)字組成的字符串保存在數(shù)字類型中。

9.可否描寫1下有效(valid)的XML和格式正確(well-formed)的XML的區(qū)分?

格式正確的XML有根元素,所有標(biāo)簽都是正確關(guān)閉的,屬性是正肯定義的,它們的值正確地加上了引號(hào)。另外一方面,有效的XML可以根據(jù)1個(gè)XSD文件或模式(schema)進(jìn)行驗(yàn)證。所以1個(gè)XML多是格式正確但不有效的(由于包括不被模式允許的標(biāo)簽)。

10.DOMSAX語法分析器有甚么區(qū)分?

DOM語法分析器是駐留內(nèi)存的,將全部XML文件裝載到內(nèi)存中,并創(chuàng)建1個(gè)DOM樹進(jìn)行語法分析。SAX語法分析器是1個(gè)基于事件的語法分析器,所以它根據(jù)收到的事件(如開始標(biāo)簽、結(jié)束標(biāo)簽、屬性開始和屬性結(jié)束)來對(duì)XML文檔進(jìn)行語法分析。根據(jù)他們的分析方法,DOM語法分析器其實(shí)不適用于大的XML文件,由于它會(huì)占用大量的內(nèi)存空間,你的進(jìn)程可能會(huì)耗盡內(nèi)存。應(yīng)當(dāng)用SAX分析大的文件。對(duì)小的文件,DOM常常比SAX快很多。

11.線程和進(jìn)程的關(guān)系是甚么?

1個(gè)進(jìn)程可以有多個(gè)線程,但1個(gè)線程總是屬于唯1的進(jìn)程。兩個(gè)進(jìn)程不能同享內(nèi)存空間,除非它們成心通過同享內(nèi)存進(jìn)行進(jìn)程間通訊。但是同1進(jìn)程的兩個(gè)線程總是同享相同的內(nèi)存。

12.不可變(immutable)類是甚么意思?

1個(gè)類,如果在創(chuàng)建以后它的狀態(tài)就不能被改變,那末他就是不可變的。例如Java中的String。1旦你創(chuàng)建了1個(gè)String,例如Java,你就不能再改變它的內(nèi)容。任何對(duì)這個(gè)字符串的改變(例如轉(zhuǎn)換到大寫、與另外一個(gè)String連接)將創(chuàng)建1個(gè)新的對(duì)象不可變的對(duì)象在并行程序設(shè)計(jì)中很有用,由于它們可以在進(jìn)程間被同享,不需要擔(dān)心同步。事實(shí)上,全部函數(shù)是程序設(shè)計(jì)的模型都是在不可變對(duì)象上構(gòu)建的。

13.你為什么要?jiǎng)?chuàng)建摹擬(mock)對(duì)象?

摹擬對(duì)象在測(cè)試軟件中1個(gè)獨(dú)立的單元時(shí)很有用,事實(shí)上,存根(stub)和摹擬都是創(chuàng)建自動(dòng)化單元測(cè)試的有力工具。假定你在寫1個(gè)顯示貨幣兌換率的程序,但沒有1個(gè)可以連通的URL,現(xiàn)在如果想測(cè)試你的代碼,可以用摹擬對(duì)象。在Java的世界中,有很多框架可以為你生成強(qiáng)大的摹擬對(duì)象,例如MockitoPowerMock

14.甚么是SQL注入?

SQL注入是1種安全漏洞,它使得入侵者可以從系統(tǒng)中盜取數(shù)據(jù)。任何從用戶那里得到輸入其實(shí)不加驗(yàn)證地創(chuàng)建SQL查詢的系統(tǒng)都可能被SQL注入攻擊。在這樣的系統(tǒng)中,入侵者可以輸入SQL代碼,而不是數(shù)據(jù),來獲得額外的數(shù)據(jù)。有很多用敏感信息(如用戶id、密碼和個(gè)人信息)被人利用這類漏洞獲得的實(shí)例。 在Java中,你可以用Prepared語句來避免SQL注入。

15.在SQL中,內(nèi)連接(inner join)和左連接(left join)有甚么區(qū)分?

SQL中,主要有兩種連接類型,內(nèi)連接和外連接。外連接包括右外連接和左外連接。內(nèi)連接和左連接的主要區(qū)分是,內(nèi)連接中兩個(gè)表都匹配的記錄才被選中,左連接中兩個(gè)表都匹配的記錄被選中,外加左表的所有記錄都被選中。要留意包括“所有”的查詢,它們常常要求左連接,例如寫1個(gè)SQL查詢來找所有的部門和它們的雇員人數(shù)。如果你用內(nèi)連接處理這個(gè)查詢,你會(huì)漏掉沒有人工作的空部門。

16.MVC中的V代表甚么,意味著甚么?

MVC模式中,V是視圖(View)。視圖是用戶看到的東西,比如網(wǎng)頁。這是1個(gè)非常重要的web利用開發(fā)設(shè)計(jì)模式,它基于關(guān)注點(diǎn)分離原則,目的是不同模塊可以獨(dú)立修改,不影響其他模塊。在Java的世界中,有很多提供MVC模式的開源框架,例如Struts 2Spring MVC。順便說1下,M代表模型(Model),C代表控制器(Controller)。模型是實(shí)際的業(yè)務(wù)對(duì)象,例如用戶、雇員、定單,控制器用來將要求分發(fā)給正確的處理單元。

17.類和對(duì)象的區(qū)分是甚么?

類是用來創(chuàng)建對(duì)象的設(shè)計(jì)圖。1個(gè)類包括代碼和行動(dòng),1個(gè)對(duì)象包括狀態(tài)和行動(dòng)。要?jiǎng)?chuàng)建1個(gè)對(duì)象,你必須創(chuàng)建1個(gè)表達(dá)對(duì)象結(jié)構(gòu)的類。類還被用來在內(nèi)存中映照對(duì)象,在Java中,JVM替你完成這項(xiàng)工作。

18.甚么是疏耦合(loose-coupling)?

疏耦合是1種值得尋求的軟件特性,它使得對(duì)軟件1個(gè)部份的修改不會(huì)影響到其他的部份。例如,在1個(gè)疏耦合的軟件中,對(duì)UI布局的改變不應(yīng)當(dāng)影響后真?zhèn)€類結(jié)構(gòu)。

19.組合(composition),聚合(aggregation)和關(guān)聯(lián)(association)的區(qū)分是甚么?

關(guān)聯(lián)的意思是兩個(gè)對(duì)象是相互聯(lián)系的。組合是關(guān)聯(lián)的1種情勢(shì),即1個(gè)對(duì)象由多個(gè)對(duì)象組成,但是它們必須共存,例如人體由各種器官組合而成,獨(dú)立的器官不能生存,它們必須在身體內(nèi)發(fā)揮作用。聚合也是關(guān)聯(lián)的1種情勢(shì),表示對(duì)象的集合,例如城市是居民的聚合。

20.接口和抽象類有甚么區(qū)分?

這是所有程序員面試最經(jīng)典的問題。接口是最純潔的抽象情勢(shì),沒有任何具體的東西抽象類是1些抽象和具體事物的組合體。這個(gè)區(qū)分在不同語言中可能會(huì)不同,例如在Java中你可以擴(kuò)大(extend)多個(gè)接口,但只能繼承1個(gè)抽象類。更詳細(xì)的討論見于詳細(xì)答案。

21.甚么是單元測(cè)試?

單元測(cè)試是測(cè)試獨(dú)立單元(而不是全部利用程序)功能性的1種方法。在不同語言中,有很多工具可以做單元測(cè)試。例如在Java中,你可以用JUnitTestNG來寫單元測(cè)試。單元測(cè)試常常在構(gòu)建時(shí)自動(dòng)運(yùn)行,或在1個(gè)延續(xù)的環(huán)境(例如Jenkins)中運(yùn)行。

22.你能否描寫3種不同的在利用程序發(fā)布前對(duì)其進(jìn)行測(cè)試的方式?

單元測(cè)試,集成測(cè)試,冒煙測(cè)試。單元測(cè)試用來測(cè)試獨(dú)立的單元是不是依照預(yù)期工作集成測(cè)試用來測(cè)試已被測(cè)試過的獨(dú)立單元能否共同工作冒煙測(cè)試用來測(cè)試軟件最經(jīng)常使用的功能是不是正常工作,例如在1個(gè)飛機(jī)訂票網(wǎng)站中,你應(yīng)當(dāng)能訂票,取消或更改航班。

23.迭代和遞歸有甚么區(qū)分?

迭代通過循環(huán)來重復(fù)履行同1步驟,遞歸通過調(diào)用函數(shù)本身來做重復(fù)性工作。遞歸常常是復(fù)雜問題(例如漢諾塔、反轉(zhuǎn)鏈表或反轉(zhuǎn)字符串)的清晰簡(jiǎn)潔的解決方案。遞歸的1個(gè)缺點(diǎn)是深度,由于遞歸在棧中存儲(chǔ)中間結(jié)果,你只能進(jìn)行1定深度的遞歸,在那以后你的程序會(huì)由于StackOverFlowError而崩潰。這就是在產(chǎn)品代碼中優(yōu)先使用迭代而不是遞歸的緣由。

24.&&&運(yùn)算符的區(qū)分是甚么?

&是位運(yùn)算符,&&是邏輯運(yùn)算符。&&&的1個(gè)區(qū)分是位運(yùn)算符(&)可以被用于整型和布爾類型,邏輯運(yùn)算符(&&)只能被用于布爾類型變量。當(dāng)你寫a & b時(shí),兩個(gè)整型數(shù)的每位都會(huì)進(jìn)行與運(yùn)算。當(dāng)你寫a && b時(shí),第2個(gè)參數(shù)可能會(huì)也可能不會(huì)被履行,這也是它被稱為短路運(yùn)算符的緣由,最少在Java中是這樣的。我很喜歡這個(gè)問題,常常對(duì)低級(jí)開發(fā)者和畢業(yè)生問這個(gè)問題。

25.1 XOR 1的結(jié)果是甚么?

答案是0,由于XOR在兩個(gè)操作數(shù)(按位)不同時(shí)返回1,相同時(shí)返回0。例如0 XOR 0依然是零,但0 XOR 11 XOR 0的結(jié)果是1。

26.如何得到1個(gè)整型數(shù)的最后1位?

用取模運(yùn)算符,數(shù)字 % 10返回?cái)?shù)字的最后1位。例如2345 % 10會(huì)返回5567 % 10會(huì)返回7。類似的,除運(yùn)算符可以用來去掉數(shù)字的最后1位,例如2345 / 10的結(jié)果是234567 / 10的結(jié)果是56。這是值得了解的1個(gè)重要技能,可以用來解決類似回文數(shù)、反轉(zhuǎn)數(shù)的問題。

27.甚么是測(cè)試驅(qū)動(dòng)開發(fā)?

測(cè)試驅(qū)動(dòng)是1種常見的開發(fā)方法,在這類方法中,測(cè)試代碼在功能代碼之前編寫測(cè)試決定了程序的結(jié)構(gòu)。測(cè)試驅(qū)動(dòng)的純潔主義者在寫為利用寫測(cè)試之前,不會(huì)寫1行的利用代碼。這能很大幅度地提高代碼質(zhì)量,常常被認(rèn)為是巨星級(jí)開發(fā)者的品質(zhì)。

28.里氏替換原則(Liskov substitution principle, LSP)是甚么?

里氏替換原則是鮑勃大叔稱作SOLID的5條設(shè)計(jì)原則中的1條。里氏替換原則規(guī)定,所有的子類都能作為父類的代理(proxy)工作。例如,如果1個(gè)方法需要父類對(duì)象作為輸入,那末如果你提供1個(gè)子類對(duì)象,它也應(yīng)當(dāng)正常工作任何不能替換父類的類都違背了里氏替換原則。這實(shí)際上是1個(gè)難以答出的問題,如果你答出了,那末就會(huì)給面試官留下好的印象。

29.甚么是開閉(Open closed)設(shè)計(jì)原則?

開閉原則是SOLID中另外一個(gè)重要的原則,它規(guī)定1個(gè)系統(tǒng)對(duì)擴(kuò)大是開放的,但對(duì)修改是封閉的。意思是說,如果1個(gè)新的功能要被加入1個(gè)穩(wěn)定的系統(tǒng),那末你不需要碰已被測(cè)試過的現(xiàn)有代碼,新的功能可以通過只添加新類來實(shí)現(xiàn)

30.2叉樹和2叉查找樹的區(qū)分是甚么?

2叉查找樹是有序的2叉樹,所有節(jié)點(diǎn)(例如根節(jié)點(diǎn))的左子樹節(jié)點(diǎn)的值都小于或等于該節(jié)點(diǎn)的值,右子樹節(jié)點(diǎn)的值都大于或等于該節(jié)點(diǎn)的值。它是1個(gè)重要的數(shù)據(jù)結(jié)構(gòu),可以用來表示有序的數(shù)據(jù)。

31.你能否給出1個(gè)遞歸算法的實(shí)際例子?

遞歸算法能適用在很多地方,例如與2叉樹和鏈表相干的算法。幾個(gè)與遞歸算法的例子包括反轉(zhuǎn)字符串,計(jì)算斐波那契數(shù)列。其他的例子包括反轉(zhuǎn)鏈表、樹遍歷和快速排序。

32.算法的時(shí)間復(fù)雜度是甚么?

時(shí)間復(fù)雜度表示的是運(yùn)行時(shí)間對(duì)輸入量的比率。他表示1個(gè)算法處理1定量的輸入需要多長(zhǎng)時(shí)間。它是1個(gè)估計(jì)值,但足夠表示輸入量從10增長(zhǎng)到1千萬時(shí),你的算法會(huì)有甚么樣的表現(xiàn)。

33.鏈表和數(shù)組有哪些重要區(qū)分?

鏈表和數(shù)組都是程序設(shè)計(jì)世界中重要的數(shù)據(jù)結(jié)構(gòu)。它們間最明顯的區(qū)分是,數(shù)組將元素寄存在連續(xù)的地址中,鏈表將數(shù)據(jù)寄存在內(nèi)存中任意的位置。這使得鏈表有巨大的擴(kuò)大自己的靈活性,由于內(nèi)存總是分散的。這類情況總是可能的:你沒法創(chuàng)建1個(gè)數(shù)組來寄存1百萬個(gè)整數(shù),但可以用鏈表來寄存,由于空間是存在的,只是不連續(xù)。其他的不同都是源于這項(xiàng)事實(shí)。例如,在數(shù)組中,如果你知道下標(biāo),可以用O(1)的時(shí)間得到1個(gè)元素,但在鏈表中要花O(n)的時(shí)間。更多不同參見詳細(xì)答案。

34.在哈希表中處理沖突的方法都有哪些?

線性探測(cè)(linear probing),2次哈希(double hashing)和鏈接(chaining)。在線性探測(cè)中,如果桶已被占據(jù)了,那末函數(shù)會(huì)線性地檢查下1個(gè)桶,直到找到1個(gè)空位。在鏈接中,多個(gè)元素可以存儲(chǔ)在同1個(gè)桶中。

35.甚么是無狀態(tài)(stateless)系統(tǒng)?

無狀態(tài)系統(tǒng)是不保護(hù)內(nèi)部狀態(tài)的系統(tǒng)。這類系統(tǒng)在任什么時(shí)候刻,對(duì)相同的輸入都會(huì)給出相同的輸出。編寫優(yōu)化1個(gè)無狀態(tài)系統(tǒng)總是比較簡(jiǎn)單的,所以如果可能,你總是應(yīng)當(dāng)優(yōu)先編寫無狀態(tài)系統(tǒng)。

36.寫1個(gè)SQL查詢,在雇員表中查找第2高的工資。

這是SQL面試的經(jīng)典題目之1,雖然已很老了,還是很有趣,并且可以追問很多問題來測(cè)試候選人的知識(shí)深度。你可以用相干或不相干的子查詢來查找第2高工資。如果你在用SQL ServerMySQL,你也能夠用類似TOPLIMIT之類的關(guān)鍵字,條件是面試官允許。查找第2高工資的最簡(jiǎn)答方法.這個(gè)查詢首先查找最高工資,然后將它從列表中排除,再查找最高工資。很明顯,第2次返回的是第2高工資。

37.可否描寫1下甚么是關(guān)聯(lián)的和不關(guān)聯(lián)的子查詢?

在關(guān)聯(lián)的子查詢中,內(nèi)層查詢依賴于外層查詢,對(duì)外層查詢的每行履行。非關(guān)聯(lián)的子查詢不依賴于外層查詢,可以獨(dú)立履行。因此,前者慢,后者快。順便說1下,關(guān)聯(lián)的子查詢有1些很棒的利用,其中包括在雇員表中查找第N高的工資,這在上1道SQL問題中也有提到。

38.正則表達(dá)式是甚么意思?

正則表達(dá)式是在文本型數(shù)據(jù)上進(jìn)行模式匹配的方法。它是1種搜索的強(qiáng)有力方法,例如搜索長(zhǎng)字符串中的某些字符,例如搜索1本書中是不是含有某個(gè)單詞。所有主流程序設(shè)計(jì)語言都支持正則表達(dá)式,但是Perl正則表達(dá)式的能力是著名的。Javajava.util.regex包也支持類似Perl正則表達(dá)式。你可以用正則表達(dá)式檢查email地址是不是有效,電話號(hào)碼是不是有效,郵政編碼是不是有效,乃至社會(huì)保險(xiǎn)號(hào)(SSN)是不是有效。正則表達(dá)式最簡(jiǎn)答的例子之1是檢查字符串是否是1個(gè)數(shù)。

39.不用算術(shù)運(yùn)算符,如何判定1個(gè)數(shù)是不是是2的冪?

當(dāng)你聽到不能用算術(shù)運(yùn)算符的限制時(shí),應(yīng)當(dāng)立刻假定這是1道關(guān)于位運(yùn)算的題。如果沒有這條限制,那末你可以輕松地用取模和除運(yùn)算符檢查1個(gè)數(shù)是否是2的冪。用位運(yùn)算符,有1個(gè)很奇妙的方法來完成任務(wù)。你可以用下面這段代碼來檢查1個(gè)數(shù)是否是2的冪

public static boolean powerOfTwo(int x) { return (x & (x - 1)) == 0; }

x & (x⑴)是1個(gè)很棒的技能,可以將最右側(cè)的為1的位設(shè)為0。我是從《高效程序的奧秘》這本書中學(xué)到的。

40.如何在UNIX上找到1個(gè)正在運(yùn)行的Java進(jìn)程?

你可以組合使用psgrep命令來查找UNIX機(jī)器上的任何進(jìn)程。假定你的Java進(jìn)程著名字,或有任何可以用來匹配的文字,那末使用這個(gè)命令。

ps -ef | grep “myJavaApp”

ps -e將列出所有的進(jìn)程(所有用戶的進(jìn)程,不只是你的),ps -f將顯示所有細(xì)節(jié),包括PID。如果你想要深入調(diào)查或用kill命令殺死這個(gè)進(jìn)程,你會(huì)需要PID

41.如何在UNIX中尋覓大的文件,例如1GB以上的文件?

你可以輕松地用find命令尋覓大的文件,由于它提供根據(jù)大小尋覓文件的選項(xiàng)。如果你的文件系統(tǒng)滿了,你的Java進(jìn)程由于沒有空間而崩潰,那末就使用這個(gè)命令。這個(gè)命令可以列出所有大于1GB的文件。你可以很容易地改變大小,例如尋覓所有100MB以上的文件,就用+100M

find .
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲欧美日韩精品永久在线 | 成人区在线观看免费视频 | 国产一级毛片国语普通话对白 | 高清欧美色欧美综合网站 | 午夜dj影院在线观看免费视频中文 | 国产一区二区日韩欧美在线 | 一本大道加勒比久久 | 中文字幕亚洲精品 | 欧美午夜性刺激在线观看免费 | 一区二区三区四区在线不卡高清 | 亚洲天堂.com | 精品免费国产一区二区三区 | 亚洲国产成人在线视频 | 免费高清不卡毛片在线看 | 国产在线综合网 | 玖操网 | 磁力天堂网在线资源www | 亚洲天堂久久精品成人 | 国产成人黄网址在线视频 | 免费人成在线观看视频色 | 自拍在线 | 亚洲精品久久久久中文 | 青青青青爽极品在线视频 | 日韩一区二区三区视频 | 国产高清不卡一区二区 | www日韩精品| 尤物精品在线观看 | 亚洲爱| 欧美一区视频 | 亚洲精品网址 | 亚洲一区二区黄色 | 精品亚洲成a人在线播放 | a级艳片武则天 | 性欧美高清video | 日本一本高清v免费视频 | 包你爽综合网 | 国产高清日韩 | 国产呦精品一区二区三区网站 | 欧美在线看片 | 激情区小说区偷拍区图片区 | 国产视频大全 |