摘要: 简单数据结构 类注释 线程不安全,出现并发问题会 fail fast,并发需要用 Collections.synchronizedMap 包裹起来 顺序不按照插入顺序 hashcode 分散均匀很重要 hashcode 分散不均匀,Compareble 来补充 capacity、load facto 阅读全文
posted @ 2019-02-25 23:47 Piers 阅读(427) 评论(0) 推荐(0) 编辑
摘要: [TOC] "GitHub 项目地址" Class 内部类、静态内部类、匿名内部类、局部内部类 内部类需要外部类支持,保存了外部类的引用,初始化 Outer.inner x = outerObj.new inner() 静态内部类不需要外部类支持,初始化 Outer.inner x = new Ou 阅读全文
posted @ 2018-11-02 13:25 Piers 阅读(1083) 评论(0) 推荐(0) 编辑
摘要: 项目名 Piers 在线评测 项目需求 用户: 管理员: 项目特色 项目架构 语言:Java 框架:Spring + Spring MVC + MyBatis 前端:Bootstrap 前端页面:JSP、JavaScript、AJAX 安全:Spring Security、Docker、Java S 阅读全文
posted @ 2017-03-14 15:13 Piers 阅读(3310) 评论(0) 推荐(2) 编辑
摘要: 公司有个需求,收集机器数据。使用的是 Telegraf,启动一个 Client 接收 Telegraf 日志,并批量上传到服务器 Server,服务器通过 Redis 缓存数据,之后 Consumer 负责读取批量写入 InfluxDB。 第一个让人为难的问题,读取写入顺序问题——软件工程没有银弹。 阅读全文
posted @ 2020-06-06 19:05 Piers 阅读(557) 评论(3) 推荐(0) 编辑
摘要: 时序图和流程图 这两个是相辅相成的东西,体现了程序员开发的专业性。不画图的程序员普遍不会很优秀。 做什么事情之前都要花时间去思考流程,理清业务,输出就是流程图和时序图 流程图适合于某个特定的单点交互,或者是用户操作在系统中运转 时序图适合复杂交互,尤其是代码服务之间的复杂交互 用什么技术 关系型数据 阅读全文
posted @ 2019-06-25 23:45 Piers 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 延迟消息队列 利用 expire keyspace notification Redis 过期时,会向特定的消息队列发送消息,监听该消息队列 在 redis.conf 修改 notify keyspace events "Ex",重启 Redis;或者直接利用 config set notify k 阅读全文
posted @ 2019-06-25 23:30 Piers 阅读(1432) 评论(0) 推荐(0) 编辑
摘要: 需求 项目老大让外包做了官网,不甚满意,想自己搞搞,遂叫我反编译他们发过来的 war 包。 方法 第一步:解压 war 包其实就是 zip 压缩包,用 zip 解压。 第二步:反编译 查看 war 包下面的 WEB INF/classes,用 http://java decompiler.githu 阅读全文
posted @ 2019-03-24 23:51 Piers 阅读(8104) 评论(1) 推荐(0) 编辑
摘要: 2019.3.12 https://github.com/mofadeyunduo/distribution system unique id 为什么我写的 Snowflake 比官方实现慢一倍 阅读全文
posted @ 2019-03-13 09:28 Piers 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 学习目标 秒杀原理 性能测试 性能分析 系统目标 性能优秀 能经受住高并发 不会超卖 框架 Spring Redis 线程池 思路 lpush N 个需要秒杀商品的序号 lpop 取序号,取不出来则秒杀失败 之后异步存入数据库 一些错误 过度设计 想设计一个秒杀操作可以有不同实现的父类,发现没有必要 阅读全文
posted @ 2019-03-11 23:24 Piers 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 目标: 找到一份工作。 做的事情: Java 基础复习 5🍅 Java 并发复习 5🍅 HashMap 源码分析 9🍅 ConcurrentHashMap 源码分析 ?🍅 MySQL 索引(数据结构、用法) 阅读全文
posted @ 2019-02-19 16:20 Piers 阅读(152) 评论(0) 推荐(0) 编辑
摘要: Java 内存模型(JMM),实际上的目的就是为了统一内存管理。这让我想到了,作为一个程序员总是想着有银弹,有一个代码能万能的在所有场景上。经过多次尝试我发现这是不可能的:需求在变,技术在更新,没有什么事万能的。 volatile 关键字保证了可见性、有序性,不能保证原子性,这是一个遗憾。是个事物总 阅读全文
posted @ 2018-11-13 15:55 Piers 阅读(182) 评论(0) 推荐(0) 编辑
摘要: JVM 是什么呢?说的直白点就是 Java 代码运行的地方,全称 Java Virtural Machine,Java 虚拟机。有的人就会奇怪了,为什么 Java 程序员需要了解这个东西?毕竟大多数情况下,“能跑”就行。 能跑真的行吗?你说在一个小公司里,“能跑”就行那是肯定的,业务必定是优先的。可 阅读全文
posted @ 2018-11-12 22:27 Piers 阅读(141) 评论(0) 推荐(0) 编辑