• View 的绘制流程

    虽然都说“面试造火箭,上班拧螺丝”,但是多看看源码和实现原理总归是好的。View 作为 Android 的基石之一,其绘制流程是非常重要的。小弟不才,在这里记录一下我对 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!

    欢迎来到我的博客,我会在这里展示一些我的生活和工作。