自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记一个jsp:useBean的bug

本文记录了验证<jsp:useBean>标签scope属性的实验过程。通过创建Circle类演示不同scope取值(page/request/session)的效果,发现初始将类直接放在src目录导致编译失败("Unable to compile class for JSP")。经排查发现可能与JSP的大小写敏感特性有关,将Circle类移至final_test包并修改class属性值后成功运行。实验验证了scope属性的作用范围差异及Java类路径对JSP编译的影响。

2025-06-03 15:44:51 192

原创 用自己的话讲一下事务并发问题以及隔离级别

(不会读取到未提交的数据,就阻止了脏读。但是如果事务1读取了数据,事务2对数据进行了修改并提交了事务,事务1又再次读取了这条数据,就读取到修改后的数据,就会出现在事务1一个事务内重复读取同一个数据出现数据不一致的情况,导致不可重复读。①脏读:事务1对数据age=20进行了读取并修改age=21(前提:即使数据未提交,其他事务也可以读取到修改后的数据),但还未提交事务,事务2对数据进行了读取,读取到age=21,这时事务1因为某些原因回滚了,于是age又恢复为20,事务2再来读取,读取到age=20。

2025-04-29 21:59:18 396

原创 使用Redis的缓存更新策略

线程休眠一段时间,是为了留时间给查询的并发请求将旧数据尽管写到缓存中,然后我再次删除缓存,这样缓存就不会是旧数据了,下次别的请求来查,查不到,就会去数据库查新数据。在这之前,请求B进来更新数据20为21,更新了数据库为21,删除了缓存(但这时缓存里没东西,所以是个空删除),然后请求A才将20写入缓存。在更新数据库为20前,请求B进来,更新缓存为21,更新数据库为21,然后请求A才更新数据库为20。更新数据时,将更新缓存换为删除缓存,等到查询数据时,如果缓存未命中,再去查询数据库,写入缓存。

2025-04-27 20:49:14 407

原创 浅讲JUC下的原子类

JUC原子类

2025-04-24 10:21:38 1041

原创 记更改mysql的my.ini文件后服务无法启动问题

MySQL实验作业要求把mysql配置文件中的datadir改到D盘下,为D:\MYSQL\DATA,博主一改配置文件,就无法启动服务,在网上查阅许多资料,都是说编码问题,尝试多次,仍然不行,整红温了属于是。煮波感觉这个方案很有可行性,于是在这个凌晨十二点半的夜深人静的夜晚,再次打开了刚刚关掉的cmd。执行了上面两条指令,然后启动mysql服务,成功了。原来是,还要把数据拷贝过去,哈哈,对此煮波只能喊出六百六十六,然后开始为解决了这个bug兴奋无比,于是写下了这篇博客。哈哈哈哈哈哈哈哈哈哈。

2025-04-22 01:00:03 344

原创 ReentrantLock 加锁解锁原理

可中断(在获取锁失败后,阻塞等待锁的过程,这个阻塞状态,是可以被打断的,打断后会抛出异常)可超时(有时限的等待)可公平(可以设置为公平锁,让来获取线程的锁先到先得)支持多个条件变量(synchronized对对象加锁,关联操作系统的一个Monitor,一个Monitor只有1个WaitSet,所有wait的线程都到这个WaitSet中等待,而ReentrantLock相当于可以有多个WaitSet)ReentrantLock和synchronized都支持可重入。

2025-04-21 11:45:19 835

原创 synchronized加锁背后的事

synchronized,偏向锁、轻量级锁、重量级锁、撤销偏向

2025-04-19 12:00:39 744

原创 深拷贝与浅拷贝

浅拷贝:在堆中创建了一个新对象,将原对象的字段值复制到新对象中,如果原对象中有引用类型字段,会直接复制引用到新对象中,原对象和新对象的引用类型属性指向同一块内存地址。深拷贝:将所有属性都拷贝一份,包括引用类型,原对象和新对象不会共享引用,新对象是一个全新的对象。对于实现深拷贝的方式,还有序列化和反序列,手动递归复制等方式。

2025-04-18 11:05:33 198

原创 interrput打断的三种情况

③打断的是park中的线程,线程会终止park状态,继续运行,但它的打断标记不会被清除,如果不手动清除,那么以后无法再次让该线程park,即该线程park失效。②打断是正常运行的线程,线程的打断标记不会被清除,为true,线程可以通过判断打断标记,知道有人打断它了,但他停不停,什么时候停,由他自己说了算,他可以在知道自己被打断后,做一些善后工作再结束运行。①打断的是正在阻塞中的线程(sleep、wait、join),被打断的线程会抛出InterruptedException异常,打断标记会被清除。

2025-04-18 10:34:49 240

原创 Java线程创建的三种玩法

Runnable接口是一个函数式接口,它被@FunctionalInterface注解修饰,它里面只有1个抽象方法,可以用lambda表达式简化。这里是用匿名内部类的方式创建了Runnable接口的实现类,因为Runnable接口中定义了抽象方法run(),所以必须对其进行实现。这里是用了匿名内部类的方式,创建了Thread的子类,并重写了run方法。所以FutureTask间接地实现了Runnable接口,也是任务对象。在创建线程时传入Runnable对象,它就是Thread类中的成员属性target。

2025-04-15 10:30:17 267

原创 并发概念辨析:进程与线程,并发与并行

进程与线程,并发与并行

2025-04-15 08:59:11 245

原创 vuex串一串(在线聊天组件)

is-liyiwei/vue-Chat-demo: 一个基于Vue + Webpack构建的简单chat示例,聊天记录保存在localStorge。在该方法中,调用后端接口,获得所有用户信息,收到后端响应后,调用了INIT_ADMINS方法,并把后端json数据(resp)传过去。INIT_ADMINS存在于vuex的mutations中,它将后端传回的数据(用户信息)放到了vuex的state中的admins中。然后在需要用户信息的组件中,通过计算属性拿到admins,在对其进行循环展示。

2024-11-27 18:50:13 189

原创 前端请求响应拦截

前端向后端发请求,每次请求响应回来,要判断请求状态并处理,显示消息提示用户,每个请求都写一样的处理,太过冗余,于是编写一个请求响应拦截器,统一处理。输入错误验证码,测试可以看到,请求接口是访问成功的,HTTP状态码为200,但后端返回状态码为500,证明业务逻辑有错,于是消息提示后端返回的message。

2024-10-22 11:24:52 556

原创 前端Vue初始页面流程梳理

从上图3行代码和19行代码,可以看出两个地址对应的两个页面就是HomeView.vue页面和AboutView.vue页面,其中HomeView.vue页面又引入了HelloWorld.vue页面作为其子组件。这两个页面就是App.vue中导航到的两个页面,<router-view>处渲染的就是它们。routes中就定义了路径及对应的页面,其中path属性值是链接地址,component属性值是对应页面组件。从import可以看出创建的应用实例,是App,而这个App,就是App.vue页面。

2024-10-09 16:35:40 424

原创 前端请求拦截器

3.后端返回901code,证明登录超时,这时要跳转到登录页面让用户重新登录,并且带上"redirectUrl=xxx"重定向到用户之前所在的页面。是 JavaScript 中用于导出模块的语法。它允许其他文件导入并使用这个request 函数。该拦截器会拦截大部分请求,在main.js中注册为全局组件。该拦截器js文件在我的项目中目录结构为。1.创建axios实例,拦截以"/api"开头的请求,请求超时设置为10s。2.ElLoading是一个加载动画。

2024-10-08 19:00:50 253

原创 文件分片上传

Main组件中,包含“上传”按钮,点击上传按钮,会调用“addFile”方法,该方法会将文件和文件父目录id传递出去,emit出去。因为上传文件后,会弹出弹框,显示文件上传进度及状态,这个弹框在父组件中,所以我们emit出去文件数据,让父组件可以拿到。子组件:(Main.vue)父组件:(framework.vue)这里的const {file,filePid} = data;就拿到了当时子组件Framework.vue中传来的文件和文件父目录id。

2024-10-07 17:59:20 1867

01基本SELECT语句使用.sql

01基本SELECT语句使用.sql

2022-11-28

04多表查询.sql

04多表查询.sql

2022-11-28

java基础.edf

java基础.edf

2022-10-18

空空如也

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

TA关注的人

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