㈠ 阿里二面: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高级工程师,都需要掌握哪些技术?