技术文章分享打卡~

爱立Flag的我打算现在开始,每天看一篇技术有关的文章。这个作为打卡和汇总贴~

数据结构

二叉树 2018/05/19
完全二叉树 2018/05/19
  • 除了第h层,其他各层的结点数都达到了最大个数,第h层所有的结点都连续集中在最左边。
  • 通常用数组来表示
二叉查找树(Binary-Search-Tree)、有序二叉树(order-binary-tree)
  • 查找、插入类似
  • 删除要看被删除的节点是否有子节点。
平衡二叉树(AVL树)
  • 左右子树的高度之差不超过1,一旦超过就进行旋转;彻底防止了
  • 2-3树

上面都忘记写时间了诶…不过不要紧吧.似乎之前打了很多但是保存失败了…sad

红黑树 2018/06/03

在之前的2-3查找树上的实现,稍微有点难掌握,或许可以具体写一下代码

Redis

《Redis教程》 2018/05/05

简单了解了Redis的数据类型和指令,内容不够详细,仅仅够稍微了解一下~

Redis底层原理 2018/05/06

简单的介绍了Redis中的字符串对象、哈希对象、列表、集合、有序集合五种数据类型的实现方式。

Redis持久化方式 2018/05/07

  • RDB方式:定期备份快照。
  • AOF方式:保存操作日志方式,Redis提供减少容量的rebuild
  • 两者结合使用
  • 容灾备份:
    • Amazon S3,以及其他类似S3服务。
    • 传送快照可以使用SCP来完成。

并发

《并发编程的优缺点》 2018/05/09

  • 协程:在单线程里实现多任务的调度,并在单线程里维持多个任务间的切换

  • 易混淆概念:

    • 并发和并行

      并发和并行是十分容易混淆的概念。并发指的是多个任务交替进行,而并行则是指真正意义上的“同时进行”。实际上,如果系统内只有一个CPU,而使用多线程时,那么真实系统环境下不能并行,只能通过切换时间片的方式交替进行,而成为并发执行任务。真正的并行也只能出现在拥有多个CPU的系统中。

Java内存模型以及Happens-before规则(JMM) 2018/05/10

  • JMM抽象结构模型
  • 重排序(编译器优化)
  • happens-before规则
    1. JMM对程序员的承诺
    2. JMM对编译器和处理器重排序的约束原则
    3. 具体规则:
      1. 程序顺序规则
      2. 监视器锁规则
      3. volatile变量规则
      4. 传递性
      5. start()规则
      6. join()规则
      7. 程序中断规则
      8. 对象finalize规则

数据库事务ACID特性 2018/05/16

  • 原子性(Atomicity)
  • 一致性(Consistency)
    • 一致性是指在事务开始之前和事务结束以后数据库的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性
  • 隔离性(Isolation)
  • 持久性(Durability)

Python

Python编码的问题

原来unicode和utf-8不是一个东西….

  • UTF是为unicode编码设计的一种在存储和传输时节省空间的编码方案。
  • Python2默认的编码是ASCII,Python3
  • GBK的编码,中文字最高位要置1.
  • 常见的编码错误:
    • Python解释器的默认编码
    • Python源文件的文件编码
    • Terminal使用的编码
    • 操作系统的语言设置

装饰器 2018/05/31

Django

Django-Rest-Framework 2018/05/12

偷偷说这个并没有很看懂orz

推荐算法

《今日头条推荐算法原理全文详解》 2018/05/17

极限编程(XP)

《主流敏捷开发方法:极限编程XP》 2018/05/08

  • 是一种指导开发人员的方法论。
  • 四大价值:
    • 沟通
    • 简单:“够用就好”
    • 反馈
    • 勇气:敢于重构
  • 五个原则:快速反馈、简单性假设、逐步修改、提倡更改(小步快跑)、优质工作(保证质量的前提下保证小步快跑)。

生活

租房指南

大概提供了租房的思路和一些注意的要点。

综合

台湾清华大学彭明辉教授的研究生手册 2018/05/30