摘要: 题目描述: 序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #。 例如,上面的二叉树可以被序列化为字符串 "9,3,4,#,#,1,#,#,2,#,6,#,#",其中 # 代表一个空节点。 给定一串以逗 阅读全文
posted @ 2019-03-03 17:48 李怕怕 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 有两个容量分别为 x升 和 y升 的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好 z升 的水? 如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水。 你允许: 装满任意一个水壶 清空任意一个水壶 从一个水壶向另外一个水壶倒水,直到装满或者倒空 解题思路: 阅读全文
posted @ 2019-03-03 16:43 李怕怕 阅读(1087) 评论(0) 推荐(0) 编辑
摘要: 分布式锁: Redis分布式锁 RedLock算法 1)获取当前时间戳,单位是毫秒 2)跟上面类似,轮流尝试在每个master节点上创建锁,过期时间较短,一般就几十毫秒 3)尝试在大多数节点上建立一个锁,比如5个节点就要求是3个节点(n / 2 +1) 4)客户端计算建立好锁的时间,如果建立锁的时间 阅读全文
posted @ 2019-02-27 13:41 李怕怕 阅读(1126) 评论(0) 推荐(0) 编辑
摘要: 生命周期包括:加载、连接(验证、准备、解析)、初始化、使用、卸载 类初始化: 遇到new、getstatic、putstatic、invokestatic四条字节码指令时;常见场景:使用new实例化对象,读取或设置一个类的静态字段、调用一个类的静态方法 使用java.lang.reflect包的方法 阅读全文
posted @ 2019-02-25 21:18 李怕怕 阅读(758) 评论(0) 推荐(0) 编辑
摘要: 乐观锁&悲观锁 悲观锁:获取数据时加锁,(synchronized关键字、Lock实现类) 乐观锁:使用数据时不加锁,更新时判断之前是否有其他线程更新数据,(CAS算法) CAS(Compare And Swap): 无锁算法,实现线程的变量同步 java.util.concurrent包中的原子类 阅读全文
posted @ 2019-02-21 22:40 李怕怕 阅读(449) 评论(0) 推荐(0) 编辑
摘要: locks部分:显式锁(互斥锁和速写锁)相关; atomic部分:原子变量类相关,是构建非阻塞算法的基础; executor部分:线程池相关; collections部分:并发容器相关; tools部分:同步工具相关,如信号量、闭锁、栅栏等功能; Executor 建立线程池,执行线程 Thread 阅读全文
posted @ 2019-02-20 15:38 李怕怕 阅读(1275) 评论(0) 推荐(0) 编辑
摘要: 用zookeeper来做分布式锁、分布式协调 zk使用场景: 分布式协调:(MQ解耦) A系统在zk中某个节点注册监听器,B完成处理后修改值,A收到通知 分布式锁: 同一个数据连续两个修改操作,只有一个可以获取锁 元数据/配置信息管理: dubbo等分布式系统的注册中心(Kafka、Storm) 如 阅读全文
posted @ 2019-02-16 23:12 李怕怕 阅读(373) 评论(0) 推荐(0) 编辑
摘要: synchronized关键字了解 解决多线程访问资源的同步性,保证被修饰的方法或者代码块在任意时刻只能有一个线程执行 synchronized使用方式 修饰实例方法,对当前对象加锁 修饰静态方法,对类对象加锁 修饰代码块,对当前对象加锁 JDK1.6以后对synchronized关键字的优化 偏向 阅读全文
posted @ 2019-02-15 15:35 李怕怕 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 为什么用缓存? 高性能:减少查询同一个数据时的响应速度 高并发:减少数据库的承载压力(2000/s),缓存走内存,天然支撑高并发 缓存的不良后果: 缓存与数据库的双写不一致 缓存雪崩 缓存穿透 缓存并发竞争 Redis和memcached区别(单线程、NIO、异步) Redis支持服务器端数据操作: 阅读全文
posted @ 2019-02-12 15:37 李怕怕 阅读(2035) 评论(0) 推荐(0) 编辑
摘要: Java垃圾回收机制 判断对象已死方法: 引用计数法(循环引用) 可达性分析 GC Roots: 虚拟机栈中的引用对象 方法区中静态属性引用对象 方法区中常量引用对象 本地方法栈中JNI(Java native interface)引用的对象 引用分类: 强引用、软引用、弱引用、虚引用 垃圾回收算法 阅读全文
posted @ 2019-02-02 15:33 李怕怕 阅读(181) 评论(0) 推荐(0) 编辑