- 博客(1273)
- 收藏
- 关注
转载 mybatis条件判断及动态sql的简单拓展
列表查询中,有时需要对某些字段做特殊的处理查询, 例: 对数值字段进行特殊处理查询(>、<、>=、<=、!=), 对某些文本字段的查询做特殊处理..., 我们可以巧用占位符来实现这些处理。若文本字段中含有某些特殊字符, 则对这个字段进行特殊处理, 例: 若某些字段值中间含有空格(或别的字符), 则对此字段用空格切割后进行范围查询;以if标签为例,if标签类似于 Java 中的 if 语句, 是mybatis中最常用的判断标签。在MyBatis中,# 和 $ 是两种不同的占位符,用于在SQL语句中插入参数。
2025-05-16 12:33:07
12
原创 微信运动步数打开详细方法步骤,实用教程
进入「设置」→「隐私」→「运动与健身」,检查微信权限是否在允许列表中。连接智能手环/手表(如华为GT系列、小米手环),在微信运动「数据来源」中勾选设备,实现双端数据同步。更新路径:微信「我」→「设置」→「关于微信」→「检查更新」。首次点击「运动」时,系统会弹出权限申请,确认后自动跳转至微信运动主页。进入「步数排行榜」→长按目标好友头像→选择「不与他排行」,同步开启「加入排行榜」开关可随时恢复。若未显示「运动」选项,需先通过方法一启用。:在「微信运动」设置中开启「使用移动网络改善定位」,确保数据传输安全。
2025-05-16 12:33:07
791
转载 Java简单易懂的JSON框架
JSON反序列化使用递归方式来解析JSON字符串,不使用任何第三方JAR包,只使用JAVA的反射来创建对象(必须要有无参构造器),取值赋值,编写反射缓存来提升性能。(不支持高版本JDK1.8以上的日期类型,如LocalDate,LocalDateTime,需要你修改源码JsonString类来支持)源码:https://files.cnblogs.com/files/blogs/824473/ZJson-20250512-src.zip?开源不易,需要鼓励。简单调用,容易理解,可扩展,可自定义。
2025-05-16 08:02:00
10
原创 我的订单查看全部订单 步骤很详细
→ 【导出账单】→ 选择用途(如“个人对账”)→ 输入邮箱地址 → 验证支付密码 → 接收含Excel/CSV附件的邮件。打开微信 → 底部导航栏点击【我】→ 选择【服务】(旧版称“支付”)→ 点击右上角【钱包】→ 进入【账单】。微信首页 → 右上角搜索图标 → 输入“微信支付” → 关注公众号 → 点击【我的账单】→ 【进入账单】。登录微信电脑版 → 左侧菜单栏【三】→ 【支付】→ 【钱包】→ 【账单】。:进入【设置】→ 【通用】→ 【存储空间】→ 清理账单缓存,避免数据冗余。
2025-05-15 15:16:27
660
原创 微信团队自助工具使用人工解封/申诉辅助验证过程 真的实用
若遇复杂情况,建议通过「腾讯客服」小程序提交工单,或访问微信官方网站(weixin.qq.com)获取最新政策。若已退出账号,可通过「微信安全中心」公众号菜单「我需要」→「账号自助解封」发起申请。路径:微信登录页面→「更多」→「微信安全中心」→「找回账号密码」→「申诉找回」。:使用账号常登录的设备(手机/电脑)及常用网络环境,避免异地登录触发二次验证。:手写《账号使用承诺书》,承诺遵守微信规则,需包含姓名、身份证号、日期及签名。:通常显示「该账号被限制登录,可申请解除限制」,可通过自助工具解封。
2025-05-15 15:16:27
3126
转载 MybatisPlus不好用?帅小伙一气之下写了个MybatisPlusPro
具体来说,该类中包含了五个基本 HTTP 操作(POST, GET),通过不同参数和请求方式对实体对象进行 CRUD 操作,即添加(insert)、删除(delete)、修改(update)、查询(getById)、存储(save)、列表查询(list)、分页查询(page)、统计数量(count)。需要注意的是,该控制器只是一个模板,实际使用时需要继承该控制器并传入相应的 Service 类作为泛型 S 的参数,并实现具体的 CRUD 方法。方法的泛型表示,可以接受任意类型的参数。话不多说,直接开始吧!
2025-05-15 15:16:27
4
转载 ShardingSphere + Mysql,实现分库分表、读写分离,并整合 SpringBoot
请下载 mysql-connector-java-5.1.49.jar 或者 mysql-connector-java-8.0.11.jar,并将其放入 ext-lib 目录。请下载 mysql-connector-java-5.1.49.jar 或者 mysql-connector-java-8.0.11.jar,并将其放入 ext-lib 目录。Mysql 8.4.0 结合 Docker 搭建GTID主从复制,以及传统主从复制 - Yfeil - 博客园 (cnblogs.com)
2025-05-15 07:04:41
10
转载 Intellij插件之调试停止生命周期
调试会话由 XDebugSession 管理,而 XDebugSession 会话绑定了一个 XDebugProcess,XDebugProcess 绑定一个 processHandler,所以当 processHandler 销毁时 XDebugSession 也就销毁了。XDebugSession 初始化,初始化时对 XDebugProcess 中的 processHandler 添加了一个监听,当 processHandler 触发了 processTerminated 事件将会被广播回调。
2025-05-14 13:58:15
10
转载 再见了SpringBoot,后端AI已成气候!
是指运行一段具有特定功能的代码块的行为,以增强其处理能力,实现更复杂的任务,使大模型能够集成外部工具和资源,提升交互性和实用性。AI大模型技术实战—— Transformer 架构的 核心原理、应用 Fine-tuning 技术,精准微调AI大模型,!制造、医疗、金融等各行业都在加速AI应用落地,未来企业更看重能用AI大模型技术重构业务流的技术人。老师们将大模型技术原理讲透的同时,还将丰富的商业化AI应用项目无偿分享,帮大家快速打通。课程开班58期,已为20000+学员服务,口碑爆棚,从!
2025-05-14 10:02:09
7
转载 redis + AOP + 自定义注解实现接口限流
滑动窗口算法通过一个固定大小的滑动窗口来模拟流量,当流量进入滑动窗口时,会统计窗口内流量的数量。令牌桶算法通过一个固定大小的令牌桶来模拟流量,当流量进入令牌桶时,会从令牌桶中取出一个令牌。漏桶算法通过一个固定大小的漏桶来模拟流量,当流量进入漏桶时,会以恒定的速率从漏桶中流出。定义一个 Controller 来测试限流,这里返回的 R ,可以根据自己项目统一定义的返回,或者使用 void。这个我们再自定义一个业务异常类,用于抛出异常 ,如果自己项目之前有定义,也可以使用自己的异常类。
2025-05-14 08:21:02
14
转载 Redisson 限流器源码分析
总结:这段代码本身并没有提供设置限流器自动过期的功能。在 Redisson 中,限流器自动过期的功能通常不是默认包含在限流器的设置中。:这里使用了 Redis 的 EVAL 命令,这个命令允许执行 Lua 脚本,而不会受到 Redis 的同步阻塞操作。:表示执行 Lua 脚本后期望的返回值类型为 Boolean。如果代码写的有问题,欢迎大家评论交流,进行指点!限流器自动过期(是指的是限流这个功能),可以使用。:将限流器的名称作为参数传递给 Lua 脚本。:这是获取限流器的名称或标识。设置限流器的失效时间。
2025-05-14 08:21:02
2
转载 MyBatis-plus 自动生成 条件构造器 QueryWrapper
再获取字段名的时候有可能参数类的字段名不能直接根数据库表的字段名直接对应上,所以我直接复用了@TableField 注解,若是字段上有该注解就直接使用其对应的value属性值,若是没有该注解则就使用字段名,将字段名的驼峰命名法转换成下划线分割的格式。我们需要一个方法,能够根据条件参数对象的属性值来设置QueryWrapper的条件,同时需要返回一个我们所需要对应范型的QueryWrapper。的范型,使用反射来获取参数类中的属性值,同时需要区分字段的类型来确定选择该字段使用哪种查询方式。
2025-05-13 06:27:52
14
转载 Linux下MySQL安装和使用
上述指令看到,MySQL版本一共支持41种字符集,其中的 Default collation 列表示这种字符集中一种默认的比较规则,里面包含着该比较规则主要作用于哪种语言,比如utf8_polish_ci表示以波兰语的规则比较,utf8_spanish_ci是以西班牙语的规则比较,utf8_general_ci是一种通用的比较规则。知道了这些规则之后,对于给定的表,我们应该知道它的各个列的字符集和比较规则是什么,从而根据这个列的类型来确定存储数据时每个列的实际数据占用的存储空间大小了。
2025-05-12 14:09:06
36
转载 抖音服务器带宽有多大,才能供上亿人同时刷?
抖音,百度,阿里云,腾讯都是自建的数据中心,都是 T 级别出口带宽(总出口带宽),也就是达到 1T=1024G/s 的出口带宽,服务器总署基本都在 20 万台以上,甚至阿里云都超过了 100 万台。一般情况下,小型的 IDC 公司自建机房,比如一些网站公司,租用联通,移动,电信的机房,可能总体出口带宽只有 5G。超过 30G 那都是具备一定规模的企业。一般情况下:总出口带宽 1TB,实际机房出口带宽可能只有 100G 上下,这是采用双(多)链路设计,双出口实现动态流量分担,总的出口带宽可以达到 T 级别。
2025-05-12 10:39:54
47
转载 Java 线程池详解,图文并茂,还有谁不会?!
这个队列比较特别的时,采用一种预占模式,意思就是消费者线程取元素时,如果队列不为空,则直接取走数据,若队列为空,那就生成一个节点(节点元素为null)入队,然后消费者线程被等待在这个节点上,后面生产者线程入队时发现有一个元素为null的节点,生产者线程就不入队了,直接就将元素填充到该节点,并唤醒该节点等待的线程,被唤醒的消费者线程取走元素。其特点是最大线程数就是核心线程数,意味着线程池只能创建核心线程,keepAliveTime为0,即线程执行完任务立即回收。任务队列未指定容量,代表使用默认值。
2025-05-12 09:02:17
55
转载 目前工资最高的几家外包公司汇总!(2025 最新版)
找工作的同学都要看看,根据自身的情况,学历低的 、没有经验的,可以先到外包公司试试,或者不想进去的也要了解一下, 避免找工作时被坑了。国内软件外包公司多如牛毛,下面列举的占全部名单可能不到千分之一,但工资最高的几家外包公司基本都在上面了。因为,外包HR从来不会认真去阅读你的简历,只要发现你的简历更新了,立马给你打电话,在电话里问东问西。在开发期间把员工不当ren,开发完毕后,没有接到下家项目的,要么被逼走,要么只发当地的最低工资。招聘是为 开发新项目,特别是大型项目,里面不是累成狗,是累的不如畜X。
2025-05-11 19:22:36
14
转载 Java 抽象类和接口
例如,在图形用户界面(GUI)编程中,我们可能会有一个表示控件的抽象类Control,它定义了所有控件都应该具有的一些方法,如draw()和resize()。接口定义了实现该接口的类必须遵循的契约。例如,在Java的集合框架中,List、Set和Map等都是接口,它们定义了集合类应该具有的行为。在面向对象的编程中,抽象类和接口是两个非常重要的概念,它们为开发者提供了创建可重用、可扩展和可维护代码的基础。当我们有一个类,它有一些共同的方法和行为,但具体实现可能会因子类而异时,我们可以考虑使用抽象类。
2025-05-11 18:36:38
13
原创 微信账单发送至邮箱方法
下次遇到类似需求,别再傻傻地截图拼图了,按照这篇教程操作,轻松实现“一键发送”最后提醒:导出账单涉及隐私,建议用私人邮箱接收,避免在公共场合操作。如果遇到问题,可以联系微信客服(路径:微信→「我」→「设置」→「帮助与反馈」)Excel/CSV文件可用Microsoft Excel、WPS等软件打开。通过以上步骤,您可以快速将微信账单发送至邮箱,并根据需求选择不同格式。点击账单页右上角的【。】或【常见问题】→【下载账单】或【导出账单】打开微信App,点击右下角【我】→【服务】→【钱包】→【账单】
2025-05-09 16:28:07
390
转载 领导:谁再用 Redis 实现过期订单关闭,立马滚蛋!
这里说点题外话,使用 redis 过期监听或者 rabbitmq 死信队列做延时任务都是以设计者预想之外的方式使用中间件,这种出其不意必自毙的行为通常会存在某些隐患,比如缺乏一致性和可靠性保证,吞吐量较低、资源泄漏等。在电商、支付等领域,往往会有这样的场景,用户下单后放弃支付了,那这笔订单会在指定的时间段后进行关闭操作,细心的你一定发现了像某宝、某东都有这样的逻辑,而且时间很准确,误差在1s内;那他们是怎么实现的呢?时间轮是一种很优秀的定时任务的数据结构,然而绝大多数时间轮实现是纯内存没有持久化的。
2025-05-09 16:28:07
27
转载 关于IDEA使用xml实现动态sql的问题
在使用动态SQL时,有些开发者选择将SQL语句直接写在方法上,使用依赖注解的方法来实现,而另一些开发者则选择使用XML文件来编写动态SQL。代码一致性:使用依赖注解的方式,可以让SQL和业务逻辑保持在同一个地方,增强代码的可读性和一致性。代码清晰:将SQL与Java代码分离,可以使代码更清晰,业务逻辑和SQL语句各自独立,便于维护。调试困难:由于SQL语句不直接在Java代码中,调试时需要额外的步骤查看生成的SQL语句。项目规模较大,SQL语句复杂:建议使用XML文件,便于SQL的灵活拼接和独立维护。
2025-05-09 16:28:07
33
转载 数据库介绍及使用方法
使用 PG 客户端访问时,默认的 schema 为小写:public,而使用本地或 TCP 模式访问时,默认的 schema 为大写:PBBLIC;因此不能使用 PG 客户端访问本地或 TCP模式创建的库,也不能使用本地或 TCP模式访问 PG 客户端创建的库,否则会报错误:"Schema "PUBLIC" not found" 或 "Schema "public" not found"。混合模式本应用使用本地模式访问,其他应用使用远程模式访问,需要在应用中通过 API 访问相应的服务器。
2025-05-09 08:16:41
12
转载 SpringBoot 数据权限新姿势,注解+动态SQL真香!
easy-data-scop 是一个通过动态注入SQL实现的数据权限项目。支持MyBatis、MyBatis-plus、MyBatis-flex。其他的不用动,使用注解中的 merge 属性,在keys中将两个前两个key都加上。这是一张简单的用户表,接下来我们将为这张表编写以下数据权限。4.看年龄为111、222的人(merge属性)DataScopeInfo介绍。看年龄为111、222的人。2.仅看年龄为111的人。3.仅看年龄为222的人。仅看年龄为111的人。仅看年龄为222的人。
2025-05-08 14:39:40
10
转载 SpingBoot @Scheduled定时任务
Schedule中的属性,用于指定任务执行之间的延迟时间(单位为毫秒),表示以固定的时间间隔执行某个方法或任务,并在每次执行完成后等待指定的延迟时间再执行下一次。fixedDelay从上一次方法执行完成的时间算起,如果上一次方法执行阻塞住了,会等到上一次方法执行完,并等待给定间隔时间之后执行下一次。fixedRate从上一次方法执行开始的时间算起,如果上一次方法执行时间超过了间隔时间,那上一次任务执行完之后,立即执行下一个任务。,表示第1秒触发一次,后隔5秒触发一次事件。两个域,两者互斥,须对其一设置。
2025-05-08 14:25:12
8
转载 Spring6 的JdbcTemplate的JDBC模板类的详细使用说明
JdbcTemplate 是Spring 提供的一个JDBC模板类,是对JDBC的封装,简化JDBC代码,当然,你也可以不用,可以让Spring集成其它的ORM框架,例如:MyBatis,Hibernate 等。比如这里我们查询的是一个数据表中有几条记录,几条记录,就是一个值了,一个数值类型的类对象了,可以是 int.class,也可以是 long.class,还可以是 short.class 因为只要是数值类型就可以了。不同的是,这个参数是两个的,是对应的类对象,唯一不同的就是执行的SQL语句不同而已。
2025-05-08 07:43:01
33
转载 MySQL-09.性能分析工具的使用
如果查询扫描过的记录数大于等于这个变量的值,并且查询执行时间超过long_query_time的值,那么,这个查询就被记录到慢查询日志中;从结果来看,页的数量是刚才的20倍,但是查询的效率并没有明显的变化,实际上这两个SQL查询的时间基本上一样,就是因为采用了顺序读取(第8章提到的顺序I/O)的方式将页面一次性加载到缓存池中,然后再进行查找,虽然。上图,就是数据库调优的思路。注意,从执行结果来看,修改全局慢sql的时间阈值,long_query_time的值时,默认对新的会话生效,当前会话还是修改前的值。
2025-05-07 16:29:02
36
转载 Spring的核心原理
IOC反转控制:IOC本质是一种思想,是根据依赖倒置原则(DIP)来实现的一种规则,其核心是通过对象的创建和依赖关系,将控制权从应用程序代码转移到容器,实现模块间的解耦。以上得知bean标签的是通过class属性读取实现类,从而进行让Spring容器接管,那我们是不是也可以将自定义的工厂容器也一并交给Spring容器进行管理。>是一个泛型类型,可接收任意类的 Class ,而Map的值中存储的是按需创建类的Class,从而通过类来重新实例。目的是将创建出来的对象纳入容器中,而工厂本身不托管。
2025-05-05 11:36:37
13
原创 微信运动步数排名开启的方法
是不是得买个新手环啊?在微信运动页面中,找到“步数排行榜”或“加入排行榜”选项,点击开启。在“辅助功能”列表中找到“微信运动”,点击“启用该功能”。在微信运动“隐私及提醒设置”中,可关闭“加入排行榜”或设置“不与他(她)排行”,避免与特定好友比较步数。:进入手机设置 → “应用管理” → 找到微信 → 开启“身体传感器”或“运动数据”权限。打开微信,点击右下角“我” → 选择“设置” → 进入“通用” → 找到“辅助功能”。:进入手机系统设置 → “隐私” → “运动与健身” → 开启微信的权限。
2025-05-04 16:03:28
399
转载 高并发下的计数器,为什么阿里不推荐使用 AtomicLong?
LongAdder 是 JDK1.8 由 Doug Lea 大神新增的原子操作类,位于 java.util.concurrent.atomic 包下,LongAdder 在高并发的场景下会比 AtomicLong 具有更好的性能,代价是消耗更多的内存空间。图片 图里可以看出在高并发情况下,当有大量线程同时去更新一个变量,任意一个时间点只有一个线程能够成功,绝大部分的线程在尝试更新失败后,会通过自旋的方式再次进行尝试,这样严重占用了 CPU 的时间片,进而导致系统性能问题。这对于开发人员来说是非常重要的。
2025-05-04 16:03:28
22
转载 redis篇(理论篇)
先搬桶0(k1,k1重新计算哈希值,放到新表对应的位置)--再搬桶2(k2重新计算哈希值,放到新表)--以此类推,慢慢把k3、k4搬走-->最后插入新元素(k5)直接插入到新表ht[1]-->所有元素搬迁完毕,ht[0]置空,rehash完成。-->一般情况下,元素数一旦超过桶数量,就触发扩容。ziplist顺序查找慢:ziplist底层是线性扫描,若filed数量虽然少但访问频繁,线性查找有一定开销--->若访问特别频繁,主动让hash升级为dict,比如预设一定数量的元素怒,或主动插入大字段。
2025-05-04 16:03:28
35
转载 Java 并发编程 - 并发控制的哲学思想
掌握这些底层逻辑,才能在面对高并发场景时,从容选择合适的工具(如用 CAS 优化计数器,用 ReentrantLock 实现公平锁),让多线程协作高效而有序。硬件级(cmpxchg/lock 指令)→ JVM 级(synchronized/volatile)→ SDK 级(AQS/原子类)。:喂孩子喝奶前先确认“是否还饿”(比较状态),若已饱(状态变化)则放弃喂食(避免操作冗余)。:妻子做好饭菜(数据写入),中途被儿子吐口水(其他线程干扰),导致饭菜不可用(数据损坏)。指令,强制刷回主存并广播失效;
2025-05-03 07:27:58
8
转载 Java 内存模型
Java 内存模型(Java Memory Model,简称 JMM),是 Java 并发编程的核心底层规范,主要用于描述 Java 中内存对象的可见性处理逻辑。(Cache Line,通常 64 字节)为单位存储数据,缓存一致性协议(如 MESI)保证缓存与主存的数据同步,但一次失效操作会针对整个缓存行。Java 选择内存共享模式,意味着所有线程操作的变量均存储在主内存中,线程自身持有变量的副本(位于 CPU 缓存或寄存器)。
2025-05-03 06:06:17
13
转载 万字详解 Stream 流式编程,写代码也可以很优雅
该方法会将流中的第一个元素作为初始值,然后将初始值与下一个元素传递给BinaryOperator函数进行计算,得到的结果再与下一个元素进行计算,以此类推,直到遍历完所有元素。例如,可以使用 filter() 方法进行元素的筛选,使用 map() 方法进行元素的转换,使用 reduce() 方法进行聚合操作等。而映射操作本身的优点在于,可以通过简单的函数变换实现对原始数据的转换,减少了繁琐的循环操作,提高了代码的可读性和维护性。如果需要对流中的元素进行某种计算和合并操作,得到一个结果,则使用reduce。
2025-04-30 07:38:44
71
转载 Java学习笔记-250427
读取到一个空行(其实就是这一行的末尾有一个换行符,我们使用。等方法后,第一行并不是空的,还会存留一个末尾的换行符,而。(一)将字符串转成字符数组,然后用数组的方法遍历。可以返回字符串中指定索引位置的字符。想要提取的时下一行的内容,但是在调用。读到换行符就会停止,这就相当于是。(二)直接从字符串中提取字符。会读取换行符,所以可能会导致。二、遍历字符串的两个思路。将字符串转成字符数组。时,可能会出现问题。等方法不会读取换行符,而。一、直接输出数组的方法。一、直接输出数组的方法。一上来就结束了,所以。
2025-04-30 07:38:44
5
转载 springboot分页查询并行优化实践
1、针对IO密集型,阻塞耗时w一般都是计算耗时几倍c,假设阻塞耗时=计算耗时的情况下,Nthreads=Ncpu*(1+1)=2Ncpu,所以这种情况下,建议考虑2倍的CPU核心数做为线程数。仔细推导两个公式,其实类似,在cpu使用率达100%时,其实结论是一致的,这时候计算线程数的公式就成了,Nthreads=Ncpu*100%*(1+w/c) =Ncpu*(1+w/c)。Nthreads=Ncpu*Ucpu*(1+w/c),其中 Ncpu=CPU核心数,Ucpu=cpu使用率,0~1;
2025-04-28 07:40:19
34
转载 通过apache tika从文档(pdf、doc、docx、txt)中 提取特征数据
本文介绍如何通过apache tika从文档(pdf、doc、docx、txt)中 提取特征数据,比如文档中有身份证、姓名等信息。【全部是经本人实际测试过的功能】1、需引入相关pom依赖。
2025-04-27 10:43:42
19
转载 40 个 SpringBoot 常用注解,让生产力爆表!
在Spring内置的条件控制注解不满足应用需求的时候,可以使用此注解定义自定义的控制条件,以达到自定义的要求。@Component注解用于标注一个普通的组件类,它没有明确的业务范围,只是通知Spring被此注解的类需要被纳入到Spring Bean容器中并进行管理。@Scope注解可以用来定义@Component标注的类的作用范围以及@Bean所标记的类的作用范围。本次课程总结了Spring Boot中常见的各类型注解的使用方式,让大家能够统一的对Spring Boot常用注解有一个全面的了解。
2025-04-27 10:43:42
14
转载 Spring Boot Starter 的应用场景与自动配置
按照 SpringBoot 官方的定义,starer 的作用就是依赖聚合,因此直接在 starter 内部去进行代码实现是不符合规定的,starter 应该只起到依赖导入的作用,而具体的代码实现应该去交给其它服务/模块来实现。在引入依赖之后需要做繁琐的配置,并且这些配置是每个项目来说都是必要的,例如 web.xml 配置(Listener 配置、Filter 配置、Servlet 配置)、log4j 配置、数据库连接池配置等。在编写自动配置类的时候,我们应该要考虑向容器中注入什么组件,如何去配置它。
2025-04-26 21:02:03
64
转载 年少不知自增好,错把UUID当个宝!!!
UUID 是无序的,每次插入新数据时,新记录可能会插入到索引树的任意位置,导致索引树频繁调整。由于 UUID 是无序的,修改主键值时,新值可能会插入到索引树的不同位置,导致索引树频繁调整。:UUID 是无序的,插入新数据时,可能会导致索引树频繁分裂和重新平衡,影响性能。字符主键通常是无序的,插入新数据时,可能会导致索引树频繁分裂和重新平衡,影响性能。索引的大小直接影响查询性能,索引越大,查询时需要的磁盘 I/O 操作越多。:UUID 索引占用的空间大,导致索引扫描的范围更大,查询效率降低。
2025-04-24 10:59:46
75
转载 【进阶篇】使用 Stream 流对比两个集合的常用操作分享
文章到这里就结束了,关于 Stream 流 API 是日常开发中经常会遇到的,熟练运用可以提高我们的开发效率,让我们写出简洁易懂的代码,我们作为后端开发必须重视起来。理论上可以用 for 循环或者迭代器来做,效果与使用 .containsAll() 方法差不多,但是自己手写的话可能会比较复杂,数据量稍大些的话效率较低,一般不考虑采用,这里我就不演示了。上述的集合都是泛型为自定义引用类型的集合,下面分享一些简单集合,如整形、字符串类型集合的 Stream 流对比操作。
2025-04-24 10:59:46
29
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人