- 博客(144)
- 资源 (18)
- 收藏
- 关注
原创 《亚马逊CEO贝佐斯的股东信(1997-2020)》读后感
写在前面I. 总体感想II. 阅读笔记◆ 贝索斯给股东的一封信(1997-2011)97年已经触达了这么多内容,还以为个性化推荐是这些年才兴起的概念。今天线上交易为客户节省了很多金钱和宝贵的时间。明天,通过个性化推荐,线上交易将会加速发展。巩固地位时也要寻找新的增长机会,不进则退。我们的目标是快速夯实和扩展我们现在的位置,同时开始追求其它领域的线上商业机会。在我们瞄准的市场上,我们看到了巨大的机会。这一战略当然不是没有风险:它需要压倒性的投入和干净利落的执行以面对业已成功的行业领导者。
2021-04-28 08:52:42
1458
1
原创 《小狗钱钱》读书笔记
第二章 梦想储蓄罐和梦想相册“学习就是认识新观念和新想法的过程。假如人们始终以同一种思维方式来考虑问题的话,那么始终只会得到同样的结果。因为我对你讲述的许多内容是你以前从未接触过的,所以我建议你,在你还没有做之前,不要轻易下结论。没有想象力的人是很难成就大事的。我们对一件事投入的精力越多,成功的可能性也越大。可是大多数人把精力放在自己并不喜欢的事情上,而不去想象自己希望得到的东西。”因为我们的支出永远是随着我们的收入而增长的。”吉娅,机会到处都是,但是只有在你寻找它的时候,你才能看见它。只有
2021-03-07 13:05:12
729
2
原创 Dubbo源码——时间轮算法
定时任务/** * A task which is executed after the delay specified with * {@link Timer#newTimeout(TimerTask, long, TimeUnit)} (TimerTask, long, TimeUnit)}. */public interface TimerTask { /** * Executed after the delay specified with * {@link
2020-08-30 00:02:00
1241
原创 Dubbo源码——源码阅读环境搭建
I. 前言好久没写博客了,Markdown都有些生疏了,惭愧!终于又看起源码了,其实大论文还有好多没写,但我就是喜欢在该干些什么的时候跑去干点别的…这次准备对Dubbo下手了,好好研究一下,预览了一下感觉看完会有很多收获,特征是对Spring源码的理解可能更加深入。挺想在中间件那种团队,高大上的软件设计,不被业务所拘泥。II. 环境准备系统:Mac OSIDEA 2018.3 (好久...
2020-04-02 14:59:39
1143
2
原创 细说分布式锁实现
Redis分布式锁获取锁当一个进程前来请求分布式锁,首先通过 setnx 来尝试获取锁,如果获取锁成功,OK,设置好过期时间,可以返回去干自己事情了。如果 setnx 没获取成功,事情麻烦了,说明肯定有人拿到锁了。这个时候就要看看拿锁的进程是不是该让让位了——比较当前时间和锁里设置的过期时间(通过 get 查看),如果没到过期时间,好吧,自己就只好放弃或者继续等待了。如果发现当前时间已经超过过...
2019-09-20 15:36:03
553
1
原创 Redis设计与实现——数据结构与对象
前言Redis是一个KV数据库,常用于实现缓存,因为基于内存实现,所以速度极快。最近阅读《Redis设计与实现》一书,整理几篇文章,本文介绍Redis数据结构相关内容。I. 数据结构我们通常说的Redis支持的数据类型有五种,包括字符串、哈希、列表、集合、有序集合,其实这只是存储的数据类型,底层用于存储数据的数据结构并不是这些,而是动态字符串(SDS)、链表、字典(哈希表)、跳跃表、整数集合...
2019-06-30 01:33:29
904
原创 版本管理Git相关
前言最近要开始正式进行融入团队开发,对于 Git 的使用一直也不是特别清楚,基本的多人协作也比较模糊。所以照着廖雪峰老师的 Git 教程 系统的学习了一下,内容还是十分清晰有用的。这里做一些简单归纳,具体命令细节可以查看原文。当然,大多数情况我们可能并不直接使用命令行操作 Git,之前用过一款图形化工具 SourceTree 推荐给大家,当然现在 VsCode 和 IDEA 也都提供可视化操作...
2019-06-20 10:47:40
440
原创 TensorFlow1.x最佳实践:Dataset API+Keras Model+TF Train
前言关于深度学习框架,主流的几个TensorFlow、PyTorch以及Keras都有所使用,由于在深度学习领域自己也只算个入门级选手,所以本文只从一个AI新手的角度去尝试分享一些使用框架编程的实践经验。至于标题最佳实践,那也纯粹有些哗众取宠之意,文章对于能够玩转各种框架API的大佬们,也许会贻笑大方。除此以外,本文相当于一个搬运工,并不讲解具体的使用细节,当然会推荐一些已经介绍的很好的文章,看...
2019-06-04 15:08:33
2000
1
原创 JavaEE进阶——ZooKeeper和Curator
I. 简介ZooKeeper是一个分布式的,提供分布式应用程序协调服务的一个项目。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。II. 工作机制ZooKeeper从设计模式角度理解:是基于观察者模式的分布式服务管理框架,它负责存储和管理所有节点都关心的数据...
2019-05-20 20:39:05
1052
原创 美团Leaf源码——snowflake模式源码解析
前言上一篇文章介绍了如何使用Leaf的号段模式生成分布式全局唯一id,参照下图我们简单总结一下。当我们部署Leaf集群时(图中是3个),每个节点起初都包含一个双 buffer,也就是双号段。当有请求过来时,每个节点都会去数据库查询按照初始的DB中的step去更新最大id,从而获取到一个号段,然后每个节点当第一个号段用到超过10%的时候再异步准备第二个号段。所以按照图中的理解可以认为左中右三个节点...
2019-05-19 17:12:51
7173
8
原创 美团Leaf源码——号段模式源码解析
前言I. 导入项目Leaf由Maven构建,源码地址:https://github.com/Meituan-Dianping/Leaf首先先Fork官方仓库到自己的仓库,我的源码注释版:https://github.com/MrSorrow/Leaf下载源码,导入IDEA,导入成功依赖下载完成后项目结构大致如下:II. 测试项目使用号段模式「创建数据库表」DROP TABLE I...
2019-05-15 19:30:06
6935
2
原创 电商秒杀系统相关实现
本文主要就电商秒杀系统所涉及的相关技术进行探究,相关Demo地址如下:- 个人实现版本:[https://github.com/MrSorrow/seckill](https://github.com/MrSorrow/seckill)- Github Star较高的版本,第一版也是基于慕课网的:[https://github.com/qiurunze123/miaosha](https://github.com/qiurunze123/miaosha)本Demo实现了电商项目的秒杀功能,主要内容包
2019-05-11 14:37:19
4670
3
原创 Spring Boot源码——源码阅读环境搭建
前言阅读Spring Boot源码,需要先有所了解Spring Framework相关知识或者源码细节等,可以参考我之前的相关博客内容。接下来,主要着手研究Spring Boot这一块,如果还不知道怎么用Spring Boot,建立花费一些时间入门一下。本文主要是阅读源码的第一步,搭建阅读Spring Boot源码的环境,我们依然使用的是IDEA工具。环境准备JDK8+Maven3.5...
2019-04-21 16:32:41
19826
4
原创 Spring源码——MVC流程
前言最近回顾了一下Spring源码,准备用思维导图的方式简单的将整个源码内容的流程展示出来,思维导图、图片等文件更新在https://github.com/MrSorrow/spring-framework仓库中,阅读博客不方便可以直接下载。思维导图使用MindMaster制作而成,可以下载导入查看。如果有知道如何在markdown中展示思维导图或矢量图的朋友,希望能评论告知
2019-04-19 15:12:50
851
原创 Spring源码——声明式事务流程
前言最近回顾了一下Spring源码,准备用思维导图的方式简单的将整个源码内容的流程展示出来,思维导图、图片等文件更新在https://github.com/MrSorrow/spring-framework仓库中,阅读博客不方便可以直接下载。思维导图使用MindMaster制作而成,可以下载导入查看。如果有知道如何在markdown中展示思维导图或矢量图的朋友,希望能评论告知
2019-04-16 21:06:24
932
原创 Spring源码——动态AOP实现流程
前言最近回顾了一下Spring源码,准备用思维导图的方式简单的将整个源码内容的流程展示出来,思维导图、图片等文件更新在https://github.com/MrSorrow/spring-framework仓库中,阅读博客不方便可以直接下载。思维导图使用MindMaster制作而成,可以下载导入查看。如果有知道如何在markdown中展示思维导图或矢量图的朋友,希望能评论告知
2019-04-14 23:15:29
1187
原创 Spring源码——ClassPathXmlApplicationContext流程
前言最近回顾了一下Spring源码,准备用思维导图的方式简单的将整个源码内容的流程展示出来,思维导图、图片等文件更新在https://github.com/MrSorrow/spring-framework仓库中,阅读博客不方便可以直接下载。思维导图使用MindMaster制作而成,可以下载导入查看。如果有知道如何在markdown中展示思维导图或矢量图的朋友,希望能评论告知
2019-04-10 15:49:16
829
2
原创 Spring源码——XmlBeanFactory流程
前言最近回顾了一下Spring源码,准备用思维导图的方式简单的将整个源码内容的流程展示出来,思维导图、图片等文件更新在https://github.com/MrSorrow/spring-framework仓库中,阅读博客不方便可以直接下载。思维导图使用MindMaster制作而成,可以下载导入查看。如果有知道如何在markdown中展示思维导图或矢量图的朋友,希望能评论告知 :)本文主要关...
2019-04-09 14:27:26
539
原创 排序——堆排序和TopK
前言堆排序与TopK的问题,面试中还是经常问的,索性也整理一下。下面是徒手写的,供参考.堆排序public void heapSort(int[] array) { // 先构造一个大顶堆 int N = array.length - 1; for (int i = (N - 1) / 2; i >= 0; i--) { sink(array, i, N); } // ...
2019-04-02 10:56:54
2349
原创 MySQL——深入理解事务与锁
前言本文内容主要参考自《高性能MySQL》、《深入浅出MySQL》、《MySQL DBA 修炼之道》书中的关于事务与锁相关章节,其中《深入浅出MySQL》讲的最为深入,这篇博客算是几本书的综合提炼以及个人理解补充。 上次主要讲了MySQL的索引与 EXPLAIN 的用法,是MySQL中非常重要的一部分,这次将进入下一部分,有关数据库的设计。I. 事务特性ACIDα. 事务定义事务是数据库管...
2019-03-25 10:35:46
821
原创 MySQL——三大范式与数据库设计
前言本文内容主要参考自《MySQL DBA 修炼之道》书中的第四章,算是原书的实践与补充。 上次主要讲了MySQL的索引与 EXPLAIN 的用法,是MySQL中非常重要的一部分,这次将进入下一部分,有关数据库的设计。I. 三大范式α. 范式含义范式是数据库规范化的手段,那么啥又是数据库规范化 ?数据库规范化通俗的来讲就是经过合理的设计,将大表分成很多有关联关系的小表,这样来去除数据的冗...
2019-03-22 22:30:20
726
原创 设计模式——单例模式实现
public class Singleton{ static class Instance {} /** * 【饿汉式】 * 类加载时在准备阶段分配内存,也就是instance = null,初始化阶段堆中创建Instance对象,该对象引用赋值给instance * 这样类加载完成时对象已经创建好,不存在问题 */ public...
2019-03-14 09:38:51
559
原创 Jdk源码——LinkedList解析
前言本文主要针对 JDK1.8 的 LinkedList 源码进行解析,主要看源码注释,代码说明了全部实现细节。ArrayList 相关解析可以参考 Jdk源码——ArrayList解析I. 继承结构LinkedList 的继承结构如下,和 ArrayList (上一篇文章)相比,它们都实现了 Cloneable 和 Serializable 接口,都是 AbstractList 的子类,...
2019-02-27 16:21:30
471
原创 Jdk源码——ArrayList解析
前言本文主要针对 JDK1.8 的 ArrayList 源码进行解析,主要看源码注释,代码说明了全部实现细节。I. 继承结构ArrayList 的继承结构如下图所示,下面我们进行一一解析。SerializableSerializable 接口是启用其序列化功能的接口,接口定义如下:public interface Serializable {}实现 java.io.Serial...
2019-02-26 15:57:20
469
原创 挂帆蓄力 破浪前行
往常,我会将这种总结写在微博中,随便可能会有陌生的人光顾。最早的时候可能还会发到朋友圈里,仿佛在“叫嚣”别人看我一年的成长。
2019-01-28 01:56:34
1129
2
原创 Think in Java——多态
多态调用将 一个方法调用 和 一个方法主题 关联起来被称作绑定。绑定分为前期绑定与后期绑定,多态方法的具体调用依靠前期绑定是不行的,编译器不知道对象的具体类型无法具体调用,所以只能依靠后期绑定,也叫动态绑定、运行时绑定;Java除了 final 方法和 static 方法(private 方法属于 final 方法)之外,其他方法的调用默认就是后期绑定。final 方法意味着不想被子类覆盖,...
2019-01-26 11:35:28
313
原创 Think in Java——复用类
前言Java复用代码的思路有两种:组合:在新类中产生现有类的对象,再添加新的扩展成员与行为;继承:新类继承自现有类,拥有现有类的全部特性。组合...
2019-01-25 12:41:00
336
原创 Think in Java——访问权限控制
包:库单元一个Java源代码文件常被称为编译单元(转译单元),一个编译单元必须有一个后缀名 .java,而在一个编译单元内只能有一个public类,类名与文件名相同。其他非public类主要是为public类提供支持的;当编译一个 .java文件的时候,文件中的每个类都会生成一个 .class文件,然后交给Java解释器去查找、装载和解释。...
2019-01-23 10:12:21
283
原创 Jdk源码——AQS同步队列解析
前言本文主要参考自《Java 并发编程的艺术》第五章内容,结合源码对书中内容进行分析补充。I. Lock接口在 Lock 接口出现之前,Java程序是靠 synchronized 关键字实现锁功能的,而 Java SE 5 之后,并发包中新增了 Lock 接口(以及相关实现类)用来实现锁功能,它提供了与 synchronized 关键字类似的同步功能,只是在使用时需要显式地获取和释放锁。...
2018-12-26 19:40:11
554
原创 Think in Java——操作符
关系操作符== 与 != 如果是对象比较,比较的是引用,并不是内容;想要比较内容是否相等,则应该使用 equals() 方法。但对于基本数据类型,没有 equals() 方法,直接使用 == 与 != ;上述的应该两字真正的含义是并不是一定用 equals() 方法就能比较内容,如果类没有重写 equals() 方法,那么默认 equals() 方法还是比较的是引用是否相同,Object ...
2018-12-18 00:33:53
937
原创 MySQL——索引与EXPLAIN
前言本文内容主要参考自《高性能MySQL》第5章以及《MySQL DBA 修炼之道》书中的第三章,算是原书的实践与补充。 上次主要讲了MySQL的基本操作,这次来谈谈索引与EXPLAIN。I. 什么是索引?想要深入的学习MySQL相关技术,而不仅仅停留在简单CURD,能够写出百万数据中分分钟查出需要数据的SQL,首先就需要掌握索引技术。那么什么是索引呢?要理解MySQL中索引是如何工作的,...
2018-12-05 21:54:20
1382
1
原创 MySQL——常用命令
前言本文内容主要参考自《MySQL DBA 修炼之道》书中的第三章,算是原书的实践与补充。I. MySQL 5.7配置环境变量MySQL 5.7 版本安装路径为 C:\Program Files\MySQL\MySQL Server 5.7\bin,默认不会添加环境变量,需要自行添加。II. SQL基础变量MySQL中变量可以分为用户变量和系统变量。① 用户变量用户变量与连接有关...
2018-11-27 13:46:44
2428
原创 Java并发——缓存一致性
I. CPU多级缓存CPU的时钟频率非常的快,跑起来的速度远远超过了内存、硬盘。《码农翻身》形象的比喻CPU为阿甘,跑的速度是内存的100倍,硬盘的1000多万倍。如果直接靠CPU直接和内存打交道,那么CPU要等待太久,浪费资源。我们平时编写的程序中,包含着很多连续创建的数组、对象,各种循环、递归、调用同一函数等,其实本质上符合了局部性原理。局部性原理具体是指在CPU访问存储设备时,无论是存取...
2018-11-24 10:57:17
2291
原创 Spring源码——Spring MVC
前言内容主要参考自《Spring源码深度解析》一书,算是读书笔记或是原书的补充。进入正文后可能会引来各种不适,毕竟阅读源码是件极其痛苦的事情。本文主要涉及书中第十一章的部分,依照书中内容以及个人理解对Spring源码进行了注释,详见Github仓库:https://github.com/MrSorrow/spring-frameworkSpring框架提供了构建Web应用程序的全功能MVC模...
2018-11-22 13:16:36
1729
原创 Spring源码——SpringMVC测试工程搭建
前言内容主要参考自《Spring源码深度解析》一书,算是读书笔记或是原书的补充。进入正文后可能会引来各种不适,毕竟阅读源码是件极其痛苦的事情。本文主要涉及书中第十一章的部分,依照书中内容以及个人理解对Spring源码进行了注释,详见Github仓库:https://github.com/MrSorrow/spring-framework本文作为正式研究SpringMVC的预热文章,主要目的是...
2018-11-17 01:50:07
2145
3
原创 Spring源码——消息队列
前言内容主要参考自《Spring源码深度解析》一书,算是读书笔记或是原书的补充。进入正文后可能会引来各种不适,毕竟阅读源码是件极其痛苦的事情。本文主要涉及书中第十三章的部分,依照书中内容以及个人理解对Spring源码进行了注释,详见Github仓库:https://github.com/MrSorrow/spring-frameworkJava消息服务 (Java Message Servi...
2018-11-15 22:45:03
6425
原创 Spring源码——事务
前言内容主要参考自《Spring源码深度解析》一书,算是读书笔记或是原书的补充。进入正文后可能会引来各种不适,毕竟阅读源码是件极其痛苦的事情。本文主要涉及书中第十章的部分,依照书中内容以及个人理解对Spring源码进行了注释,详见Github仓库:https://github.com/MrSorrow/spring-framework之前我们已经研究了Spring中关于 JDBC 和 MyB...
2018-11-11 17:23:08
980
1
原创 Keras特征图Tensorboard可视化
前言之前在用Tensorflow框架的时候,对于特征图的可视化已经研究了一下。主要的思路其实就是将特征图展开铺平成一张大图。具体文章参考Tensorboard特征图可视化。文章主要的函数就是将特征图沿着第四通道展开,然后将其拼接。最后的返回结果 all_concact 其实还是个四维的张量,第一维是 batch_size,最后一维是 1,中间两维则是大的特征图的尺寸。def _concact...
2018-11-07 17:51:42
9886
6
原创 Spring源码——Mybatis
前言内容主要参考自《Spring源码深度解析》一书,算是读书笔记或是原书的补充。进入正文后可能会引来各种不适,毕竟阅读源码是件极其痛苦的事情。本文主要涉及书中第九章的部分,依照书中内容以及个人理解对Spring源码进行了注释,详见Github仓库:https://github.com/MrSorrow/spring-frameworkMyBatis是一个数据库的框架,相信读者对其不会陌生,这...
2018-11-02 12:12:31
846
原创 Spring源码——JDBC
前言内容主要参考自《Spring源码深度解析》一书,算是读书笔记或是原书的补充。进入正文后可能会引来各种不适,毕竟阅读源码是件极其痛苦的事情。本文主要涉及书中第八章的部分,依照书中内容以及个人理解对Spring源码进行了注释,详见Github仓库:https://github.com/MrSorrow/spring-framework本章内容基于之前所说的Spring IOC 和 AOP功能...
2018-10-27 20:03:17
1829
文件上传服务器
2017-05-10
Banner实现轮播图(RecyclerView添加Header)实例 下载
2017-05-03
RecyclerView+CardView+Glide加载图片实现瀑布流
2017-05-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人