联系我们:有道技术团队助手:ydtech01 / 邮箱:ydtech@rd.netease.com
前言
本文属于系列文章《你真的了解二叉树吗》的第二部分——手撕算法篇。
如果你还没有看过第一部分《你真的了解二叉树吗(树形结构基础篇)》的话,强烈建议先看一下第一部分的内容,这样你在解题时会更加如虎添翼。很多第一篇里面已经讲过的内容,在这里将不再赘述。
联系我们:有道技术团队助手:ydtech01 / 邮箱:ydtech@rd.netease.com
本文属于系列文章《你真的了解二叉树吗》的第二部分——手撕算法篇。
如果你还没有看过第一部分《你真的了解二叉树吗(树形结构基础篇)》的话,强烈建议先看一下第一部分的内容,这样你在解题时会更加如虎添翼。很多第一篇里面已经讲过的内容,在这里将不再赘述。
联系我们:有道技术团队助手:ydtech01 / 邮箱:ydtech@rd.netease.com
树形结构,尤其是二叉树,在我们平时开发过程中使用频率比较高,但之前对于树形结构没有一个比较系统全面的了解和认知,所以借此机会梳理一下。
本文属于《你真的了解二叉树吗》系列文章之一,主要介绍的是树形结构的基础,在看完这篇文章之后,如果想要更加熟练掌握二叉树的话,可以看另一篇《你真的了解二叉树吗(手撕算法篇)》(下周发布)。
联系我们:有道技术团队助手:ydtech01 / 邮箱:ydtech@rd.netease.com 欢迎应届生同学们
来到2022年校招运动会
现在迎面向你们走来的
是网易有道代表队!
(传送门:http://hr.youdao.com/ )
他们食堂好吃
他们从不内卷
今天,他们还带来了
10道笔试编程题
据说全做对的同学
都顺利地拿到了 offer!
同学们,请开始你们的 ~~bug~~
啊不
表演吧!
联系我们: 有道技术团队助手:ydtech01 / 邮箱:ydtech@rd.netease.com
本文的重点在于如何定量的排查冷启动过程中的耗时操作,并提供对应的优化思路和实践方法总结。同时本文涉及到的冷启动优化主要涵盖两个方面:Application 的性能优化和 Launcher Activity 的性能优化。
中国大学 MOOC 是网易与高教社携手推出的在线教育平台,目前,经过长期的产品打磨和专研,在课程数量、质量以及影响力,中国大学 MOOC 已成为全球领先的中文慕课平台。同时经过此次优化,冷启动速度整体提升27%。
在我们日常开发中,随着 app 整体迭代次数增多,由于长久以来的迭代需求,android app 本身也集成了较多的第三方组件和 SDK,同时在日常迭代中,也是以业务迭代需求实现为主要目的,导致现在 app 本身,或多或少存在一些性能可优化空间。所以有必要进行性能优化,提升用户体验
此次优化,主要侧重于两个方面:
该文档重点不在于代码规范和业务代码逻辑导致的性能问题,而是在假设代码无明显、严重性能漏洞,并且不改变原有业务逻辑,量化性能监测数据和问题,并针对其进行优化修改。
本系列文章共2篇。在上一篇《原理篇》中,我们看到了异步非阻塞模型,它能够有效降低线程IO状态的耗时,提升资源利用率和系统吞吐量。异步API可以表现为listener或Promise形式;其中Promise API提供了更强的灵活性,支持同步返回和异步回调,也允许注册任意数目的回调。
在本文《应用篇》中,我们将进一步探索异步模式和Promise的应用:
第2章:Promise与线程池。 在异步执行耗时请求时,ExecutorService+Future是一个备选方案;但是相比于Future,Promise支持纯异步获取响应数据,能够消除更多阻塞。
第3章:异常处理。 Java程序并不总能成功执行请求,有时会遇到网络问题等不可抗力。对于无法避免的异常情况,异步API必须提供异常处理机制,以提升程序的容错性。
第4章:请求调度。 Java程序有时需要提交多条请求,这些请求之间可能存在一定的关联关系,包括顺序执行、并行执行、批量执行。异步API需要对这些约束提供支持。
本文不限定Promise的具体实现,读者在生产环境可以选择一个Promise工具类(如netty DefaultPromise[A]、jdk CompletableFuture[B]等);此外,由于Promise的原理并不复杂,读者也可以自行实现所需功能。
本系列文章共2篇,对 Java 语言的异步非阻塞模式进行科普。《原理篇》讲解异步非阻塞模型的原理,以及核心设计模式“Promise”的基本特性。《应用篇》会展示更加丰富的应用场景,介绍 Promise 的变体,如异常处理、调度策略等,并将 Promise 和现有工具进行对比。
限于个人水平和篇幅,本系列以科普为主,内容更偏重于原理、API 设计、应用实践,但是不会深入讲解并发优化的具体细节。