- 博客(754)
- 资源 (33)
- 收藏
- 关注

原创 Java 知识点总结
Java 基础1、Object 对象的方法有哪些?分别有什么作用?该什么场景用?2、Integer 的常量缓存池3、Java 特性?什么是多态?举个例子Object 的 hashcode 方法重写了,equals 方法要不要改?4、重载重写的区别?Object 类中的方法equalshashcode toString,clone, notify() notif......
2019-06-28 16:20:11
857
原创 数据库隔离级别RC,什么场景会有间隙锁?
在RC(Read Committed,读已提交)隔离级别下,通常不会有间隙锁,因为间隙锁主要是为了解决可重复读(Repeatable Read,RR)隔离级别下的幻读问题而引入的。然而,在某些特殊场景下,RC级别下也可能出现类似间隙锁的行为,但这通常不是通过间隙锁直接实现的,而是可能与MySQL的锁机制、索引使用、以及特定版本的优化策略有关。
2024-07-15 11:11:58
1317
原创 支付宝是如何解决热点库存扣减问题的?
这个是典型的秒杀场景,秒杀系统相对简单的库存扣减问题,比如春节红包雨活动,同一个资金池子有数亿人抢红包,比如阿里巴巴针对红包活动150万QPS的峰值压力,应该如何设计库存扣减方案呢?采用分桶设计,将库存均匀分发到 N 个 Redis 分桶中。通过 Incr 无锁的方式,高效扣减库存。每个桶库存消耗不均,会导致实际还有库存,但是有部分用户无法扣减库存,引发客诉。上面两种情况都会满足。
2024-01-08 15:05:19
887
原创 解决 macbook 合盖耗电问题
按住这三个按键 7 秒钟,然后在不松开这些按键的情况下按住电源按钮。如果 Mac 处于开机状态,它将在你按住这些按键时关机。通过重置 SMC,可以解决某些与电源、电池、风扇和其他功能相关的问题。本文仅适用于配备 Intel 处理器的 Mac 电脑。查看“活动监视器->能耗->防止睡眠”列表下是否存在应用禁用了系统睡眠情况,如下图所示。在内建键盘上,按住以下所有按键。Mac 可能会开机。若存在此情况请进入应用设置关闭此选项或者功能;
2024-01-08 14:58:36
5091
原创 Excel vlookup 如何使用
功能:在表格的首列查找指定的数值,并返回表格当前行中指定列处的数值。结构:=VLOOKUP(查找值,查找区域,列序数,匹配条件)解释:=VLOOKUP(找谁,在哪里找,第几列,0或1)
2023-11-16 19:53:21
1071
原创 Chrome 浏览器经常卡死问题解决
mac 后台有很多 google chrome helper 线程并且内存占用较高一直怀疑是插件的锅 其实并不是-0-查看是哪个网页,哪个插件占用内存chrome 更多工具 -> 任务管理器。
2023-11-15 15:20:01
2706
原创 MySQL主从复制
半同步的问题是因为等待ACK的点是Commit之后,此时Master已经完成数据变更,用户已经可以看到最新数据,当Binlog还未同步到Slave时,发生主从切换,那么此时从库是没有这个最新数据的,用户看到的是老数据。增强半同步是在MySQL 5.7引入,其实半同步可以看成是一个过渡功能,因为默认的配置就是增强半同步,所以,大家一般说的半同步复制其实就是增强的半同步复制,也就是无损复制。开启增强半同步时先开启了主库后开启的从库,导致主库开启后指定数量从库开启前一段时间间隙不满足增强半同步。
2023-10-24 10:55:04
425
原创 解决无法访问 Github 问题
FastGithub 是 GitHub 访问加速神器,主要解决 GitHub 打不开、用户头像无法加载、releases 无法上传下载、git-clone、git-pull、git-push 失败等一系列问题。2.2 下载项目下载地址(比较慢):https://github.com/dotnetcore/fastgithub/releases网盘下载地址(推荐):https://pan.quark.cn/s/eca59830b2612.3 安装及使用解压下载的zip包, 将文件夹放到合适位置。
2023-08-18 22:15:50
1179
1
原创 Redis原理简述
Redis原理简述Redis 有哪些特性1. 特性key-value 型内存数据库单线程——原子化操作支持lua脚本发布与订阅可持久化逐出与过期……2. 持久化RDB:经过压缩的二进制文件;fork子进程进行操作AOF:保存所有写命令;先写缓存再同步至AOF文件;文件过大时会触发AOF重写3. 过期:key到达了TTL时间惰性删除 - 读、写操作前判断定期删除 - 在定时事件中删除抽样删除:配置为定期删除时,每次只选择一部分key来判断是否已经过期4. 逐出:执
2023-08-13 15:43:26
587
1
原创 RocketMQ 延迟消息
RocketMQ 延迟消息什么是延迟消息RocketMQ 延迟消息是指,生产者发送消息给消费者消息,消费者需要等待一段时间后才能消费到。使用场景用户下单之后,15分钟未支付,对支付账单进行提醒或者关单处理。RocketMQ 开源版本的消息不支持任意时间精度,只支持5s 10s 1m等等。Broker 如何处理延迟消息消息投递如下:生产者发送一个延迟消息到一个 topic 中Broker 判断是个延迟消息后,将消息暂存Broker 通过延迟服务, 先检查消息是否过期,如果到期将消息投递
2023-08-10 13:28:14
1475
1
原创 面试官: select * 与 select xxx,xxx 性能问题
select * 与 select xxx,xxx 性能问题SQLsql 1:SELECT * FROM TABLEsql 2:SELECT column1, colum2, column3, etc. FROM TABLE为啥说 sql 2 比 sql 1 好一些字段多,不需要多字段会增加数据传输使劲和网络开销。用 SELECT * 数据库需要解析更多的对象、字段、权限、属性等相关内容,如果 SQL 复杂,硬解码比较多会对数据库造成沉重的负担。增大网络开销;* 有时会误带上如l
2023-08-08 20:31:22
368
原创 面试官:MySQL 存储数据过多,为啥会变慢?
B 树也叫 B- 树。B+树与B树,这两种数据结构既有相似之处,也有他们的区别。所有叶子节点都在同一层级;除了根节点以外的其他节点包含的key值数量在[m/2]-1到m-1的数据范围;除了根节点和叶子节点外,所有中间节点至少有m/2个孩子节点;根节点如果不是叶子节点的话,它必须包含至少2个孩子节点;拥有n-1个key值非叶子节点必须有n个孩子节点;一个节点的所有key值必须是升序排序的;B+树包含2种类型的节点:内部节点(也称索引节点)和叶子节点。
2023-07-26 12:55:51
273
原创 字节跳动-抖音支付大量招聘实习生
要求:2024年6月毕业且有时间来实习(大于3个月)的在校学生(本三,研二),随着业务量持续猛增,各种技术挑战也不断出现,十万级qps热点账户问题、机房级容灾恢复问题、异地多活单元化架构演进,各种挑战等你来共同攻克。
2023-07-18 11:41:05
282
原创 GO 类型
使⽤关键字 var 定义变量,⾃动初始化为零值。如果提供初始化值,可省略变量类型,由编译器⾃动推断。var x int在函数内部,可⽤更简略的 “:=” ⽅式定义变量。x := 123 // 注意检查,是定义新局部变量,还是修改全局变量。该⽅式容易造成错误。多变量赋值时,先计算所有相关值,然后再从左到右依次赋值。注意重新赋值与定义新同名变量的区别s := "abc"s, y := "hello", 20 // 重新赋值: 与前 s 在同⼀层次的代码块中,且有新的变量被定义。
2023-06-23 18:26:26
909
原创 Java 和 GO 中 switch 区别
在上图中,根据输入的月份month判断对应的季节,已有的case可以覆盖正常的输入,即数字在1-12的情况,但如果有异常输入的场景,假如输入是小于0或者大于12的情况,现有case无法覆盖这些场景,会使得在异常或预期之外的场景逃逸。switch语句根据case执行相应的语句,从上至下依次判断直到匹配,但可能存在无法匹配的case,因此需要有default覆盖这些无法匹配的case。可以使用default覆盖switch中无法匹配的case,即异常或预期之外的情况。
2023-05-06 19:50:08
822
原创 GO Select 使用
其中注册的case放到scase中。scase保存有当前case操作的hchan。pollorder指向的是乱序后的scase序号。lockorder中将要保存的是每个case对应的hchan的地址。select最后是scase表示select中只保存了一个case的空间,说明select只是个头部,select后面保存了所有的scase,这段Scases的大小就是tcase。如果回收当前不执行的case所在。执行结果:整个线程会阻塞。
2023-05-03 14:36:18
642
原创 Go 优雅关停
停止对外提供服务完成已经接受/进行中的请求保存需要保存的数据Flush I/O缓冲区其他清理可参考文档:https://mp.weixin.qq.com/s/aoJ5vBvHnXXdCiBLm18bXw。
2023-04-28 10:04:16
205
原创 火焰图怎么看
这个调用图包含了更多的信息,而且可视化的图像能让我们更清楚地理解整个应用程序的全貌。图中每个方框对应一个函数,方框越大代表执行的时间越久(包括它调用的子函数执行时间,但并不是正比的关系);方框之间的箭头代表着调用关系,箭头上的数字代表被调用函数的执行时间。火焰图的深度代表了函数的调用栈,火焰图最深处就是正在执行的函数,上方的都是它的父函数,可以通过火焰图的深度分析函数的调用链;火焰图的宽度代表了函数的CPU占用率,宽度越大,表示CPU占用越多,可以通过火焰图的宽度分析函数的CPU耗时情况。
2023-04-26 19:59:48
1924
原创 Thrift IDL 中的 required、optional、default 问题
response新增required。上游更新,下游没更新,没问题。上游没更新,下游更新,没问题。上游没更新,下游更新,报错。上游更新,下游没更新,报错。
2023-02-03 14:13:12
1749
原创 Go map 实现原理
当通过语法 for k, v := range h {} 遍历map时,Go会在编译期间调用 mapaccessK。遍历逻辑还是和mapaccess1一样,该函数返回两个指针,分别表示键和值的地址。该函数大部分逻辑处理和mapaccess1一样,不过返回的是一个value指针和bool,bool用于指示该key是否存在。总的来说,Go 中的 map 结构是个哈希表,不是红黑树。Go 不能往将 nil 数据写入到 map 中,会报错。插入逻辑,还有个寻找溢出桶的逻辑。, 但是却可以读取一个。
2023-01-18 10:46:34
657
原创 Go golangci-lint安裝及使用
安裝 InstallMac範例環境:macOS Big SurGo 1.16在macOS可使用Homebrew安裝,在終端機輸入brew install golangci-lint開始安裝。$ brew install golangci-lint...==> Installing dependencies for golangci-lint: go==> Installing golangci-lint dependency: go==> Pouring go--1.
2022-12-19 15:25:32
1924
原创 Goland Unresolved dependency问题解决
解决办法是在 Goland 设置里将 Go Modules 开启即可。每次新建项目都会遇到这个提示,明明安装依赖包了, 能用,就是爆红。
2022-09-19 21:13:28
3226
1
原创 Go-函数作为参数传递
Go-函数作为参数传递编码过程中业务需要将一个函数,作为参数传递到函数内部。Go 语言的匿名函数是一个闭包(Closure)什么是闭包闭包指的是引用了自由变量的函数(未绑定到特定对象的变量,通常在匿名函数外定义),被引用的自由变量将和这个函数一同存在。f := func() { var i int = 1 fmt.Printf("i, j: %d, %d\n", i, j)}即使创造它的上下文环境也不会被释放(比如传递到其他函数或对象中)。或者通俗点说,「闭」的意思是「封闭外
2022-09-02 08:04:31
814
原创 Go 实现二分查找算法
二分查找算法简介:二分查找算法对有序数组有效,二分搜索是查找数组中的目标值。给定一个有序数组,查找第一个等于 target 的下标,找不到返回 -1.
2022-08-13 11:50:59
396
原创 Kitex 重试机制
Kitex 重试机制什么时候会重试?kitex 狂简目前有如下三种重试机制:超时重试Backup Request(一段时间内未收到响应,进行重试)连接失败重试框架目前有三类重试:超时重试、Backup Request,建连失败重试(默认)。其中建连失败是网络层面问题,由于请求未发出,框架会默认重试,业务无需关注。超时重试超时异常由于网络抖动,下游负载高或者 GC 等导致 GC 卡顿导致超时。如何设置重试策略?异常一般有如下三种:业务自定义异常超时异常非超时框架类异常业务判
2022-07-06 16:21:13
364
原创 Java replaceAll 遇到的坑
JSONObject json = new JSONObject(); String contentStr ="通道交易预警监控日志\n"+"配置ID:@配置ID@\n"+"限额预警值:@限额预警值@\n"+"限笔预警值:@限笔预警值@\n"+"机构名称:@机构名称@\n"+"日累计笔数:@日累计笔数@\n"+"发卡行:@发卡行@\n"+"日累计金额:@日累计金额@\n"+"时间:@LogTime@" ; // String c......
2022-07-06 16:05:29
621
原创 SpringBoot 是如何创建 Bean 的
这是我参与8月更文挑战的第9天,活动详情查看:8月更文挑战Spring源码中我已经知道的两种上下文: ClassPathXmlApplicationContext、AnnotationConfigApplicationContext我们知道 Spring 启动的核心过程是通过 ApplicationContext#refresh 方法,加载 BeanDefinition 在 obtainFreshBeanFactory 方法中实现。那么 SpringBoot 是在什么时候加载 BeanDefiniti
2022-06-04 11:28:15
767
1
原创 Go-Redis 中间件
本文基于 redis v6 中 WrapProcess 方法,可以对 redis 前后做操作。https://github.com/go-redis/redis/blob/v6.15.9/redis.goGo Redis 中间件redis.go 中WrapProcess&修改Process方法 支持自己在 redis 操作前后,对操作前后进行处理,类似 Java 中的切片。func (c *baseClient) WrapProcess(fn func(oldProcess func(c
2022-05-29 21:57:32
1653
2
原创 go-echarts 库使用
go-echartschart 包是一个简单的本地图表库,支持时间序列和连续折线。 思数据可视化第三方库。安装$ go get -u github.com/go-echarts/go-echarts/...# 因为 gomod 的特殊的版本管理方式,使用 go get 方式并不能直接使用 v2 go-echarts ????# 不过可以通过以下方法使用新版本...$ cd $go-echarts-project$ mkdir v2 && mv charts component
2022-05-09 22:23:54
1371
原创 如何进行系统性能优化
前言不战而屈人之兵,善之善者也性能优化的第一原则是,通过测试,日志,profiling 分析出哪有问题,然后有的放失。性能优化时持久战,在深入理解业务后,结合系统响应,系统吞吐,系统并发量指标,对系统进行优化一般来说,一个系统有性能问题: 有可能是一下几方面: CPU, 内存, IO(磁盘IO,网络IO).性能优化的目标是追求合适的性价比。性能优化前,需要深入的理解业务,代码是为了业务服务,服务于最终用户。性能优化,可以在需求阶段,设计阶段,实现阶段。高手总是花80%时间用来思考, 2
2022-05-09 21:45:23
2310
原创 查找某个分组后的第一条,不同 mysql 版本问题
查找某个分组后的第一条,不同 mysql 版本问题create table `shop` ( `id` int (10) PRIMARY KEY, `shop_name` varchar (100), `item_name` varchar (100), `price` int (10)); insert into `shop` (`id`, `shop_name`, `item_name`,`price`) values('1','小卖部','酱油','12');
2022-04-12 15:25:57
167
Python机器学习经典实例
2018-05-11
DbVisualizer Pro 9.2.x
2017-09-06
hive-site.xml 这是一份我本地配置的好用的
2017-09-04
Hadoop实战-陆嘉恒(高清完整版).pdf
2017-08-31
神经网络原理 有目录
2017-03-27
hadoop 虚拟机 连接 dll
2017-03-14
hadoop-eclipse-plugin-2.7.0.jar
2017-03-14
微信公众平台应用开发:方法、技巧与案例
2015-08-09
谭浩强《C++面向对象程序设计》
2015-04-17
人工智能教程
2014-04-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人