自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 ConcurrentHashMap为什么放弃分段锁,分段锁和Node锁的区别

分段锁是将锁空间(Lock Space)划分为多个区域,每个区域独立一把锁,每个锁只保护一部分数据。因此,分段锁适用于锁空间分布比较均匀的场景,有较高的并发性能和更细粒度的控制,但是需要管理复杂,空间开销较大。节点锁则适用于锁空间分布比较不均匀的场景,开销小,操作简单,但是适用范围有限,不适用于遍历整个数据结构的操作。节点锁是指针锁,它在读写数据时只锁定单个节点,常用于无需遍历整个数据结构的操作,如插入、删除等。相对于分段锁,节点锁的优势在于其开销较小,缺点在于其操作局限性较大。

2023-06-09 15:42:46 321

原创 CAS(Compare and Swap)乐观锁

需要注意的是,由于 CAS 操作是一种基础的原子性操作,仅能保证对单个共享变量的原子操作,它并不能解决所有的并发问题。CAS 操作是一种原子性操作,它能够保证多个线程同时执行 CAS 操作时,最终只有一个线程能够执行成功,而其他线程会执行失败。CAS 操作能够把赋值操作和比较操作合并在一起,从而可以避免多次访问同一个共享变量的开销,提高程序的性能。CAS 操作是一种无锁算法,它不需要使用锁来进行同步,从而避免了锁竞争的问题,同时还可以避免锁带来的开销。A:是旧的预期值,即要更新的值不同于这个值则不更新。

2023-06-05 09:10:37 150

原创 【转】cron表达式详解

例如:在 DayofMonth使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。例如:子表达式(天(星期))可以为 “MON-FRI”,“MON,WED,FRI”,“MON-WED,SAT”(5),:表示列出枚举值。例如:在Minutes域使用5,20,则意味着在5和20分每分钟触发一次。在子表达式(分钟)里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”)的含义一样。因此,“*”在子表达式(月)里表示每个月的含义,“*”在子表达式(天(星期))表示星期的每一天。

2023-06-03 09:53:43 160

原创 MyBatis一级缓存何时失效

MyBatis 的一级缓存是 SqlSession 级别的缓存,它存在于 SqlSession 的生命周期内,当 SqlSession 关闭时,一级缓存也会随之失效。总之,我们在使用 MyBatis 的时候,需要充分了解一级缓存的实现原理和失效情况,避免因为缓存问题导致程序运行出现错误。如果遇到缓存失效的问题,可以通过修改配置文件或者手动清空缓存等措施来解决。

2023-05-31 09:00:42 577

原创 Spring自动装配

Spring自动装配(Auto Wiring)是指在Spring容器初始化Bean时,自动将符合条件的Bean自动注入到需要的Bean中去,从而实现Bean之间的依赖关系自动注入的功能。通过构造函数上添加@Autowired注解,将符合类型的Bean自动注入到构造函数中。通过在属性上添加@Qualifier注解,指定名称匹配的Bean自动注入到属性中。通过在属性上添加@AutoWired注解,将符合类型的Bean自动注入到属性中。

2023-05-29 09:04:30 76

原创 java内存溢出

内存溢出(Out Of Memory)是指当一个应用程序向操作系统申请内存空间时,如果申请的空间已经超过了系统所剩余的空间,就会导致内存溢出。这个问题通常会导致应用程序崩溃或者出现异常,因为操作系统无法为程序提供足够的内存资源。

2023-05-29 09:02:14 605 1

原创 数据库如何优化

优化数据类型和表结构:根据实际情况,选择合适的数据类型和表结构可以提高 SQL 查询的性能。优化查询语句:使用合适的查询语句可以提高 SQL 查询的性能。配置 SQL 缓存:对于频繁查询的 SQL 语句,可以使用 SQL 缓存,在数据库服务器上预先缓存查询结果,以提高重复查询的性能。使用分区表:对于数据量特别大的表,可以通过将表分割成若干个分区,分别存储在不同的磁盘上,以提高查询性能和降低单表的锁冲突。定期清理无用数据:随着时间的推移,数据库中可能存在大量的无用数据,需要定期清理以保证查询性能。

2023-05-29 09:02:10 239

原创 Mybatis使用foreach标签实现批量插入

需要注意的是,为了避免 SQL 注入攻击,在将 List 集合作为参数传入 Mapper 方法时,建议使用 Java 的 Collection 接口或者数组类型,而不是采用字符串拼接的方式动态生成 SQL 语句。方法可以直接将 List 集合作为参数传入到 Mapper 中,然后在 Mapper 的 XML 中使用。标签实现单条数据的插入,但如果需要插入多条数据,则可以使用 Mybatis 提供的。标签遍历了 List 中的每一个 User 对象,并将其属性插入到表中。在 Mybatis 中,可以使用。

2023-05-29 08:58:29 3334 4

原创 Vue相当于MVVM设计模式中的什么

中的 DOM 元素,来实现数据和界面之间的双向绑定(Data Binding)。当用户修改了视图层上的数据时,会自动同步到 ViewModel 中的数据模型中,从而实现了视图层和数据模型之间的高效交互。两层组合,提供了一个数据驱动的双向绑定机制,使开发者可以更加方便地编写交互性强、功能完善的 Web 应用程序。对象就代表了这个 ViewModel 中的数据模型(Model),用于存放应用程序的业务数据。代表视图模型层(ViewModel),用于处理视图层的逻辑,如数据绑定、事件处理等等;

2023-05-26 19:53:12 189 1

原创 使用前后端分离模式处理登录的数据处理流程

【代码】使用前后端分离模式处理登录的数据处理流程。

2023-05-23 15:19:42 68

原创 @Autowired 和 @Resource有什么区别

可以根据 name 属性来指定 Bean 的名称,也可以根据类型匹配来选择注入,如果有多个相同类型的 Bean,则需要使用。来进行 Bean 注入,因为它有更多的灵活性和可扩展性,并且更易于使用。会根据类型匹配来选择注入,如果有多个相同类型的 Bean,则需要使用。属性来指定 Bean 的名称,或者直接使用默认的按照名称装配的方式。是用于兼容 JavaEE 的注解,在 Spring 框架中使用较少。因此,建议在 Spring 框架的应用程序中,尽可能使用。是 Spring 框架的注解,而。

2023-05-23 08:46:15 208 1

原创 springMVC常见注解

将 HTTP POST 请求映射到 MVC 控制器中的处理方法上。:用于指示一个方法返回的对象将被添加到模型中,使其在渲染视图时可用。:将 HTTP GET 请求映射到 MVC 控制器中的处理方法上。:用于将 URL 查询参数或表单请求参数绑定到处理方法的入参中。:用于将 HTTP 请求映射到 MVC 控制器中的处理方法上。:用于将 URL 中的占位符参数绑定到处理方法的入参中。:用于指示一个处理方法返回的是响应正文,而不是一个视图。:用于指示一个方法用来处理一个特定类型的异常。

2023-05-23 08:40:19 87 1

原创 Spring常见注解

除了上述这些注解,Spring 还提供了很多其他功能的注解,例如事务管理、AOP 面向切面编程、缓存管理等。:用于将 Java 类定义为 Spring Bean,优点是可以自动扫描并加入 Spring IoC 容器中。:将 Controller 方法返回的对象转换为指定格式后,写入到响应的 body 中。:使用 Java 类作为 Spring 配置类,替代 XML 配置文件。:注解一个 DAO 组件,实现数据持久化操作。:用于接收 HTTP 请求路径中的参数值。:用于接收 HTTP 请求中的参数值。

2023-05-23 08:39:23 78 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除