Fork me on GitHub
CongLin's Blog

敢于直面惨淡的人生。

  • 首页
  • 标签
  • 分类
  • 归档
  • 关于
  • 搜索

浅谈ZAB协议

发表于 2019-06-28 | 分类于 分布式 |
众所周知,ZooKeeper 是一个开源的分布式协调服务,很多分布式的应用都是基于 ZooKeeper 来实现分布式锁、服务管理、通知订阅等功能。 那么 ZooKeeper 自身是如何在分布式环境下实现数据的一致性的呢? 答案就是ZooKeeper Atomic Broadcast(ZAB,zook ...
阅读全文 »

Morris Traversal方法遍历二叉树

发表于 2019-06-15 | 分类于 算法 |
通常,实现二叉树的前序(preorder)、中序(inorder)、后序(postorder)遍历有两个常用的方法:一是递归(recursive),二是使用栈实现的迭代版本(stack+iterative)。这两种方法都是O(n)或者O(logn)的空间复杂度(递归本身占用stack空间或者用户自定 ...
阅读全文 »

Java内存模型的小总结

发表于 2019-06-02 | 分类于 Java |
JMM规定了线程的工作内存和主内存的交互关系,以及线程之间的可见性和程序的执行顺序。一方面,要为程序员提供足够强的内存可见性保证;另一方面,对编译器和处理器的限制要尽可能地放松。JMM对程序员屏蔽了CPU以及OS内存的使用问题,能够使程序在不同的CPU和OS内存上都能够达到预期的效果。 Java采用 ...
阅读全文 »

浅谈Class.forName()和classLoader.loadClass()的区别

发表于 2019-05-17 | 分类于 Java |
在理解这两个区别前,需要弄清楚java类的加载机制。 类加载机制 加载。加载过程完成以下三件事: 通过类的完全限定名称获取定义该类的二进制字节流。 将该字节流表示的静态存储结构转换为方法区的运行时存储结构。 在内存中生成一个代表该类的 Class 对象,作为方法区中该类各种数据的访问入口。 验证 ...
阅读全文 »

0-1背包问题

发表于 2019-05-05 | 分类于 算法 |
问题0-1背包是在 n 件物品取出若干件放在空间为 w 的背包里,每件物品的重量为 w1,w2至wn,与之相对应的价值为p1,p2至pn。0-1背包是背包问题中最简单的问题。0-1背包的约束条件是给定几种物品,每种物品有且只有一个,并且有权值和重量两个属性。在0-1背包问题中,因为每种物品只有一个, ...
阅读全文 »

缓存与数据库的双写一致性问题

发表于 2019-04-27 | 分类于 缓存 |
只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题。 一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求 “缓存+数据库” 必须保持一致性的话,最好不要做这个方案,即:读请求和写请求串行化,串到一个内存队列里去。 串行 ...
阅读全文 »

浅谈ThreadLocal

发表于 2019-04-20 | 分类于 Java |
ThreadLocalThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。 数据结构 每个Thread线程内部都有一个Map(Thr ...
阅读全文 »

黑匣子问题

发表于 2019-04-12 | 分类于 算法 |
问题有一个黑匣子,黑匣子里有一个关于 x 的多项式 p(x) 。我们不知道它有多少项,但已知所有的系数都是正整数。每一次,你可以给黑匣子输入一个整数,黑匣子将返回把这个整数代入多项式后的值。那么,最少需要多少次, 我们可以得到这个多项式每项的系数呢? 解答答案是两次。 设 P(x)=An*x^n+A ...
阅读全文 »

Http缓存优先级问题

发表于 2019-04-05 | 分类于 Http |
HTTP缓存分为强缓存和对比缓存(也叫协商缓存)。 强缓存强缓存:只要请求了一次,在有效时间内,不会再请求服务器(请求都不会发起),直接从浏览器本地缓存中获取资源。 主要字段有 expires:date(过期日期) cache-control: max-age=time(秒数,多久之后过期) | ...
阅读全文 »

飞机座位问题

发表于 2019-03-25 |
问题一架飞机上有一百个座位,编号是从1到100。现在编号为1到100的乘客依次坐上飞机。编号为1的乘客比较皮,上了飞机之后是随机(等概率地)坐座位的。编号为2的乘客上了飞机之后,他先看有没有人坐在2号位上,如果有,那他就在剩下的位子里随机(等概率地)挑选一个,如果没有人坐,他就坐在2号位上。3号也是 ...
阅读全文 »
123…5
从林

从林

It is my personal website.

41 日志
14 分类
28 标签
0%
© 2018 — 2020 CongLin