- 博客(46)
- 收藏
- 关注
原创 认识一位新朋友---数据库自增主键ID
在mysql中,自增主键是通过AUTO_INCREMENT实现的,其底层机制主要依赖于Innodb存储引擎的特性。所以innodb 的autoinc是非事务安全的,也就是说,在事务中使用insert 后回滚,自增id也不会回退。如果表被重启或者事务回滚,autoinc_val会被重新加载到内存中,可能导致id不连续。当插入一条记录的时候,如果没有显示指定该字段的值,则由数据库自动分配一个递增的数值。在高并发环境下,多个线程通过是插入数据,会出现ID冲突。插入时,先获取这个值,然后加1,作为新的ID。
2025-08-30 20:55:33
178
原创 每k个节点一组反转链表
输入:1->2->3->4->5->6->7,k = 3。每k个节点一组反转链表,最后节点不足k个的,保持不变。输出:3->2->1->6->5->4->7。将反转后的组连接到前一部分。使用虚拟头节点方便操作。每次处理一组k个节点。
2025-08-30 17:12:34
43
原创 不使用if else ,实现石头剪刀布
定义一个胜负表:int[][] win = {{0, -1, 1}, {1, 0, -1}, {-1, 1, 0}};定义一个二维数组来表示胜负关系,然后根据玩家的选择直接返回结果。将剪刀 石头 布分别用数字0,1,2表示。
2025-08-30 15:45:53
45
原创 有五个文件,每个文件里面有n行,用最快的速度读取所有文件中的数字并输出top50
这个函数不是一次性将整个文件加载到内存的,而是逐行读取的,每次只处理一行,并将数字添加到numbers列表,因此,它不会像File.readAllLines()或File.readAllBytes()那样一次性加载整个文件到内存。内存占用高,如果文件有上亿个整数,ArrayList会占用大量内存,解决方法:流式处理+最小堆维护Top50, 避免存储所有数字。使用最小堆动态维护最大的50个数字,而不是把数字都存起来,这样即使文件很大,也能高效处理。但是这个读取方法,依然存在缺点,尤其是面对GB级别。
2025-08-30 15:01:25
87
原创 JAVA阻塞队列
阻塞队列(Blocking Queue)是一种线程安全的队列结构,它在队列为空时阻塞获取操作,在队列满时阻塞插入操作。Java 提供了多种现成的阻塞队列实现,如 ArrayBlockingQueue、LinkedBlockingQueue, 下面使用ArrayBlockingQueue。
2025-08-29 13:06:02
109
原创 cookie,session,token之间有什么关系
http起初设计是无状态的,后来需要让请求和请求之间建立起有状态的联系,所以cookie应运而生,后面又有了session,token,但是最初我们想要解决的是,状态在哪里呢,要么在服务端,要么在客户端再专业一点描述:HTTP 协议最初是无状态的,这意味着服务器无法自动记住用户的状态。为了在多个请求之间建立有状态的联系,Cookie 应运而生,它将部分状态信息存储在客户端。随后,为了解决 Cookie 的安全性和扩展性问题,引入了 Session,它将状态信息存储在服务端。
2025-08-24 19:56:12
497
原创 Sentinel相关记录
在这里插入代码片@Component@OverrideR error = R.error(500, "服务不可用,请稍后再试!
2025-08-23 17:40:01
415
原创 OpenFeign相关记录
RestTemplate 是 Spring 框架提供的一个用于简化 HTTP 请求的客户端类,它封装了底层的 HTTP 请求逻辑,使得开发者可以通过面向对象的方式调用 RESTful API。虽然 RestTemplate 已被官方标记为 过时(deprecated),但在很多遗留项目中仍然广泛使用。它是基于 Reactor 的非阻塞、响应式客户端,性能更好,更现代。
2025-08-23 14:10:08
185
原创 MyBatis SqlCommand+MethodSignature源码探究
当调用 Mapper 接口的方法时,动态代理会拦截这个调用,并根据方法签名和配置,将请求交给 MyBatis 的 SQL 执行器(SqlSession)来完成数据库操作,用于解析接口方法的签名,主要作用是:解析并保存当前方法的返回类型,参数信息,是否为集合,是否使用@MapKey等元数据信息,以便后续在sql映射中使用这些信息进行参数绑定和结果映射。前面说了sqlcommand,MethodSignature等等,有了这两个,最终会执行下面这个方法PlainMethodInvoker.execute()
2025-08-16 22:43:03
221
原创 Mybatis之配置文件中节点解析-1
读取settings节点,解析,并返回一个properties对象,拿到settings中所配置的值,给configuration里面的属性。这种情况,properties里面的配置优先级更高,会覆盖子节点里面的相同key的配置项。
2025-08-16 10:52:42
247
原创 浅谈OAuth
授权服务器:授权客户端访问由资源服务器暴露的用户资源的应用程序,当授权服务器决定授权客户端以用户名义访问资源时,他会发出一个令牌。客户端:以用户名义访问用户所拥有的资源的应用程序,客户端使用客户端ID和客户端密钥来标识自己,客户端在发出请求时需要自己的凭据来标识自己。客户端将用户重定向到需要进行身份验证的授权服务器端点,这里其实是用户和授权服务器交互,用户不会向客户端应用程序发送凭据。用户:拥有由资源服务器暴露的资源的个体,用户通常有一个用户名和密码,他们用用户名和密码来标识自己。3.调用受保护的资源。
2025-08-14 09:51:39
224
原创 五分钟玩转Docker
进入容器内部修改了nginx的index.html, 后面可以使用外部挂载的方式,直接在主机下创建一个index.html. 进行修改即可。浏览器输入公网IP, 回车。
2025-08-13 11:22:12
306
原创 一个不恰当数据结构引发的问题
kafka+storm,问题是storm侧出现Timeout of 60000ms expired before the position for partition xxx could be determined, Kafka 消费者(Spout)无法获取到某个 Kafka 分区(topic1)的 offset 位置。
2025-08-07 14:40:02
263
原创 Kakfa开启幂等性+At Least Once保证分区内数据一致性
初始化事务后,生产者就会使用beginTransaction()启动事务,该方法会验证事务是否已经被初始化,以及是否存在存活的事务。
2025-08-04 10:16:11
131
原创 SQLServe---- Practice 001
张三 90 95 87。李四 98 85 90。张三 语文 95。张三 数学 96。李四 语文 90。李四 数学 76。王五 语文 89。王五 数学 88。name 语文 数学 英语。
2025-08-02 21:07:28
174
原创 初步探究浏览器--服务器--渲染
这只是简化版,实际中还有更多细节,比如处理 HTTPS、设置 Cookie、添加 User-Agent 等。curl_easy_perform() 会自动构造并发送 HTTP 请求。CURLOPT_HTTPGET 指定了使用 GET 方法。CURLOPT_URL 设置了 URL。
2025-08-02 16:39:14
202
原创 MySQL索引优化
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档MySQL索引优化前言一、索引分类二、适合创建索引的情况三、不适合创建索引的情况四、单表使用索引常见的索引失效前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、索引分类单值索引:指的是一个索引只包含单个列,一个表可以有多个单列索引唯一索引:索引列的值必须唯一,.
2022-03-23 15:17:58
1347
原创 说一说MySQL的binlog日志
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档说一说MySQL的binlog日志一、binlog日志是什么?一、binlog日志是什么?不管是用哪一种存储引擎,在server层都可以开启binlog日志功能,他会记录所有的逻辑操作,并且是采用追加写的形式,将写操作命令,记录在一个二进制文件中,因此binlog日志通常用语恢复数据,或者是主从复制,默认保存的位置是:/var/lib/mysql目录中。...
2022-03-23 14:48:59
617
原创 Linux中[ERROR] --initialize specified but the data directory has files in it. Aborting.
Linux中[ERROR] --initialize specified but the data directory has files in it. Aborting.:问题描述:Linux中安装mysql,由于之前安装过,卸载过,卸载的不干净,再次安装,,在进行初始化密码的时候,出现了以下错误2021-11-23T02:08:16.247240Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use
2021-11-23 10:27:18
8634
1
原创 自定义使用javaAPI进行文件的解压缩
使用javaAPI进行文件的解压缩前言二、代码前言二、代码代码如下(示例):package com.atguigu.mr.test;import static org.junit.Assert.*;import java.io.IOException;import java.io.InputStream;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FSDataInputStream;
2021-11-22 11:00:24
831
原创 Zookeeper集群无法启动的原因分析
Zookeeper集群无法启动的原因分析:centos7上搭建三台zookeeper,相关文件配置没有问题问题描述:[atguigu@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfgStarting zookeeper ... STARTED[atg
2021-11-21 10:23:27
2646
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人