
Java
Yfeil
这个作者很懒,什么都没留下…
展开
-
Mybatis + SpringBoot 构建项目流程总结
【代码】Mybatis + SpringBoot 构建项目流程总结。原创 2024-08-24 10:30:30 · 233 阅读 · 0 评论 -
SpringBoot启动流程总结
所以想要了解清楚 SpringBoot 启动流程,相当于了解 SpringApplication 的 构造方法 和 run方法。原创 2024-08-24 10:30:06 · 265 阅读 · 0 评论 -
Atomic 原子类详解
原理:LongAdder在内部维护一个数组,当多个线程尝试同时修改时,会分散到不同的数组中进行更新。在获取结果时,将所有数组的值相加得到总和。缺点:如果计算总和期间有线程修改,此次修改可能不会计入这次计算,所以不适合需要精确计算的场景。优点:减少并发修改时的CAS竞争,高并发场景下性能优于AtomicLong。:带标志引用型,可用于避免ABA问题。原创 2024-08-24 10:29:43 · 347 阅读 · 0 评论 -
Java四种内存屏障详解,LoadLoad、LoadStore、StoreLoad、StoreStore
编译器和处理器可能会对指令进行重排以提高性能,但这种重排可能会导致其他线程看到不一致的状态。变量的读写操作前后会插入特定的内存屏障,这些屏障会禁止指令重排,从而保证了操作的顺序性。:当一条线程修改了一个变量的值,新值会立即被写入主内存,同时其他线程读取该变量时会从主内存中读取最新值,而不是使用线程缓存中的值。原创 2024-08-24 10:29:26 · 579 阅读 · 0 评论 -
三数取中公式思路
先假设有 x、y、z 三个代数再假设一个已知条件 x > y根据已知条件推断,y 不可能是最大值,最大值只会在 x 和 z 之间产生因此 min(x, z) 即可排除最大值但是 z 有可能小于 y,因此还需要排除最小值最终使用 max(y, min(x, z)) 即可得出中间值。原创 2024-08-24 10:28:41 · 202 阅读 · 0 评论 -
Redis实现数据强一致的思路
【代码】Redis实现数据强一致的思路。原创 2024-08-24 10:28:00 · 114 阅读 · 0 评论 -
CompletableFuture 类详解
等待 多个 或 任一 任务的完成。:开启异步任务,获取结果。:处理两个任务任一的结果。:处理两个任务的结果。原创 2024-08-23 00:45:30 · 264 阅读 · 0 评论 -
Java线程安全的集合类:Map、List、Set
原理还是所有操作都加同步块。原理是所有操作都加同步块。原创 2024-08-23 00:45:10 · 256 阅读 · 0 评论 -
整合 ELK stack 作为 SpringBoot 项目日志分析方案
启动项目,打印的 INFO 级别以上日志都会自动收集到 Elasticsearch 的 logstash-xxxx-xx-xx 索引内,使用 Kibana 创建 可视化、仪表盘,根据需求筛选展示即可。导入到 src/main/resources/logback-spring.xml 内。hosts 改成 Elasticsearch 实际ip,如果有密码,则取消注释并配置。配置文件放在:用户主目录/pipeline/logstash.conf。host里的IP改成 Logstash 实际的。原创 2024-08-23 00:42:49 · 414 阅读 · 0 评论 -
最简单易懂的三种排序算法:冒泡、选择、插入
选择一个待排序的元素,和已排序元素依次进行比较,把大的元素向后移动,遇到小的元素就插入到它后面。每次从未排序部分找到一个最小的元素,放到已排序部分的末尾。通过不断交换相邻的元素,将大的元素“浮”到数组的后面。时间复杂度:O(n^2)时间复杂度:O(n^2)时间复杂度:O(n^2)原创 2024-08-23 00:42:21 · 193 阅读 · 0 评论 -
常见的排序算法:冒泡、快排、归并、计数
每种排序算法各有特点,冒泡排序简单但效率较低,快速排序效率高但需要额外的存储空间,归并排序则是效率和稳定性都比较好的排序算法。原创 2024-08-23 00:42:00 · 317 阅读 · 0 评论 -
Redis 结合 Docker 搭建哨兵+主从,并整合SpringBoot
下载后,把redis-7.2.5.tar.gz\redis-7.2.5.tar\redis-7.2.5\里的。,主节点新数据更新到从节点需要时间,这段时间会出现数据不一致。由于docker直接拉取运行了,所以需要提前准备配置文件。cd 到 redis-sentinel 目录,执行。cd 到 redis 目录,执行。cd 到 redis 目录,执行。结构如上图所示,准备6个服务器。不建议配,除非主节点压力很大。原创 2024-08-23 00:41:06 · 393 阅读 · 0 评论 -
Redis 结合 Docker 搭建集群,并整合SpringBoot
下载后,把redis-7.2.5.tar.gz\redis-7.2.5.tar\redis-7.2.5\里的。,主节点新数据更新到从节点需要时间,这段时间会出现数据不一致。由于docker直接拉取运行了,所以需要提前准备配置文件。cd 到 redis-cluster 目录,执行。输入用于分配哈希槽的节点,可以直接输入。结构如上图所示,准备6个服务器。不建议配,除非主节点压力很大。原创 2024-08-23 00:40:35 · 718 阅读 · 0 评论 -
ShardingSphere + Mysql,实现分库分表、读写分离,并整合 SpringBoot
rules 配置和之前一样,主要区别在于 dataSources 下的配置变了。默认URL:jdbc:mysql://127.0.0.1:3307/demo。默认URL:jdbc:mysql://127.0.0.1:3307/demo。平时咋操作数据库现在也一样,也可以引入 Mybatis,可以无缝连接。可以直接像连接普通Mysql数据库一样使用了。可以直接像连接普通Mysql数据库一样使用了。,并将其放入 ext-lib 目录。,并将其放入 ext-lib 目录。YAML 复制 全屏。原创 2024-08-23 00:37:37 · 924 阅读 · 0 评论 -
常用设计模式总结,附完整图解
属性和方法前加上(+、-、#、留空)分别代表:公开(public)、私有(private)、保护(protected)、缺省(default)方法括号内为参数类型,冒号后为返回值类型下划线表示 静态(static),斜体表示 抽象(abstract)原创 2024-08-23 00:36:33 · 1494 阅读 · 0 评论 -
VisualVM v2.1.8汉化预览版
下载地址:v2.1.8-1预览版 · Yfeil/VisualVM汉化 - Gitee.com原创 2024-08-22 10:41:13 · 925 阅读 · 0 评论 -
JVM内部结构
加载类的字节码,在方法区创建对应的数据结构(字段、方法、接口等),在堆中生成一个对应的 java.lang.Class 实例。:触发父类初始化,执行()方法,执行静态代码块,给静态变量、常量=字面量赋初始值。CMS的上位替代,稳定性有待观察。原创 2024-08-22 10:39:47 · 341 阅读 · 0 评论 -
Java Spring Redis 如何向Set中添加List?
调用list.toArray方法将list转成数组,再使用add方法参数传入数组,即可批量添加。原创 2024-08-22 10:18:25 · 192 阅读 · 0 评论 -
Feign调用远程服务时传递Cookie信息
【代码】Feign调用远程服务时传递Cookie信息。原创 2024-08-22 10:17:14 · 343 阅读 · 0 评论 -
SpringBoot 支付宝付款接口类、支付异步回调函数模板
【代码】SpringBoot 支付宝付款接口类、支付异步回调函数模板。原创 2024-08-22 10:16:37 · 250 阅读 · 0 评论 -
MyBatis Java 和 Mysql数据库 数据类型对应表
MyBatis 在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时, 都会用类型处理器将获取到的值以合适的方式转换成 Java 类型。下表描述了一些默认的类型处理器。提示 从 3.4.5 开始,MyBatis 默认支持 JSR-310(日期和时间 API)。原创 2024-08-22 10:14:59 · 231 阅读 · 0 评论 -
Java取当前时间的一分钟后,并格式化输出
format(LocalDateTime) 使用格式化程序对LocalDateTime进行格式化,返回String字符串。LocalDateTime.now(ZoneId.of("Asia/Shanghai")) 获取当前时间(以指定时区)DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") 获取格式化程序。.plusMinutes(分钟) 加指定分钟。原创 2024-08-22 10:14:03 · 241 阅读 · 0 评论 -
IDEA设置Maven阿里镜像仓库
IDEA设置Maven阿里镜像仓库原创 2023-03-06 11:32:49 · 1969 阅读 · 1 评论