- 博客(7)
- 收藏
- 关注
原创 ClassLoader在项目中的应用
要理解ClassLoader如何实现双亲委派的,我们实际上只需要了解类中四个方法即可查找并加载具有指定名称的类加载Class,它和findClass都可以根据全类名加载类,有什么区别呢?区别就是,loadClass是实际上保证双亲委派规则的类,正常情况下,所有继承了ClassLoader的类都不会重写这个方法(有一些会增加一些安全校验),当需要反双亲委派时才需要重写。loadClass中会调用findClass,如果不同的自定义类加载器需要不同的加载方式时,重写findClass即可。
2023-08-09 12:53:16
190
原创 本地缓存技术分享
缓存分为本地缓存与分布式缓存。本地缓存为了保证线程安全问题,一般使用ConcurrentMap的方式保存在内存之中,而常见的分布式缓存则有Redis,MongoDB等。一致性:本地缓存由于数据存储于内存之中,每个实例都有自己的副本,可能会存在不一致的情况;分布式缓存则可有效避免这种情况开销:本地缓存会占用JVM内存,会影响GC及系统性能;
2023-08-09 11:49:06
549
原创 mybatis源码(二)---- 动态标签的解析
解析xml变成sql语法树解析xml文件过程中的调用路径。经过上述方法的解析,我们现在来到了解析动态sql标签的位置。<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="zjw">
2022-04-15 14:17:31
622
原创 mybatis源码解析(一)
Mybatis 源码解析 (一)一、 ORM框架的作用实际开发系统时,我们可通过JDBC完成多种数据库操作。这里以传统JDBC编程过程中的查询操作为例进行说明,其主要步骤如下:(1)注册数据库驱动类,明确指定数据库 URL地址、数据库用户名、密码等连接信息。(2)通过 DriverManager 打开数据库连接。(3)通过数据库连接创建 Statement 对象。(4)通过 Statement 对象执行SQL 语句,得到 ResultSet 对象。(5)通过 ResultSet 读取数据,并将
2022-04-15 14:12:51
870
原创 es分页查询原理
es分页查询1、page+sizeGET test_dev/_search{ "query": { "bool": { "filter": [ { "term": { "age": 28 } } ] } }, "size": 10, "from": 20}和mysql类似,查询深分页时性能较差。当page*size过大时,会出现效率急剧下降的问
2022-04-15 13:56:16
5504
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人