面试官: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是规约操作,底层调用reduce方法。
面试官:Stream并行处理优势? 我:使用Fork/Join框架,将任务拆解并行计算,减少等待时间。
面试官:Stream并行流性能? 我:考虑CPU核数,CPU性能好时,使用并行处理性能提高明显。
面试官:Stream api与普通迭代性能? 我:简单处理操作性能不如普通迭代,但CPU性能好时并行处理性能提高明显,复杂处理操作Stream api有明显优势。
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。