- 博客(32)
- 收藏
- 关注
原创 使用SQL判断两表的关联关系
通过上述 SQL 查询,我们可以清晰地判断两个表之间的关联关系。这个方法利用了公用表表达式(CTE)和聚合函数,使得查询逻辑清晰易懂。希望这篇博客能帮助你更好地理解和使用 SQL 来分析表之间的关系。
2024-07-11 21:36:13 942 2
原创 IO之反序列化漏洞
Hutool提供的XML实用程序类在使用XmlUtil.readObjectFromXml解析不受信任的XML字符串时可能容易受到远程代码执行的攻击。这个Java代码段执行的操作与XML描述的操作相同,创建了一个。对象的序列化表示,并且调用了它的。这个XML片段描述了一个。命令,并启动该命令。
2024-07-09 12:44:46 932
原创 MyBatis插件
interceptorChain.addInterceptor-加入拦截器列表。parseConfiguration-解析SqlMapConfig.xml。configuration.addInterceptor-注册拦截器。InterceptorChain.pluginAll-应用全部插件。Interceptor.plugin-组装递归式插件链。getSignatureMap-构建签名映射表。pluginElement-解析插件-Plugin.wrap-组装单个插件。找出所有需要被代理的接口。
2024-04-03 12:45:45 497
原创 响应式编程WebFlux基础API
是Reactor Netty提供的一个用于构建HTTP服务器的类。是 Spring WebFlux 提供的用于进行 HTTP 请求的客户端。它支持异步和响应式编程。是WebFlux中处理HTTP请求的核心接口之一。的一种实现,用于实现对请求的分发和处理。可以被看作是一个函数,接受一个HTTP请求并返回一个表示HTTP响应的。通过它,你可以定义请求的映射和处理。通过实现这个接口,提供了对请求的分发和处理的支持。则是 HTTP 请求和响应中用于指定实体主体的媒体类型。实现了这个接口,提供了处理请求的具体实现。
2024-01-12 18:42:10 1508
原创 响应式编程WebFlux基础实战练习
响应式编程WebFlux是Spring Framework 5中引入的一个全新的响应式编程框架,它基于Reactor库构建,提供了异步和非阻塞的事件处理。WebFlux框架设计用于处理长时间运行的异步任务,例如网络调用或数据库操作,而不会阻塞线程。这样可以提高系统的吞吐量和伸缩性。并在Netty,Undertow和Servlet 3.1 +容器等服务器上运行。Reactor: Reactor是WebFlux底层使用的响应式编程库,提供了Mono和Flux。
2024-01-12 12:52:06 729
原创 响应式编程Reactor API大全(上)
Reactor 是一个基于响应式编程的库,主要用于构建异步和事件驱动的应用程序。Reactor 提供了丰富的 API,包括创建、转换、过滤、组合等操作符,用于处理异步数据流。以下是一些 Reactor 的主要 API 示例
2024-01-10 19:38:09 2074
原创 响应式编程Reactor优化Callback回调地狱
响应式编程Reactor与Callback、CompletableFuture三种形式异步编码对比
2024-01-10 18:38:10 948 1
原创 NIO核心依赖多路复用小记
NIO允许一个线程同时处理多个连接,而不会因为一个连接的阻塞而导致其他连接被阻塞。核心是依赖操作系统的多路复用机制。
2024-01-08 19:03:04 1146
原创 Java刷题错题笔记-day07-IO
总体而言,BIO适用于连接数较少且连接时间较长的情况,NIO适用于连接数较多但连接时间较短的情况,而AIO适用于连接数较多且每个连接的I/O操作耗时较长的情况。选择合适的I/O模型取决于具体应用的特点和需求。因此,虽然字节流理论上可以处理Unicode字符,但为了确保正确处理字符编码、避免乱码和数据错误解释,更推荐使用字符流进行Unicode字符的读写操作。)在设计上更适合处理字符数据,它们能够理解并正确处理字符编码,提供了更高层次的抽象,使得处理Unicode字符更为方便和安全。对于Unicode字符,
2024-01-07 23:59:32 422 1
原创 类名.this:内部类引用外部类实例
1. 深入解析类名.this:内部类引用外部类实例的奥秘2. 内部类访问外部类实例:Java编程的独特之处3. 为什么内部类能够访问外部类实例?机制揭秘4. 内部类修改外部类实例:编程的灵活性5. 成员内部类与外部类的关系:详解访问与修改实例的方法6. Fail-Fast vs. Fail-Safe:集合迭代机制的实现原理研究
2024-01-07 22:00:27 1168 1
原创 Java刷题错题笔记-day06-集合
关于集合迭代器的Fail-Fast和Fail-Safe机制、ConcurrentHashMap的null值、双括号"{{}}"初始化集合问题
2024-01-06 19:32:25 956 1
原创 Java刷题错题笔记-day05-集合(CopyOnWriterArrayList、HashMap)
红黑树的查询性能相对较好,因为红黑树是一种平衡二叉搜索树,保持了相对平衡的树结构。在红黑树中,查询操作的时间复杂度为 O(log N),而链表的查询操作的时间复杂度为 O(N)。所以,当链表转化为红黑树后,在具有大量哈希冲突的情况下,查询性能更好。占用的内存更多主要是由于其包含了额外的红黑树结构信息,如父节点、左子节点、右子节点等。不提供强一致性主要是因为它的修改操作是在一个新的拷贝上进行的,而不是直接在原始数据结构上。这种基于哈希表的实现提供了快速的插入和查询操作,并确保集合中的元素是唯一的。
2024-01-05 23:55:45 1327 2
原创 Flowable可视化流程设计器Flowable BPMN visualizer
IDEA插件,可视化流程设计器Flowable BPMN visualizer
2024-01-05 17:27:31 2939 5
原创 在IDEA中使用git忽略提交.idea下的文件
创建项目时,可能会有.idea中的文件先add到git后再创建的.gitignore文件,导致文件commit时无法排除,如下所示。这个命令会将指定文件从暂存区中移除,但不会影响工作目录中的文件。这将取消所有已暂存的更改。请谨慎使用这些命令,因为它们会修改你的版本库状态。如果有不确定的更改,最好先做好备份。应该替换为你要还原的具体文件的名称。这会将工作目录中指定文件的更改还原为最近一次提交时的状态。请注意,这两个命令中的。将文件还原成未添加状态。
2024-01-05 11:23:35 4058 1
原创 Java刷题错题笔记-day04-集合
这意味着对该字段的读取和写入操作都是原子的,并且会立即被其他线程可见。这有助于确保当一个线程修改了。若链表不为空,(存在Hash冲突场景)使用synchronized悲观锁来保证线程安全。ConcurrentHashMap在putVal方法中,添加元素时,的值时,只有一个线程会成功,其他线程需要重试。这确保了在并发情况下对。若链表为空,此时使用CAS乐观锁机制添加元素。中的值时,其他线程能够立即看到最新的值。当多个线程同时尝试更新同一个。值的更新是线程安全的。使用CAS操作来更新。
2024-01-05 00:00:22 399 1
原创 Flowable工作流入门
flowable流程引擎会将XML文件存储在数据库中,这样可以在需要的时候获取它流程定义转换为内部的、可执行的对象模型,这样使用它就可以启动流程实例。将下面的XML保存在文件夹下名为的文件中。
2024-01-04 19:04:06 2331 2
原创 Java刷题错题笔记-day03-Java基础
tips:从上往下,从左往右组合就可以得到上面的式子。(父类非静态变量=成员变量,父类非静态构造器=父类构造器,类非静态构造器不存在)这将输出 “Dog 是 Animal 类或其子类”,因为。方法用于检查类或接口之间的继承关系。不能实例化(因为构造器私有吧)变量>初始块>构造器。
2024-01-03 23:18:27 353 1
原创 Java刷题错题笔记-day02-Java基础
不能重写,因为main方法是静态方法,而static方法在Java中不能被覆盖。JDK9及以后,使用byte存储字符串,而不是char数组。可以重载,但是JVM始终调用的是原始的main方法。因为UTF-16存储英文纯属浪费内存。JDK9以前用UTF-16。
2024-01-02 18:37:41 434 1
原创 Java刷题错题笔记-day01-Java基础
在MySQL联表查询中,通常会选择具有较小数据集的表作为驱动表。这是因为驱动表的每一行都会与其他表进行匹配,所以选择较小的表作为驱动表可以减少查询的执行时间。同时,还可以考虑选择具有索引的列作为驱动表的连接条件,以进一步提高查询性能。RSA算法通常用于加密和解密数据,而不是用于存储密码。存储密码的最佳实践是使用哈希函数和盐值来存储密码的散列值。这样做可以提高密码的安全性,因为即使数据库被攻击,攻击者也无法直接获取用户的明文密码。虽然RSA算法可以用于加密密码,但不推荐将其直接用于存储密码的散列值。
2024-01-01 13:40:06 419
原创 Mybatis配置解析--构建者模式
这些构建者都是为mybatis加载资源,解析mybatis-config.xml、*mapper.xml、mapper.class的按建造者的编写顺序,也是mybatis资源的加载顺序mybatis解析资源时核心代码调用链SqlSessionFactoryBuilder# (构建SqlSessionFactory)→XMLConfigBuilder# (解析Mybatis-Config.xml)→XMLConfigBuilder#(解析Mybatis-Config.xml中标签)→MapperAnnotat
2022-06-28 18:48:37 542 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人