㈠ 阿里二面:java8的stream api是迭代一次還是迭代多次
面試官:java8新增的stream api用過嗎? 我:這個必須用過。
面試官:找出以字元'a'開頭的字元串最大長度,使用stream api怎麼實現? 我:用下面方法實現:
面試官:這個操作是迭代一次還是迭代多次? 我:是迭代一次,stream api的效率問題。
面試官:有狀態的操作和無狀態的操作怎麼區分? 我:無狀態操作方法包括filter、map等,有狀態操作例如sort和distinct等。
面試官:有狀態操作例子? 我:原始數組兩次迭代,先乘以10,再排序,後乘以10。
面試官:了解Stream底層原理嗎? 我:Stream類圖展示。
面試官:操作疊加怎麼實現? 我:使用Sink介面,map方法封裝。
面試官:詳細講講Sink? 我:提供四個方法,begin、accept、end、cancellationRequested。
面試官:區分短路操作和非短路操作? 我:非短路操作處理所有元素,短路操作部分元素就可結束。
面試官:Stream操作總結? 我:所有Pipeline節點的Sink串聯成鏈表。
面試官:返回結果的保存位置? 我:分三種情況,max和min是規約操作,底層調用rece方法。
面試官:Stream並行處理優勢? 我:使用Fork/Join框架,將任務拆解並行計算,減少等待時間。
面試官:Stream並行流性能? 我:考慮CPU核數,CPU性能好時,使用並行處理性能提高明顯。
面試官:Stream api與普通迭代性能? 我:簡單處理操作性能不如普通迭代,但CPU性能好時並行處理性能提高明顯,復雜處理操作Stream api有明顯優勢。
㈡ 阿里巴巴資深java工程師什麼水平
大家都知道,阿里高級技術專家,基本上是一線技術人能達到的最高職級,也是很多程序員追求的目標。
達到年入百萬的P8 Java高級架構師級別,不僅要具備優秀的編程能力和系統設計能力,在技術視野和業務洞察力方面,也要有很深的積淀。
經過我半年多的整理,今天剛好有此機會,我整理了一份架構圖譜,主要是針對2-5年左右的Java開發程序員提升的,不管是傳統行業還是互聯網行業,掌握這些技術基本都能拿到一個不錯的薪資,希望對大家有所幫助。
原文:阿里P8 Java高級工程師,都需要掌握哪些技術?