
JavaEE
文章平均质量分 95
zjruiiiiii
这个作者很懒,什么都没留下…
展开
-
ReentranLock超详细讲解
接下来,我们看看AbstratQueuedSynchronizer的acquire方法首先获取当线程获取锁的当前状态,0代表无人占用如果无人占用,判断当前线程是否需要进行排队如果队列为空,不需要排队如果队列不为空,但下一个是轮到自己,也不需要为空这里要注意,第一次插入的null问题如果当前线程不需要进行排队,下一步就是执行CAS来获得锁(此时锁state的状态要由0变为了1),CAS保证了同时争夺锁的并发安全性,如果此时CAS失败,就要重头来(本质上是CAS修改state从0变为1)原创 2023-10-27 11:25:27 · 404 阅读 · 0 评论 -
Java内存模型之JMM
计算机存储结构,从本地磁盘到主存到CPU缓存,也就是从硬盘到内存,到CPU。一般对应的程序的操作就是从数据库查数据到内存然后到CPU进行计算。因为有这么多级的缓存(cpu和物理主内存的速度不一致的),CPU的运行并不是直接操作内存而是先把内存里边的数据读到缓存,而内存的读和写操作的时候就会造成不一致的问题。Java虚拟机规范中试图定义一种Java内存模型(java Memory Model,简称JMM) 来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问原创 2022-11-04 23:04:35 · 368 阅读 · 0 评论 -
使用mybatis实现CRUD(超详细)
首先我们先取一个项目:数据库表(tb_brand)及数据准备:实体类 Brand:安装 MyBatisX 插件:MybatisX 是一款基于 IDEA 的快速开发插件,为效率而生。主要功能:XML映射配置文件 和 接口方法 间相互跳转。根据接口方法生成 statement。在没有MybatisX前,因为接口方法要跟XML文件中的select标签中的id要对应,因此会在XML文件和接口中来回切换,观察是否对应。安装了MybatisX后就解决了这一问题。插件效果:红色头绳的表示映射配置文件,原创 2022-07-02 13:40:25 · 4717 阅读 · 18 评论 -
mybatis基础
MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发MyBatis 本是 Apache 的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。官网:mybatis官网持久层:框架:下面是 JDBC 代码,我们通过该代码分析都存在什么缺点:我们发现缺点有:硬代码1.注册驱动、获取连接上图标1的代码有很多字符串,而这些是连接数据库的四个基本信息,原创 2022-06-24 15:04:59 · 628 阅读 · 27 评论