2022-01-07 7.2k 字 7 分钟 Springboot集成Netty. # 添加依赖 123456<!-- https://mvnrepository.com/artifact/io.netty/netty-all --><dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId>... more...
2022-01-02 11k 字 10 分钟 RocketMQ事务实现原理 最近有点浮躁,玩了一个周,没有写文章了。今天继续搞 RocketMQ 的事务实现。 # 往期文章 RocketMQ 搭建 RocketMQ 架构设计之启动 RocketMQ 架构设计之消息 # 分布式事务 分布式事务,是指事务的发起者、资源及资源管理器和事务协调者分别位于分布式系统的不同节点之上。当然,分布式事务也是一个老生常谈的话题,尤其是面试中。常用的分布式事务解决方案有很多,比如:两阶段提交, TCC , SAGA 等等。 本篇文章,我主要看看 RocketMQ 的事务实现。 # 从一个例子开始 1234567891011121314151617181920212223//... more...
2021-11-17 2.1k 字 2 分钟 模型评估概述 # 分类 模型评估可以分为 离线评估和在线评估 两大类。在产品的不同阶段,我们要根据不同的场景去应用他们。 两种评估方式由于其场景不同,所评估的关注点也不尽相同。其中,离线评估关注的是模型效果相关的指标,如精准率、 KS 等等。在线评估关注的是业务相关指标,比如新用户的转化率、优惠券的核销率、信贷审核的通过率等等。由于模型的在线评估与业务场景强相关,所以我们的课程重点将放在模型的离线评估上。 # 在线评估 在线评估是指在模型部署上线后,使用线上真实数据对模型进行的评估。这个时候,产品经理或者运营同学大多采用 ABTest 的方式去判断业务的表现. #... more...
2021-11-17 3.7k 字 3 分钟 模型评估之 分类模型的评估指标 混淆矩阵 ( Confusion Matrix ) 是分类模型的一种评估指标。它是使用一种特定的矩阵来呈现算法性能的可视化效果,通常是监督学习。(非监督学习,通常用匹配矩阵:m atching matrix ) 其每一列代表预测值,每一行代表的是实际的类别。这个名字来源于它可以非常容易的表明多个类别是否有混淆(也就是一个 class 被预测成另一个 class )。 # 举例 我们以 是否感染新冠肺炎的模型来演示 混淆矩阵。 按照定义,我们可以得到如下矩阵。 横向看上图,预测感染新冠为 Positive , 即为阳性, 未感染新冠为 Negative , 即 阴性。 纵向看上图,预测正确的为... more...
2021-11-13 1.2k 字 1 分钟 LC:495.提莫攻击 # 题目 在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。 当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。 正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t, t + duration - 1] (含 t 和 t + duration - 1 )处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束。 给你一个 非递减 的整数数组 timeSeries ,其中 timeSeries[i] 表示提莫在... more...
2021-11-13 951 字 1 分钟 LC:520.检测大写字母 # 题目 我们定义,在以下情况时,单词的大写用法是正确的: 全部字母都是大写,比如 USA 。 单词中所有字母都不是大写,比如 leetcode 。 如果单词不只含有一个字母,只有首字母大写, 比如 Google 。 给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。 # 示例 # 示例 1 输入:word = “USA” 输出:true # 示例 2 输入:word = “FlaG” 输出:false # 提示 1. 1 <= word.length <= 100 2. word... more...
2021-11-11 15k 字 14 分钟 不要再在用JDK11写JDK8的代码了! 入职新公司两个月了,用 JDK11 写了两个月 JDK8 的代码,再也憋不住想看看 JDK11 的新特性了。没用过 JDK9,10 . 那就说说 JDK8-JDK11 的变化吧。 # 新 语法增强 本地变量类型推断 Collection 增强 Stream 增强 Optional 增强 InputStream 增强 String 增强 模块化开发 新工具 REPL 交互式编程 Low-Overhead Heap Profiling Flight Recorder 新功能 源代码直接执行 完全支持 Linux 容器 支持 Unicode... more...
2021-11-06 1.7k 字 2 分钟 LC:268.丢失的数字 # 题目 给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 # 示例 # 示例 1 123输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。 # 示例 2 123输入:nums = [0,1]输出:2解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。 # 示例 3 123输入:nums =... more...
2021-11-04 1.4k 字 1 分钟 LC:42.接雨水 # 题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 # 示例 1: 123输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 # 示例 2: 12输入:height = [4,2,0,3,2,5]输出:9 # 提示 123n == height.length1 <= n <= 2 * 1040 <=... more...
2021-11-04 1.5k 字 1 分钟 LC:407.接雨水II # 题目 给你一个 m x n 的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水。 # 示例 # 示例 1 123输入: heightMap = [[1,4,3,1,3,2],[3,2,1,3,2,4],[2,3,3,2,3,1]]输出: 4解释: 下雨后,雨水将会被上图蓝色的方块中。总的接雨水量为1+2+1=4。 # 示例 2 12输入: heightMap = [[3,3,3,3,3],[3,2,2,2,3],[3,2,1,2,3],[3,2,2,2,3],[3,3,3,3,3]]输出: 10 # 提示 1234m ==... more...