老馬編程
⑴ 有老馬面試過了么,請問面試都問點啥
1、請你自我介紹一下你自己。
回答提示:一般人回答這個問題過於平常,只說姓名、年齡、愛好、工作經驗,這些在簡歷上都有,其實,企業最希望知道的是求職者能否勝任工作,包括:最強的技能、最深入研究的知識領域、個性中最積極的部分、做過的最成功的事,主要的成就等,這些都可以和學習無關,也可以和學習有關,但要突出積極的個性和做事的能力,說得合情合理企業才會相信。企業很重視一個人的禮貌,求職者要尊重考官,在回答每個問題之後都說一句「謝謝」。企業喜歡有禮貌的求職者。
2、你覺得你個性上最大的優點是什麼?
回答提示:沉著冷靜、條理清楚、立場堅定、頑強向上。
樂於助人和關心他人、適應能力和幽默感、樂觀和友愛。我經過一到兩年的培訓及項目實戰,加上實習工作,使我適合這份工作。我相信我能成功。
3、說說你最大的缺點?
回答提示:這個問題企業問的概率很大,通常不希望聽到直接回答的缺點是什麼等,如果求職者說自己小心眼、愛忌妒人、非常懶、脾氣大、工作效率低,企業肯定不會錄用你。絕對不要自作聰明地回答「我最大的缺點是過於追求完美」,有的人以為這樣回答會顯得自己比較出色,但事實上,他已經岌芨可危了。企業喜歡求職者從自己的優點說起,中間加一些小缺點,最後再把問題轉回到優點上,突出優點的部分。企業喜歡聰明的求職者。
4、你對加班的看法?
回答提示:實際上好多公司問這個問題,並不證明一定要加班。只是想測試你是否願意為公司奉獻。
回答樣本:如果是工作需要我會義不容辭加班。我現在單身,沒有任何家庭負擔,可以全身心的投入工作。但同時,我也會提高工作效率,減少不必要的加班
5、你對薪資的要求?
回答提示:如果你對薪酬的要求太低,那顯然貶低自己的能力;如果你對薪酬的要求太高,那又會顯得你分量過重,公司受用不起。一些僱主通常都事先對求聘的職位定下開支預算,因而他們第一次提出的價錢往往是他們所能給予的最高價錢。他們問你只不過想證實一下這筆錢是否足以引起你對該工作的興趣。
回答樣本一:「我對工資沒有硬性要求。我相信貴公司在處理我的問題上會友善合理。我注重的是找對工作機會,所以只要條件公平,我則不會計較太多
回答樣本二:我受過系統的軟體編程的訓練,不需要進行大量的培訓。而且我本人也對編程特別感興趣。因此,我希望公司能根據我的情況和市場標準的水平,給我合理的薪水。
回答樣本三:如果你必須自己說出具體數目,請不要說一個寬泛的范圍,那樣你將只能得到最低限度的數字。最好給出一個具體的數字,這樣表明你已經對當今的人才市場作了調查,知道像自己這樣學歷的雇員有什麼樣的價值。
6、在五年的時間內,你的職業規劃?
回答提示:這是每一個應聘者都不希望被問到的問題,但是幾乎每個人都會被問到。比較多的答案是「管理者」。但是近幾年來,許多公司都已經建立了專門的技術途徑。這些工作地位往往被稱作「顧問」、「參議技師」或「高級軟體工程師」等等。當然,說出其他一些你感興趣的職位也是可以的,比如產品銷售部經理,生產部經理等一些與你的專業有相關背景的工作。要知道,考官總是喜歡有進取心的應聘者,此時如果說「不知道」,或許就會使你喪失一個好機會。最普通的回答應該是「我准備在技術領域有所作為」或「我希望能按照公司的管理思路發展」。
7、你朋友對你的評價?
回答提示:想從側面了解一下你的性格及與人相處的問題。
回答樣本:「我的朋友都說我是一個可以信賴的人。因為,我一旦答應別人的事情,就一定會做到。如果我做不到,我就不會輕易許諾。
回答樣本:」我覺的我是一個比較隨和的人,與不同的人都可以友好相處。在我與人相處時,我總是能站在別人的角度考慮問題「
8、你還有什麼問題要問嗎?
回答提示:企業的這個問題看上去可有可無,其實很關鍵,企業不喜歡說「沒有問題」的人,因為其很注重員工的個性和創新能力。企業不喜歡求職者問個人福利之類的問題,如果有人這樣問:貴公司對新入公司的員工有沒有什麼培訓項目,我可以參加嗎?或者說貴公司的晉升機制是什麼樣的?企業將很歡迎,因為體現出你對學習的熱情和對公司的忠誠度以及你的上進心。
9、如果通過這次面試我們單位錄用了你,但工作一段時間卻發現你根本不適合這個職位,你怎麼辦?
回答提示:一段時間發現工作不適合我,有兩種情況:
(1)如果你確實熱愛這個職業,那你就要不斷學習,虛心向領導和同事學習業務知識和處事經驗,了解這個職業的精神內涵和職業要求,力爭減少差距;
(2)你覺得這個職業可有可無,那還是趁早換個職業,去發現適合你的,你熱愛的職業,那樣你的發展前途也會大點,對單位和個人都有好處。
10、在完成某項工作時,你認為領導要求的方式不是最好的,自己還有更好的方法,你應該怎麼做?
回答提示:
①原則上我會尊重和服從領導的工作安排;同時私底下找機會以請教的口吻,婉轉地表達自己的想法,看看領導是否能改變想法;
②如果領導沒有採納我的建議,我也同樣會按領導的要求認真地去完成這項工作;
③還有一種情況,假如領導要求的方式違背原則,我會堅決提出反對意見;如領導仍固執己見,我會毫不猶豫地再向上級領導反映。
11、如果你的工作出現失誤,給本公司造成經濟損失,你認為該怎麼辦?
回答提示:
①我本意是為公司努力工作,如果造成經濟損失,我認為首要的問題是想方設法去彌補或挽回經濟損失。如果我無能力負責,希望單位幫助解決;
②是責任問題。分清責任,各負其責,如果是我的責任,我甘願受罰;如果是一個我負責的團隊中別人的失誤,也不能幸災樂禍,作為一個團隊,需要互相提攜共同完成工作,安慰同事並且幫助同事查找原因總結經驗。更多精彩熱文歡迎關注公眾號創業中國。
③總結經驗教訓,一個人的一生不可能不犯錯誤,重要的是能從自己的或者是別人的錯誤中吸取經驗教訓,並在今後的工作中避免發生同類的錯誤。檢討自己的工作方法、分析問題的深度和力度是否不夠,以致出現了本可以避免的錯誤。
12、如果你在這次考試中沒有被錄用,你怎麼打算?
回答提示:現在的社會是一個競爭的社會,從這次面試中也可看出這一點,有競爭就必然有優劣,有成功必定就會有失敗.往往成功的背後有許多的困難和挫折,如果這次失敗了也僅僅是一次而已,只有經過經驗經歷的積累才能塑造出一個完全的成功者。我會從以下幾個方面來正確看待這次失敗.
第一、要敢於面對,面對這次失敗不氣餒,接受已經失去了這次機會就不會回頭這個現實,從心理意志和精神上體現出對這次失敗的抵抗力。要有自信,相信自己經歷了這次之後經過努力一定能行.能夠超越自我.
第二、善於反思,對於這次面試經驗要認真總結,思考剖析,能夠從自身的角度找差距。正確對待自己,實事求是地評價自己,辯證的看待自己的長短得失,做一個明白人.
第三、走出陰影,要克服這一次失敗帶給自己的心理壓力,時刻牢記自己弱點,防患於未然,加強學習,提高自身素質.
第四、認真工作,回到原單位崗位上後,要實實在在、踏踏實實地工作,三十六行,行行出狀元,爭取在本崗位上做出一定的成績.
第五、再接再厲,成為軟體工程師或網路工程師一直是我的夢想,以後如果有機會我仍然後再次參加競爭.
13、如果你做的一項工作受到上級領導的表揚,但你主管領導卻說是他做的,你該怎樣?
回答提示:我首先不會找那位上級領導說明這件事,我會主動找我的主管領導來溝通,因為溝通是解決人際關系的最好辦法,但結果會有兩種:1.我的主管領導認識到自己的錯誤,我想我會視具體情況決定是否原諒他;2.他更加變本加厲的來威脅我,那我會毫不猶豫地找我的上級領導反映此事,因為他這樣做會造成負面影響,對今後的工作不利。
14、談談你對跳槽的看法?
回答提示:
(1)正常的"跳槽"能促進人才合理流動,應該支持;
(2)頻繁的跳槽對單位和個人雙方都不利,應該反對。
15、工作中你難以和同事、上司相處,你該怎麼辦?
回答提示:
①我會服從領導的指揮,配合同事的工作。
②我會從自身找原因,仔細分析是不是自己工作做得不好讓領導不滿意,同事看不慣。還要看看是不是為人處世方面做得不好。如果是這樣的話我會努力改正。
③如果我找不到原因,我會找機會跟他們溝通,請他們指出我的不足。有問題就及時改正。
④作為優秀的員工,應該時刻以大局為重,即使在一段時間內,領導和同事對我不理解,我也會做好本職工作,虛心向他們學習,我相信,他們會看見我在努力,總有一天會對我微笑的!
16、假設你在某單位工作,成績比較突出,得到領導的肯定。但同時你發現同事們越來越孤立你,你怎麼看這個問題?你准備怎麼辦?
回答提示:
①成績比較突出,得到領導的肯定是件好事情,以後更加努力
②檢討一下自己是不是對工作的熱心度超過同事間交往的熱心了,加強同事間的交往及共同的興趣愛好。
③工作中,切勿傷害別人的自尊心
④不再領導前撥弄是非
⑤樂於助人對面
17、你最近是否參加了培訓課程?談談培訓課程的內容。是公司資助還是自費參加?
回答提示:是自費參加,就是xx的培訓課程(可以多談談自己學的技術)。
18、你對於我們公司了解多少?
回答提示:在去公司面試前上網查一下該公司主營業務。如回答:貴公司有意改變策略,加強與國外大廠的OEM合作,自有品牌的部分則透過海外經銷商。
19、請說出你選擇這份工作的動機?
回答提示:這是想知道面試者對這份工作的熱忱及理解度,並篩選因一時興起而來應試的人,如果是無經驗者,可以強調「就算職種不同,也希望有機會發揮之前的經驗」。
20、你最擅長的技術方向是什麼?
回答提示:說和你要應聘的職位相關的課程,表現一下自己的熱誠沒有什麼壞處。
21、你能為我們公司帶來什麼呢?
回答提示:
①假如你可以的話,試著告訴他們你可以減低他們的費用——「我已經接受過近兩年專業的培訓,立刻就可以上崗工作」。
② 企業很想知道未來的員工能為企業做什麼,求職者應再次重復自己的優勢,然後說:「就我的能力,我可以做一個優秀的員工在組織中發揮能力,給組織帶來高效率和更多的收益」。企業喜歡求職者就申請的職位表明自己的能力,比如申請營銷之類的職位,可以說:「我可以開發大量的新客戶,同時,對老客戶做更全面周到的服務,開發老客戶的新需求和消費。」等等。
22、最能概括你自己的三個詞是什麼?
回答提示:
我經常用的三個詞是:適應能力強,有責任心和做事有始終,結合具體例子向主考官解釋,
23、你的業余愛好是什麼?
回答提示:找一些富於團體合作精神的,這里有一個真實的故事:有人被否決掉,因為他的愛好是深海潛水。主考官說:因為這是一項單人活動,我不敢肯定他能否適應團體工作。
24、作為被面試者給我打一下分。
回答提示:試著列出四個優點和一個非常非常非常小的缺點,(可以抱怨一下設施,沒有明確責任人的缺點是不會有人介意的)。
25、你怎麼理解你應聘的職位?
回答提示:把崗位職責和任務及工作態度闡述一下
26、喜歡這份工作的哪一點?
回答提示:
每個人的價值觀不同,自然評斷的標准也會不同,但是,在回答面試官這個問題時可不能太直接就把自己心理的話說出來,尤其是薪資方面的問題,不過一些無傷大雅的回答是不錯的考慮,如交通方便,工作性質及內容頗能符合自己的興趣等等都是不錯的答案,不過如果這時自己能仔細思考出這份工作的與眾不同之處,相信在面試上會大大加分。
27、為什麼要離職?
回答提示:
①回答這個問題時一定要小心,就算在前一個工作受到再大的委屈,對公司有多少的怨言,都千萬不要表現出來,尤其要避免對公司本身主管的批評,避免面試官的負面情緒及印象;建議此時最好的回答方式是將問題歸咎在自己身上,例如覺得工作沒有學習發展的空間,自己想在面試工作的相關產業中多加學習,或是前一份工作與自己的生涯規劃不合等等,回答的答案最好是積極正面的。
②我希望能獲得一份更好的工作,如果機會來臨,我會抓住;我覺得目前的工作,已經達到頂峰,即沒有升遷機會。
28、說說你對行業、技術發展趨勢的看法?
回答提示:企業對這個問題很感興趣,只有有備而來的求職者能夠過關.求職者可以直接在網上查找對你所申請的行業部門的信息,只有深入了解才能產生獨特的見解。企業認為最聰明的求職者是對所面試的公司預先了解很多,包括公司各個部門,發展情況,在面試回答問題的時候可以提到所了解的情況,企業歡迎進入企業的人是「知己」,而不是「盲人」。
29、對工作的期望與目標何在?
回答提示:
這是面試者用來評斷求職者是否對自己有一定程度的期望、對這份工作是否了解的問題。對於工作有確實學習目標的人通常學習較快,對於新工作自然較容易進入狀況,這時建議你,最好針對工作的性質找出一個確實的答案,如業務員的工作可以這樣回答:「我的目標是能成為一個超級業務員,將公司的產品廣泛的推銷出去,達到最好的業績成效;為了達到這個目標,我一定會努力學習,而我相信以我認真負責的態度,一定可以達到這個目標.」其他類的工作也可以比照這個方式來回答,只要在目標方面稍微修改一下就可以了。
30、說說你的家庭。
回答提示:
企業面試時詢問家庭問題不是非要知道求職者家庭的情況,探究隱私,企業不喜歡探究個人隱私,而是要了解家庭背景對求職者的塑造和影響.企業希望聽到的重點也在於家庭對求職者的積極影響.企業最喜歡聽到的是:我很愛我的家庭!我的家庭一向很和睦,雖然我的父親和母親都是普通人,但是從小,我就看到我父親起早貪黑,每天工作特別勤勞,他的行動無形中培養了我認真負責的態度和勤勞的精神.我母親為人善良,對人熱情,特別樂於助人,所以在單位人緣很好,她的一言一行也一直在教導我做人的道理.企業相信,和睦的家庭關系對一個人的成長有潛移默化的影響。
31、就你申請的這個職位,你認為你還欠缺什麼?
回答提示:企業喜歡問求職者弱點,但精明的求職者一般不直接回答.他們希望看到這樣的求職者:繼續重復自己的優勢,然後說:「對於這個職位和我的能力來說,我相信自己是可以勝任的,只是缺乏經驗,這個問題我想我可以進入公司以後以最短的時間來解決,我的學習能力很強,我相信可以很快融入公司的企業文化,進入工作狀態.」企業喜歡能夠巧妙地躲過難題的求職者。
32、你欣賞哪種性格的人?
回答提示:
誠實、不死板而且容易相處的人、有"實際行動"的人。
33、你通常如何處理別人的批評?
回答提示:
①沈默是金.不必說什麼,否則情況更糟,不過我會接受建設性的批評;②我會等大家冷靜下來再討論。
34、你怎樣對待自己的失敗?
回答提示:我們大家生來都不是十全十美的,我相信我有第二個機會改正我的錯誤。
35、什麼會讓你有成就感?
回答提示:為貴公司竭力效勞;盡我所能,完成一個項目
36、眼下你生活中最重要的是什麼?
回答提示:對我來說,能在這個領域找到工作是最重要的;望能在貴公司任職對我說最重要。
37、你為什麼願意到我們公司來工作?
回答提示:
對於這個問題,你要格外小心,如果你已經對該單位作了研究,你可以回答一些詳細的原因,像「公司本身的高技術開發環境很吸引我.」,「我同公司出生在同樣的時代,我希望能夠進入一家與我共同成長的公司.」「你們公司一直都穩定發展,在近幾年來在市場上很有競爭力.」或者「我認為貴公司能夠給我提供一個與眾不同的發展道路。」這都顯示出你已經做了一些調查,也說明你對自己的未來有了較為具體的遠景規劃。
38、你和別人發生過爭執嗎?你是怎樣解決的?
回答提示:
這是面試中最險惡的問題.其實是考官布下的一個陷阱.千萬不要說任何人的過錯.應知成功解決矛盾是一個協作團體中成員所必備的能力.假如你工作在一個服務行業,這個問題簡直成了最重要的一個環節.你是否能獲得這份工作,將取決於這個問題的回答.考官希望看到你是成熟且樂於奉獻的.他們通過這個問題了解你的成熟度和處世能力.在沒有外界干涉的情況下,通過妥協的方式來解決才是正確答案.
39、問題:你做過的哪件事最令自己感到驕傲?
回答提示:
這是考官給你的一個機會,讓你展示自己把握命運的能力.這會體現你潛在的領導能力以及你被提升的可能性.假如你應聘於一個服務性質的單位,你很可能會被邀請去午餐.記住:你的前途取決於你的知識、你的社交能力和綜合表現.
40、你新到一個部門,一天一個客戶來找你解決問題,你努力想讓他滿意,可是始終達不到群眾得滿意,他投訴你們部門工作效率低,你這個時候怎麼作?
回答提示:
(1)首先,我會保持冷靜.作為一名工作人員,在工作中遇到各種各樣的問題是正常的,關鍵是如何認識它,積極應對,妥善處理.
(2)其次,我會反思一下客戶不滿意的原因.一是看是否是自己在解決問題上的確有考慮的不周到的地方,二是看是否是客戶不太了解相關的服務規定而提出超出規定的要求,三是看是否是客戶了解相關的規定,但是提出的要求不合理.
(3)再次,根據原因採取相對的對策.如果是自己確有不周到的地方,按照服務規定作出合理的安排,並向客戶作出解釋;如果是客戶不太了解政策規定而造成的誤解,我會向他作出進一步的解釋,消除他的誤會;如果是客戶提出的要求不符合政策規定,我會明確地向他指出.
(4)再次,我會把整個事情的處理情況向領導作出說明,希望得到他的理解和支持.
(5)我不會因為客戶投訴了我而喪失工作的熱情和積極性,而會一如既往地牢記為客戶服務的宗旨,爭取早日做一名領導信任、公司放心、客戶滿意的職員.
⑵ 老馬6電腦檢測發動機電腦和ABS電腦連接不上
1.用汽車電腦檢測儀將原來的ABS泵電腦編號讀出來,並記住。2.拆下原來的ABS泵,更換上新的ABS泵。3.用汽車電腦檢測儀,進入防抱死剎車系統(ABS系統),進入編程程序,輸入原來的ABS泵電腦編號,儲存,確定,就可以了。
⑶ 試編程:求一個數的絕對值。列如輸入-5,則輸出5。第1題怎麼寫
作者 | 沉默王二
來源 | CSDN博客
頭圖 | 付費下載自視覺中國
出品 | CSDN(ID:CSDNnews)
想學習,永遠都不晚,尤其是針對 java 8 裡面的好東西,Optional 就是其中之一,該類提供了一種用於表示可選值而非空引用的類級別解決方案。作為一名 Java 程序員,我真的是煩透了 NullPointerException(NPE),盡管和它熟得就像一位老朋友,知道它也是迫不得已——程序正在使用一個對象卻發現這個對象的值為 null,於是 Java 虛擬機就怒發沖冠地把它拋了出來當做替罪羊。
當然了,我們程序員是富有責任心的,不會坐視不管,於是就有了大量的 null 值檢查。盡管有時候這種檢查完全沒有必要,但我們已經習慣了例行公事。終於,Java 8 看不下去了,就引入了 Optional,以便我們編寫的代碼不再那麼刻薄呆板。
沒有 Optional 會有什麼問題
我們來模擬一個實際的應用場景。小王第一天上班,領導老馬就給他安排了一個任務,要他從資料庫中根據會員 ID 拉取一個會員的姓名,然後將姓名列印到控制台。雖然是新來的,但這個任務難不倒小王,於是他花了 10 分鍾寫下了這段代碼:
1public class WithoutOptionalDemo {
2 class Member {
3 private String name;
4
5 public String getName() {
6 return name;
7 }
8
9 public void setName(String name) {
10 this.name = name;
11 }
12 }
13
14 public static void main(String[] args) {
15 Member mem = getMemberByIdFromDB();
16 if (mem != null) {
17 System.out.println(mem.getName());
18 }
19 }
20
21 public static Member getMemberByIdFromDB() {
22 // 當前 ID 的會員不存在
23 return null;
24 }
25}
由於當前 ID 的會員不存在,所以 getMemberByIdFromDB() 方法返回了 null 來作為沒有獲取到該會員的結果,那就意味著在列印會員姓名的時候要先對 mem 判空,否則就會拋出 NPE 異常,不信?讓小王把 if (mem != null) 去掉試試,控制台立馬列印錯誤堆棧給你顏色看看。
1Exception in thread "main" java.lang.NullPointerException
2 at com.cmower.dzone.optional.WithoutOptionalDemo.main(WithoutOptionalDemo.java:24)
Optional 是如何解決這個問題的
小王把代碼提交後,就興高采烈地去找老馬要新的任務了。本著虛心學習的態度,小王請求老馬看一下自己的代碼,於是老王就告訴他應該嘗試一下 Optional,可以避免沒有必要的 null 值檢查。現在,讓我們來看看小王是如何通過 Optional 來解決上述問題的。
1public class OptionalDemo {
2 public static void main(String[] args) {
3 Optional optional = getMemberByIdFromDB();
4 optional.ifPresent(mem -> {
5 System.out.println("會員姓名是:" + mem.getName());
6 });
7 }
8
9 public static Optional getMemberByIdFromDB() {
10 boolean hasName = true;
11 if (hasName) {
12 return Optional.of(new Member("沉默王二"));
13 }
14 return Optional.empty();
15 }
16}
17class Member {
18 private String name;
19
20 public String getName() {
21 return name;
22 }
23
24 // getter / setter
25}
getMemberByIdFromDB() 方法返回了 Optional 作為結果,這樣就表明 Member 可能存在,也可能不存在,這時候就可以在 Optional 的 ifPresent() 方法中使用 Lambda 表達式來直接列印結果。
Optional 之所以可以解決 NPE 的問題,是因為它明確的告訴我們,不需要對它進行判空。它就好像十字路口的路標,明確地告訴你該往哪走。
創建 Optional 對象
1)可以使用靜態方法 empty() 創建一個空的 Optional 對象
1Optional empty = Optional.empty();
2System.out.println(empty); // 輸出:Optional.empty
2)可以使用靜態方法 of() 創建一個非空的 Optional 對象
1Optional opt = Optional.of("沉默王二");
2System.out.println(opt); // 輸出:Optional[沉默王二]
當然了,傳遞給 of() 方法的參數必須是非空的,也就是說不能為 null,否則仍然會拋出 NullPointerException。
1String name = null;
2Optional optnull = Optional.of(name);
3)可以使用靜態方法 ofNullable() 創建一個即可空又可非空的 Optional 對象
1String name = null;
2Optional optOrNull = Optional.ofNullable(name);
3System.out.println(optOrNull); // 輸出:Optional.empty
ofNullable() 方法內部有一個三元表達式,如果為參數為 null,則返回私有常量 EMPTY;否則使用 new 關鍵字創建了一個新的 Optional 對象——不會再拋出 NPE 異常了。
判斷值是否存在
可以通過方法 isPresent() 判斷一個 Optional 對象是否存在,如果存在,該方法返回 true,否則返回 false——取代了 obj != null 的判斷。
1Optional opt = Optional.of("沉默王二");
2System.out.println(opt.isPresent()); // 輸出:true
3
4Optional optOrNull = Optional.ofNullable(null);
5System.out.println(opt.isPresent()); // 輸出:false
Java 11 後還可以通過方法 isEmpty() 判斷與 isPresent() 相反的結果。
1Optional opt = Optional.of("沉默王二");
2System.out.println(opt.isPresent()); // 輸出:false
3
4Optional optOrNull = Optional.ofNullable(null);
5System.out.println(opt.isPresent()); // 輸出:true
非空表達式
Optional 類有一個非常現代化的方法——ifPresent(),允許我們使用函數式編程的方式執行一些代碼,因此,我把它稱為非空表達式。如果沒有該方法的話,我們通常需要先通過 isPresent() 方法對 Optional 對象進行判空後再執行相應的代碼:
1Optional optOrNull = Optional.ofNullable(null);
2if (optOrNull.isPresent()) {
3 System.out.println(optOrNull.get().length());
4}
有了 ifPresent() 之後,情況就完全不同了,可以直接將 Lambda 表達式傳遞給該方法,代碼更加簡潔,更加直觀。
1Optional opt = Optional.of("沉默王二");
2opt.ifPresent(str -> System.out.println(str.length()));
Java 9 後還可以通過方法 ifPresentOrElse(action, emptyAction) 執行兩種結果,非空時執行 action,空時執行 emptyAction。
1Optional opt = Optional.of("沉默王二");
2opt.ifPresentOrElse(str -> System.out.println(str.length()), () -> System.out.println("為空"));
設置(獲取)默認值
有時候,我們在創建(獲取) Optional 對象的時候,需要一個默認值,orElse() 和 orElseGet() 方法就派上用場了。
orElse() 方法用於返回包裹在 Optional 對象中的值,如果該值不為 null,則返回;否則返回默認值。該方法的參數類型和值得類型一致。
1String nullName = null;
2String name = Optional.ofNullable(nullName).orElse("沉默王二");
3System.out.println(name); // 輸出:沉默王二
orElseGet() 方法與 orElse() 方法類似,但參數類型不同。如果 Optional 對象中的值為 null,則執行參數中的函數。
1String nullName = null;
2String name = Optional.ofNullable(nullName).orElseGet(()->"沉默王二");
3System.out.println(name); // 輸出:沉默王二
從輸出結果以及代碼的形式上來看,這兩個方法極其相似,這不免引起我們的懷疑,Java 類庫的設計者有必要這樣做嗎?
假設現在有這樣一個獲取默認值的方法,很傳統的方式。
1public static String getDefaultValue() {
2 System.out.println("getDefaultValue");
3 return "沉默王二";
4}
然後,通過 orElse() 方法和 orElseGet() 方法分別調用 getDefaultValue() 方法返回默認值。
1public static void main(String[] args) {
2 String name = null;
3 System.out.println("orElse");
4 String name2 = Optional.ofNullable(name).orElse(getDefaultValue());
5
6 System.out.println("orElseGet");
7 String name3 = Optional.ofNullable(name).orElseGet(OrElseOptionalDemo::getDefaultValue);
8}
註:類名 :: 方法名是 Java 8 引入的語法,方法名後面是沒有 () 的,表明該方法並不一定會被調用。
輸出結果如下所示:
1orElse
2getDefaultValue
3
4orElseGet
5getDefaultValue
輸出結果是相似的,沒什麼太大的不同,這是在 Optional 對象的值為 null 的情況下。假如 Optional 對象的值不為 null 呢?
1public static void main(String[] args) {
2 String name = "沉默王三";
3 System.out.println("orElse");
4 String name2 = Optional.ofNullable(name).orElse(getDefaultValue());
5
6 System.out.println("orElseGet");
7 String name3 = Optional.ofNullable(name).orElseGet(OrElseOptionalDemo::getDefaultValue);
8}
輸出結果如下所示:
1orElse
2getDefaultValue
3orElseGet
咦,orElseGet() 沒有去調用 getDefaultValue()。哪個方法的性能更佳,你明白了吧?
獲取值
直觀從語義上來看,get() 方法才是最正宗的獲取 Optional 對象值的方法,但很遺憾,該方法是有缺陷的,因為假如 Optional 對象的值為 null,該方法會拋出 NoSuchElementException 異常。這完全與我們使用 Optional 類的初衷相悖。
1public class GetOptionalDemo {
2 public static void main(String[] args) {
3 String name = null;
4 Optional optOrNull = Optional.ofNullable(name);
5 System.out.println(optOrNull.get());
6 }
7}
這段程序在運行時會拋出異常:
1Exception in thread "main" java.util.NoSuchElementException: No value present
2 at java.base/java.util.Optional.get(Optional.java:141)
3 at com.cmower.dzone.optional.GetOptionalDemo.main(GetOptionalDemo.java:9)
盡管拋出的異常是 NoSuchElementException 而不是 NPE,但在我們看來,顯然是在「五十步笑百步」。建議 orElseGet() 方法獲取 Optional 對象的值。
過濾值
小王通過 Optional 類對之前的代碼進行了升級,完成後又興高采烈地跑去找老馬要任務了。老馬覺得這小夥子不錯,頭腦靈活,又幹活積極,很值得培養,就又交給了小王一個新的任務:用戶注冊時對密碼的長度進行檢查。
小王拿到任務後,樂開了花,因為他剛要學習 Optional 類的 filter() 方法,這就派上了用場。
1public class FilterOptionalDemo {
2 public static void main(String[] args) {
3 String password = "12345";
4 Optional opt = Optional.ofNullable(password);
5 System.out.println(opt.filter(pwd -> pwd.length() > 6).isPresent());
6 }
7}
filter() 方法的參數類型為 Predicate(Java 8 新增的一個函數式介面),也就是說可以將一個 Lambda 表達式傳遞給該方法作為條件,如果表達式的結果為 false,則返回一個 EMPTY 的 Optional 對象,否則返回過濾後的 Optional 對象。
在上例中,由於 password 的長度為 5 ,所以程序輸出的結果為 false。假設密碼的長度要求在 6 到 10 位之間,那麼還可以再追加一個條件。來看小王增加難度後的代碼。
1Predicate len6 = pwd -> pwd.length() > 6;
2Predicate len10 = pwd -> pwd.length() < 10;
3
4password = "1234567";
5opt = Optional.ofNullable(password);
6boolean result = opt.filter(len6.and(len10)).isPresent();
7System.out.println(result);
這次程序輸出的結果為 true,因為密碼變成了 7 位,在 6 到 10 位之間。想像一下,假如小王使用 if-else 來完成這個任務,代碼該有多冗長。
轉換值
小王檢查完了密碼的長度,仍然覺得不夠盡興,覺得要對密碼的強度也進行檢查,比如說密碼不能是「password」,這樣的密碼太弱了。於是他又開始研究起了 map() 方法,該方法可以按照一定的規則將原有 Optional 對象轉換為一個新的 Optional 對象,原有的 Optional 對象不會更改。
先來看小王寫的一個簡單的例子:
1public class OptionalMapDemo {
2 public static void main(String[] args) {
3 String name = "沉默王二";
4 Optional nameOptional = Optional.of(name);
5 Optional intOpt = nameOptional
6 .map(String::length);
7
8 System.out.println( intOpt.orElse(0));
9 }
10}
在上面這個例子中,map() 方法的參數 String::length,意味著要 將原有的字元串類型的 Optional 按照字元串長度重新生成一個新的 Optional 對象,類型為 Integer。
搞清楚了 map() 方法的基本用法後,小王決定把 map() 方法與 filter() 方法結合起來用,前者用於將密碼轉化為小寫,後者用於判斷長度以及是否是「password」。
1public class OptionalMapFilterDemo {
2 public static void main(String[] args) {
3 String password = "password";
4 Optional opt = Optional.ofNullable(password);
5
6 Predicate len6 = pwd -> pwd.length() > 6;
7 Predicate len10 = pwd -> pwd.length() < 10;
8 Predicate eq = pwd -> pwd.equals("password");
9
10 boolean result = opt.map(String::toLowerCase).filter(len6.and(len10 ).and(eq)).isPresent();
11 System.out.println(result);
12 }
13}
好了,我親愛的讀者朋友,以上就是本文的全部內容了——可以說是史上最佳 Optional 指南了,能看到這里的都是最優秀的程序員,二哥必須要伸出大拇指為你點個贊。
https://blog.csdn.net/qing_gee/article/details/104767082
⑷ 南方有什麼風俗
南方風俗有祭灶神、貼對聯、年夜飯、辦年貨、掃塵。
1、祭灶神
南方農歷十二月廿四日祭灶。民間祭灶,源於古人拜火習俗。《釋名》:「灶。造也,創食物也。」灶神的職責就是執掌灶火,管理飲食,後來擴大為考察人間善惡,以降福禍。祭灶在中國民間有幾千年歷史了,灶神信仰是中國百姓對「衣食有餘」夢想追求的反映。
以上內容參考網路—貼對聯、網路—祭灶神、網路—年夜飯、網路—新春辦年貨、網路—掃塵
⑸ 老馬6機械鑰匙能否改裝卡片鑰匙怎麼改
老馬6機械鑰匙能改裝卡片鑰匙,改裝方法:將車鑰匙里的晶元拆下來安裝到卡片上重新編程即可。卡片鑰匙是一種通過發射紅外線信號來打開一個或兩個車門、行李箱和油箱蓋,也可以操控汽車的車窗和天窗的鑰匙。
⑹ 搞笑相聲劇本(雙人)
吹牛世家
甲:我們家是吹牛世家!
乙:我們家還是吹牛專業戶呢!
甲:我們家吹牛不納稅。
乙:我們家吹牛還不交錢呢!
甲:不是吹,我一出生就會.上廁所。
乙:爬著去?
甲:誰剛生下來就會爬呀?
Z:那怎麼去?
甲:床就當廁所了唄!
乙:這叫尿床!
甲:我三個月就會跑。
乙:那準是個怪胎~
甲:三個月我媽就上班了,我只好奶奶家/姥姥家兩頭跑。
乙:就這么跑呀!
《吹牛世家》內容簡介
相聲藝術源於華北,流行於京津冀,普及於全國及海內外,始於明清,盛於當代。主要採用口頭方式表演。主要道具有摺扇、手絹、醒木。表演形式有單口相聲、對口相聲、群口相聲等,是紮根於民間、源於生活、又深受群眾歡迎的曲藝表演藝術形式。
《吹牛世家》講述了相聲藝術,源遠流長,歷史悠久,是中華民族傳統藝術寶庫中的瑰寶,正是精心編演的中央人民廣播電台保留的所有珍貴錄音,凝聚了幾代相聲作者、演員、編輯的智慧和汗水;
本系列襄括廣播興盛時期相聲藝術的精華,把相聲藝術有聲有色、原汁原葉的精品佳作盡收耳畔,又加以FLASH的形式播放,給人耳目一新的感覺,在聽的同時能看到畫面,享受更多的樂趣。
⑺ Java培訓最好的是哪家
隨著Java的普及,越來越多的人了解Java,企業也會對求職者提出更高的要求,他們想招聘一些能馬上開始工作的人,所以往往會招聘一些有項目開發經驗的人。這就是為什麼那麼多計算機專業的大學生找不到工作,所以越來越多的大學生會選擇在畢業前後參加一些專業的Java培訓課程,以增加他們的實踐經驗。只有增強自己的力量,才能立於不敗之地。
學習Java技術,最主要是與時俱進,掌握的技術點能夠滿足時下企業的用人需求。而想要了解一家培訓機構所提供的課程是否新穎,也可以去機構的官網上看看,了解自己想學習的學科的課程大綱。看看學習路線圖是如何安排的,有沒有從零到一的系統搭建,是不是有強化實訓、實操的比重,有盡量多的項目實戰。因為企業對Java從業者的技術能力和動手實戰能力要求較高。
如果你想了解更多關於Java培訓的消息,推薦你到AAA咨詢一下。AAA教育集團總部位於北京IT科技企業雲集的中關村,以中關村科技園區為依託,緊密結合軟體企業人才需求,自主研發了專業的人才培養課程體系。
⑻ 老馬三鑰匙損壞怎麼打火
可以打電話叫修車的來,將那個防盜鎖火線摘除了就好了,放倒就沒有了,鑰匙到時候換新的即可。
遙控器設定方法:關閉並鎖上所有車門。注意:要按中控開關鎖上車門。在10秒內插入並拔出點火鑰匙6次以上(不要打開點火),第6次保持在點火開關里,此時危險警告燈會閃爍2次。將點火開關轉到ON位置。按下遙控器的任意按鈕。此時危險警告燈會閃爍2次,表明遙控器設定成功。如果要設定其他遙控器,按側車門中控鎖開關,開/關各一次,然後按下一個遙控器的任意按鍵,此時危險警告燈會閃爍2次,表明設定成功。重復步驟5,最多可設定4個遙控器。打開駕駛側車門,結束編程。