虽然都说“面试造火箭,上班拧螺丝”,但是多看看源码和实现原理总归是好的。View 作为 Android 的基石之一,其绘制流程是非常重要的。小弟不才,在这里记录一下我对 View 绘制流程 的理解,未来等我理顺了可能还会写一篇事件分发机制的理解。本文会从基础的知识储备讲到各个绘制环节,文章包含的内容比较多,让我们开始吧!
-
View 的绘制流程
-
优先级队列 PriorityQueue
PriorityQueue 是一个基于堆实现的无界队列,其不接受
null
值,且不支持 non-comparable 对象。可以通过Comparator
或者Comparable
对存储对象进行排序实现小顶堆或者大顶堆,队列会根据储存情况自动扩容。本文会介绍一些 PriorityQueue 的方法以及通过一个算法题展示其用法。 -
关于 hashCode 与 equals
在
Java
中,重写equals()
必须要重写hashCode()
,那么为什么?简单来说,两个对象如果相等,则 hashCode 一定也是相同的。两个相等对象比较时,调用equals()
会返回true
。但是由于哈希冲突,两个有着相同 hashCode 的对象也不一定相等。因此,覆盖equals()
时也需要覆盖hashCode()
。 -
酒评-Monkey 47
- 「闻香」👃 | 强烈的薄荷和酒精感
- 「口感」👅 | 迷迭香,胡椒,带一点柑橘类水果,微微发甜,柔顺且厚重
- 「余韵」👄 | 辣,以及缺席许久的杜松子,一点点黄瓜
-
利用 LinkedHashMap 实现 LRU
面试时常会碰到面试官让你手撕一个 LRU,我们可以借用 Java 中 LinkedHashMap 的特性构建一个简易的 LRU。
-
Git 使用代理
多亏了伟大的防火墙,Git push 一直都不太稳定,如果出现
Failed to connect to github.com port 443: Timed out
超时报错,一般通过设置代理或者取消代理并再次 push 以尝试是否能绕过长城,具体操作如下: -
Resume
这里是我的简历,会随时间更新,感谢您花时间阅读我的简历,期待能够得到同您面谈/面试的机会。
-
Hello World!
欢迎来到我的博客,我会在这里展示一些我的生活和工作。