240 发简信
IP属地:山西
  • 2021-11-17 开发心得

    关于属性动画的注意事项: 使用属性动画的时候,实际上使用反射的方式调用方法(比如: sweep 属性,是反射调用了setSweep方法,所以需要...

  • 2021-11-11 开发心得

    一. 如何做阴影效果 2 关键步骤 阴影不支持硬件加速, 所以先关闭硬件加速 关键函数Paint#setShadowLayer(float ra...

  • JetPack的开篇

    在应用中引入Jetpack 在项目的build.gradle中添加google() Jetpack的迁移: Jetpack在androidx命名...

  • 排序

    常见的排序 时间复杂度O(n^2): 插入, 冒泡, 交换 时间复杂度O(n lgn): 快速, 希尔, 堆栈, 并归 关于快速排序 空间复杂度...

  • Kotlin的泛型

    泛型的概念 泛型是一种类型层面的抽象 泛型通过泛型参数实现构造更加通用的类型的能力 泛型可以让符合继承关系的类型批量实现某些能力 如上,我要两者...

  • HashCode为什么乘以31

    之所以使用31,是因为他是一个奇素数.1.如果是偶数,惩罚溢出的话,信息就会丢失,比如乘以2等价于位运算左移;2.习惯上使用素数来计算散列的结果...

  • TCP/IP 协议族

    是什么? Internet Protocol Suite: 一系列协议所组成的一个网络分层模型 TCP/IP 是应用层的协议TCP 传输层IP...

  • Kotlin的重新学习--06类型的进阶

    构造函数 Java 代码块 和Kt的init块的区别 Java 构造函数代码块无法访问构造函数的参数 Kt的init块可以返回构造函数参数 属性...

  • kotlin的重新学习--05高阶函数

    常见的高阶函数 斐波拉契计算时间 内联函数 关键字 inline高阶函数和内敛更配,因为高阶函数本质是一个类所以使用内敛函数,减少了类创建的开销...

个人介绍
熵在减: 逆水行舟, 不进则退
熵又增: 无可奈何花落去