自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(269)
  • 收藏
  • 关注

原创 算法题汇总

文章目录数据结构专练-链表[算法- 字典树(Java实现)](https://blog.csdn.net/liushengxi_root/article/details/123458630)数据结构专练-字符串算法-搜索DFS与BFS(Java实现)算法-动态规划(Java实现)算法-位运算(Java实现)算法-哈希表(Java实现)算法-递归和分治(Java实现)算法-树&二叉树&二叉搜索树(Java实现)算法-栈和队列(Java实现)数据结构专练-链表剑指 Offer 35. 复杂

2022-04-13 13:31:13 826

原创 常用服务设计

文章目录如何幂等性?1.使用数据库唯一主键索引实现幂等性2.乐观锁实现幂等性3.Token 令牌如何实现幂等性如何实现全局唯一ID?数据库自增IDUUID 的生成雪花算法(snowflake)如何幂等性?在计算机中编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同一口气说出四种幂等性解决方案,面试官露出了姨母笑~1.使用数据库唯一主键索引实现幂等性2.乐观锁实现幂等性3.Token 令牌如何实现幂等性所谓的 token 令牌其实就是为了防止用户重复提交一个表单信

2022-04-11 17:19:24 2838

原创 Java 知识点杂记

这里写目录标题Java 中的 ==, equals 与 hashCode 的区别与联系String、StringBuffer、StringBuilder区别int 与 Integer区别Java 两种数据类型享元模式Java 中的 ==, equals 与 hashCode 的区别与联系==分两种:若是基本数据类型比较,是比较值,若是引用类型,则比较的是他们在内存中存放的地址。对象是放在堆中,栈中存放的对象的引用,所以==是对栈中的值进行比较,若返回 true ,代表变量的内存地址相等。

2022-01-24 19:37:16 541

原创 剑指 offer 全记录

文章目录排序查找数组字符串链表排序查找数组二维数组中的查找在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:把每一行看成有序递增的数组,利用二分查找,通过遍历每一行得到答案,时间复杂度是nlogn字符串链表...

2019-10-15 08:29:07 832

原创 【CSDN 语法记录】

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S

2024-03-15 09:53:14 538

原创 Java Stream 如何提高遍历集合效率?

Stream 的聚合操作与数据库 SQL 的聚合操作 sorted、filter、map 等类似。我们在应用层就可以高效地实现类似数据库 SQL 的聚合操作了,而在数据操作方面,Stream 不仅可以通过串行的方式实现数据操作,还可以通过并行的方式处理大批量数据,提高数据的处理效率。一个简单的例子来体验下 Stream 的简洁与强大。//如果身高大于160 if(stuMap . get(stu . getSex()) == null) {

2023-03-07 15:41:43 609

转载 mysql按30分钟进行分组

mysql按30分钟进行分组

2023-02-22 18:29:36 486 1

原创 Redis 核心技术与实战-实践篇读书笔记 20~终结

主要原因:内存碎片引起的内存碎片的产生主要是:(1)分配机制 (2)键值对大小不一样和删改操作看 INFO memory 命令中的 Redis 当前的内存碎片率指标。 mem_fragmentation_ratio 大于 1 但小于 1.5。这种情况是合理的。而大于 1.5 后则认为不是合理的范畴。启动碎片清理即可。这个命令只是启用了自动清理功能,但是,具体什么时候清理,会受到下面这两个参数的控制。这两个参数分别设置了触发内存清理的一个条件,如果同时满足这两个条件,就开始清理。在清理的过程中,只要有一

2022-06-09 22:33:38 1260 1

原创 RPC 实战与核心原理-高级篇笔记

阻塞-非阻塞-异步-同步-的理解一次 RPC 调用的本质就是调用端向服务端发送一条请求消息,服务端收到消息后进行处理,处理之后响应给调用端一条响应消息,调用端收到响应消息之后再进行处理,最后将最终的返回值返回给动态代理。这里我们可以看到,对于调用端来说,向服务端发送请求消息与接收服务端发送过来的响应消息,这两个处理过程是两个完全独立的过程,这两个过程甚至在大多数情况下都不在一个线程中进行。那么是不是说 RPC 框架的调用端,对于 RPC 调用的处理逻辑,内部实现就是异步的呢?不错,对于 RPC 框架,无论

2022-06-05 00:28:58 1108

原创 机器学习 && 内容安全 && 海外风控公司

文章目录机器学习算法的使用特征工程如何选择合适的特征?如何降维?模型选择决策树 && 随机森林 && K-Means模型 && 神经网络(CNN+RNN)图计算互联网反欺诈实战注册登录场景登录场景风险“薅羊毛”风险识别裂变拉新作弊风险识别内容安全与台规文本内容安全敏感词必须面临的问题:NLP AI 模型图像内容安全海外风控公司机器学习算法的使用特征工程特征工程本质上是从原始数据中选择特征供算法和模型使用的一项工程活动。如何选择合适的特征?什么是

2022-05-30 08:23:42 523

原创 决策引擎系统 && 实时指标计算 && 风险态势感知系统 && 风险数据名单体系 && 欺诈情报体系

文章目录实时指标计算风险态势感知系统基于统计分析的方法核心风控指标数据核心业务数据基于无监督学习的方法基于欺诈情报的方法预警系统风险数据名单体系(名单库)欺诈情报体系数据情报技术情报事件情报情报分析实时指标计算首先,大致上都有哪些场景。设备上登录 过多的账户1 天内设备上登录的账户过多设备使用 HTTP 代理登录设备某段时间的移动距 离、账号某段时间范围内的活跃天数等(累计)在风控反欺诈业务中,专家规则和模型都需要使用到大量的指标,常见类型如表所示。指标计算可以抽象总结出以下几个固有

2022-05-28 21:18:43 2146 3

原创 RPC 实战与核心原理-进阶篇笔记

文章目录RPC 的通信流程02 | 协议:怎么设计可扩展且向后兼容的协议?03 | 序列化:对象怎么在网络中传输?JSON 的序列化方式缺点:RPC 框架中如何选择序列化?需要注意哪些问题 ?04 | 网络通信:RPC框架在网络通信上更倾向于哪种网络IO模型?05 | 动态代理:面向接口编程,屏蔽RPC处理流程08 | 服务发现:到底是要 CP 还是 AP?为什么需要服务发现?基于 ZooKeeper 的服务发现(接口跟服务提供者 IP 之间的映射)ZooKeeper 的问题(强一致性)09 | 健康检测:

2022-05-28 11:31:53 1284

原创 基于用户行为的生物探针和智能验证码

文章目录生物探针无感认证生物探针的应用场景字符验证码的识别传统识别方法新型验证码的识别对抗黑产的方案通过历史事件统计,我们发现在互联网场景下,黑产的网络欺诈攻击大多发生在用户登录认证之后。因此,如何安全、有效且无伤用户体验进行用户身份验证就显得尤为关键和重要。如图5.1所示为身份认证的层次。第一阶段Something you know(只有你知道的信息):包括但不限于账户、密码、手机号、身份证信息。第二阶段Something you have(只有你拥有的物品):包括但不限于动态密码卡、IC 卡、

2022-05-26 22:06:16 678

原创 反欺诈体系与设备指纹

文章目录动态防控理念生物探针智能验证码生物探针和智能验证码的区别:风险态势感知系统风控核心组件设备指纹设备指纹的原理Android 设备指纹iOS 设备指纹Web 设备指纹设备ID 生成与恢复逻辑生成逻辑恢复逻辑动态防控理念生物探针通过采集终端的操作行为、传感器信息等数据综合建模,通过机器学习区分出操作业务的是自然人还是自动化工具。智能验证码一种常见的风控工具,本质上也是区分操作业务的是否为自然人。生物探针和智能验证码的区别:前者适用于全业务场景检测是否是机器,后者适用于特定场景对抗机器批

2022-05-24 23:08:46 729

原创 Redis 核心技术与实战-实践篇读书笔记

文章目录12 | 有一亿个 keys 要统计,应该用哪种集合?聚合统计排序统计场景:二值状态统计基数统计HyperLogLog 的内部实现(TODO)12 | 有一亿个 keys 要统计,应该用哪种集合?聚合统计当你需要对多个集合进行聚合计算时,Set 类型会是一个非常不错的选择。不过,我要提醒你一下,这里有一个潜在的风险。Set 的差集、并集和交集的计算复杂度较高,在数据量较大的情况下,如果直接执行这些计算,会导致 Redis 实例阻塞。所以,我给你分享一个小建议:你可以从主从集群中选择一个从库

2022-05-23 22:54:37 871

原创 算法-贪心(Java实现)

文章目录剑指 Offer II 019. 最多删除一个字符得到回文思路:剑指 Offer II 019. 最多删除一个字符得到回文给定一个非空字符串 s,请判断如果 最多 从字符串中删除一个字符能否得到一个回文字符串。https://leetcode.cn/problems/RQku0D/思路:(1)首先判断是不是回文,然后遍历字符串,判断删除每一个字符位置后是不是回文。时间复杂度 O(n)(2)class Solution { public boolean validPalindro

2022-05-21 10:41:19 179

原创 黑产的类型与武器库概览

文章目录垃圾注册薅羊毛黄牛/刷单众包炒信套利(感觉这里其实指的就是薅某个平台的钱)空包(感觉就像是所谓的走流程)洗钱黑产武器库虚假号码猫池(一种用于控制和管理 SIM 卡的设备)短信验证码接码平台手机 rom 后门代理 IP设备伪造工具改机工具多开工具、Xposed、Cydia Substrate、Frida、硬改 Android 开源操作系统、脱机挂备份恢复/抹机恢复---恢复后就又相当于一台新的设备啦~模拟器 (这个搞过 安卓开发 的都知道,夜神模拟器啥的)其他工具位置伪造工具(GPS等位置伪造)群控

2022-05-20 22:49:12 914

原创 算法-并查集(Java实现)

文章目录一级目录一级目录

2022-05-18 15:05:39 339

原创 自己实现 ls命令

实现代码如下:#include#include#include#include#include#include#include#include#include#include#include#include#define PARAM_NONE 0#define PARAM_A 1#define PARAM_L 2#define MAXROWLEN

2022-05-07 16:19:58 383

原创 算法- 排序(Java实现)

文章目录剑指 Offer II 074. 合并区间剑指 Offer II 074. 合并区间https://leetcode-cn.com/problems/SsGoHC/class Solution { public int[][] merge(int[][] intervals) { if (intervals == null) { return null; } int lens = intervals.length;

2022-05-03 20:41:59 431

原创 MYSQL 索引建立与失效

文章目录如何建立索引哪些情况下不适合建立索引有哪些索引失效场景(罗列了8种)索引失效分析工具:可以使用explain命令加在要分析的sql语句前面,在执行结果中查看key这一列的值,如果为NULL,说明没有使用索引。explain 语句的关键点以及ES分析语句性能的关键字如何建立索引MySQL高级之索引分析哪些情况下不适合建立索引唯一性差;频繁更新的字段不用(更新索引消耗);where中不用的字段;索引使用<>时,效果一般;有哪些索引失效场景(罗列了8种)or

2022-05-01 11:22:07 160

原创 Java反射机制探秘

文章目录相关实现有 AtomicIntegerFieldUpdater、AtomicLongFieldUpdater 和 AtomicReferenceFieldUpdater,利用它们可以原子化地更新对象的属性,这三个方法都是利用反射机制实现的,创建更新器的方法如下:

2022-05-01 10:59:16 421

原创 Flink 状态管理与容错

文章目录有状态计算使用外部存储会存在的问题?自己实现中间状态存储会存在的问题?以及如何解决?状态类型与应用状态应用场景有状态计算使用外部存储会存在的问题?频繁的网络 IO算子中间会存在 Blocking,资源利用率下降自己实现中间状态存储会存在的问题?以及如何解决?系统宕机,中间状态数据的丢失内存或者磁盘大小有限数据一致性解决:每隔一段时间刷新到磁盘或者外部存储介质上。状态类型与应用状态应用场景去重窗口计算的中间结果的存储机器学习,深度学习等历史数据获取

2022-04-25 00:46:24 209

原创 Java 内存模型

文章目录Java 内存模型如何保证线程安全?原子性可见性(主要)有序性(主要)底层如何实现的?参考:Java 内存模型说到底虚拟机玩的再花,要什么有什么,最终还是要和底层 RAM 进行交互的嘛所以就需要一套规范来定义 JVM 到底与底层如何交互。Java 内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样底层细节。只针对于共享变量各个线程有自己的工作内存,工作内存相互独立。线程对变量的所有操作(读取、赋值)都必须在工作内存中进行,而不能直接读写主

2022-04-20 17:16:56 110

原创 常考海量数据面试题

文章目录海量大数据处理面试题和思路总结10 道关于海量数据的面试题(附题解+方法总结)海量数据面试题总结

2022-04-17 23:05:19 227

原创 消息队列常考知识

文章目录为什么 Kafka 的 broker 上 topic 越多效率越慢?kafka中的 AR、ISR、LEO、HW 分别是什么阐述下 Kafka 中的领导者副本(Leader Replica)和追随者副本(Follower Replica)的区别问题一:kafka 的副本为什么之前不提供读服务?__consumer_offsets 是做什么用的?(TODO:并不完备)为什么 Kafka 的 broker 上 topic 越多效率越慢?因为当分区数激增的时候,Kafka 的顺序写入特性会被大大破坏从而

2022-04-17 16:08:50 2055

原创 常考算法实现题

文章目录实现 LRU实现 单例循环打印 AB使用 wait && notify使用 condition实现 LRUpublic class LRUCache { class DLinkedNode { int key; int value; DLinkedNode prev; DLinkedNode next; public DLinkedNode() { } p

2022-04-16 11:15:39 107

原创 算法-滑动窗口与前缀和算法

文章目录最长重复子数组思路1:DP思路2:滑动窗口(具体思路见题解)最长重复子数组https://leetcode-cn.com/problems/maximum-length-of-repeated-subarray/给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度 。思路1:DP// 动态规划class Solution { public int findLength(int[] nums1, int[] nums2) {

2022-04-16 10:19:58 260

原创 算法-二分查找(Java实现)

文章目录其他题型见:[剑指 offer 全记录之二分查找](https://blog.csdn.net/liushengxi_root/article/details/100857986)剑指 Offer II 069. 山峰数组的顶部其他题型见:剑指 offer 全记录之二分查找剑指 Offer II 069. 山峰数组的顶部https://leetcode-cn.com/problems/B1IidL/求波峰和波谷 class Solution { public int p

2022-04-14 21:48:48 473

原创 K-V 存储与Redis

文章目什么是缓存击穿、缓存穿透、缓存雪崩?缓存雪崩缓存穿透如何解决?缓存击穿如何解决?Redis 过期策略和内存淘汰策略什么是缓存击穿、缓存穿透、缓存雪崩?缓存雪崩指缓存中数据大批量到过期时间,而查询数据量巨大,请求都直接访问数据库,引起数据库压力过大甚至down机。解决其实很简单:让其到期时间均匀即可。或者设置热点数据永远不过期,有更新操作就更新缓存就好了(比如运维更新了首页商品,那你刷下缓存就完事了,不要设置过期时间),电商首页的数据也可以用这个操作,保险。缓存穿透缓存穿透是指缓

2022-04-13 12:18:55 1412

原创 算法- 数学(Java实现)

文章目录剑指 Offer 44. 数字序列中某一位的数字思路:剑指 Offer 44. 数字序列中某一位的数字https://leetcode-cn.com/problems/shu-zi-xu-lie-zhong-mou-yi-wei-de-shu-zi-lcof/思路:

2022-04-11 23:09:34 107

原创 Flink 常考面试题

这里写目录标题WaterMark 的理解exactly-once 的保证state 有几种状态参考WaterMark 的理解exactly-once 的保证state 有几种状态参考Flink面试题

2022-04-10 09:12:47 2131

原创 Spring 常用知识点

文章目录为什么说springboot中约定优于配置?常用注解Mybatis 分页插件为什么说springboot中约定优于配置?为什么说springboot中约定优于配置?常用注解Java 必须掌握的 12 种 Spring 常用注解!精进Spring—Spring常用注解【经典总结】Mybatis 分页插件...

2022-04-09 14:36:38 230

原创 Mysql 知识杂记

文章目录最左匹配原则explain 语句的关键点以及ES分析语句性能的关键字TypeKey 字段Extra字段为什么使用 B+ 树最左匹配原则MySQL建立联合索引时会遵守最左前缀匹配原则,即最左优先,在检索数据时从联合索引的最左边开始匹配。可以看到 a 的值是有顺序的,1,1,2,2,3,3,而b的值是没有顺序的1,2,1,4,1,2。但是我们又可发现 a 在等值的情况下,b 值又是按顺序排列的,但是这种顺序是相对的。这是因为MySQL创建联合索引的规则是首先会对联合索引的最左边第一个字段排序,在

2022-04-08 16:51:10 822

原创 服务如何做熔断,降级,限流?

文章目录基础概念降级(自身服务出现问题,降级)熔断(依赖的外部接口出现故障的情况时,断绝和外部接口的关系)限流我们是如何做的?降级熔断后端服务是通过 Hystrix 做的熔断与降级降级函数限流基础概念降级(自身服务出现问题,降级)降级也就是服务降级,当服务器压力剧增为了保证核心功能的可用性 ,而选择性的降低一些功能的可用性,或者直接关闭该功能。这就是典型的丢车保帅了。服务降级是从整个系统的负荷情况出发和考虑的,对某些负荷会比较高的情况,为了预防某些功能(业务场景)出现负荷过载或者响应慢的情况,在其内

2022-04-08 15:01:13 1182

原创 数据结构专练-链表

文章目录剑指 Offer 35. 复杂链表的复制思路:(1)方法一:回溯 + 哈希表(2)利用链表特性剑指 Offer 35. 复杂链表的复制https://leetcode-cn.com/problems/fu-za-lian-biao-de-fu-zhi-lcof/思路:(1)方法一:回溯 + 哈希表class Solution { Map<Node, Node> cachedNode = new HashMap<Node, Node>(); publ

2022-04-05 20:34:11 95

原创 Java 基础总结

文章目录一级目录一级目录public interface Flyable { void fly();}public class FlyAbility implements Flyable { @Override public void fly() { //... }}//省略Tweetable/TweetAbility/EggLayable/EggLayAbilitypublic class Ostrich implements Tweetable, EggLayable {//

2022-04-02 09:53:21 447

原创 动态规划之--背包问题基础专讲

文章目录01 背包完全背包01 背包完全背包

2022-04-01 13:45:18 263

原创 经典垃圾收集器以及ZGC实践

文章目录经典垃圾收集器CMS 老年代收集器(最短回收停顿时间为目标的收集器:因此使用的算法是 标记-清除)标记阶段需要存在一个一致性的视图:[三色标记](https://blog.csdn.net/liushengxi_root/article/details/122858901)优势劣势G1 收集器(Mixed GC模式,全堆收集)G1 收集器的运行流程优势劣势ZGC 收集器ZGC的运行流程着色指针---将信息存储在指针中的技术。读屏障优势劣势问题排查经典垃圾收集器标记-清除算法:CMS,标记-

2022-03-31 09:40:37 789

原创 Spring常考面试题总结

文章目录Spring的IoC理解依赖注入Spring的AOP理解spring 总览bean的生命周期Spring的IoC理解IOC,Inversion of Control,控制反转(也叫:依赖注入),指将对象的控制权转移给Spring框架,由 Spring 来负责控制对象的生命周期(比如创建、销毁)和对象间的依赖关系。最直观的表达就是,以前创建对象的时机和主动权都是由自己把控的,如果在一个对象中使用另外的对象,就必须主动通过new指令去创建依赖对象,使用完后还需要销毁(比如Connection等),

2022-03-29 13:21:00 358

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除