- 博客(43)
- 资源 (4)
- 收藏
- 关注
原创 mysql索引
SQL提示,是优化数据库的一个重要的搜段,简单来说,就是在SQL语句中加入一些人为的提示来优化操作的目的。尽量使用覆盖索引(查询所有了索引,并且需要返回的列,在该索引中已经全部能够找到),减少select *using indexcondition:查询使用了索引,但是需要回表查询数据using index:查询使用了索引但数据都在索引中不需要回表两条语句上面的效率高,因为上面可以直接通过id索引查到,而下面只能通过二级索引name查到id,再回表到聚集索引查询。
2024-10-22 17:06:10
1166
原创 java反射
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获到每一个字节码文件对应的Class类型的对象.我们可以通过一个类获取这个类中的方法,变量,构造方法等属性,并将这些属性映射成一个个对象来使用。
2024-10-17 11:16:19
663
原创 mysql锁
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。全局锁:锁定数据库中的所有表。表级锁:每次操作锁住整张表。行级锁:每次操作锁住对应的行数据。
2024-10-17 11:15:47
1120
原创 多线程基础
Java中的多线程等待和唤醒主要通过wait()和notify()方法来实现。这些方法是Object类的一部分,所有Java对象都可以使用它们。它们通常与同步代码块一起使用,以确保线程安全。
2024-10-12 09:44:27
933
原创 jvm基础
Java虚拟机(JVM)是一种提供运行环境来驱动Java应用程序的引擎。它将Java字节码转换为机器语言,使Java程序能够在任何具有兼容JVM的设备或操作系统上运行。这一过程被称为Java的“编写一次,到处运行”的能力。用于存储当前正在执行的字节码指令的地址,确保字节码能够被正确地解释和执行。负责管理方法调用和执行。每个线程在JVM中都有自己的JVM栈,它随着线程的创建而创建,随着线程的结束而销毁。JVM栈中的每个元素被称为“栈帧”。
2024-10-12 09:43:51
782
原创 垃圾回收器
初始标记(Initial Mark)目的:标记根对象(即应用程序可直接访问的对象)。特点:这一步骤会停顿应用程序的执行(STW,Stop-The-World),因为需要确保在标记期间对象的引用关系是稳定的。并发标记(Concurrent Mark)目的:遍历并标记从根对象可达的所有对象。特点:此阶段在应用程序运行时进行,即在不暂停应用程序的情况下进行标记工作。垃圾回收线程与应用程序线程并发工作,标记堆中的对象。重新标记(Remark)目的。
2024-10-11 14:48:54
846
原创 G1(Garbage First)
G1(Garbage First)垃圾回收器是Java虚拟机(JVM)中的一种垃圾回收器,设计目标是提供可预测的低延迟垃圾回收,同时保持较高的吞吐量。G1垃圾回收器适用于具有大堆内存和对暂停时间有严格要求的应用程序。
2024-10-11 14:47:25
860
原创 Vue2基础
修饰符在 Vue 3.x 中已经被废弃。对于 Vue 3.x,事件绑定直接在组件上监听原生事件即可。这种简写方式使代码更加简洁。和 Mustache 语法(Vue.js 提供了。
2024-10-10 09:44:19
1459
原创 vue3+element-plus
这个对象可以包含响应式数据、计算属性、方法、以及任何需要在模板中访问的内容。ref是 Vue 3 提供的一个函数,用来创建响应式的引用。它接受一个初始值,并返回一个包含这个值的响应式对象。toRef的本质是应用,与原始数据有交互,修改响应式数据会影响到源数据,但是不会更新视图层。用于将一个响应式对象的所有属性转换为ref对象。每个ref对象保持与原始对象属性的双向绑定,从而在解构和传递时保持响应性。watch是 Vue.js 中的一个选项,用于监听和响应 Vue 实例的数据变更。通过watch。
2024-10-10 09:41:43
2530
原创 手写spring
(img-hAiOCSPY-1728438204087)]DispatcherServlet(调度器)HandlerMapping(处理器映射)View Resolver(视图解析器)Controller(控制器)
2024-10-09 09:44:00
768
原创 拦截器和监听器
监听器(Listener)是 Java Web 应用程序中的一个组件,用于监听和响应特定的事件。监听器可以用于监控应用程序的生命周期、会话的生命周期、请求的生命周期以及属性的变化。它们在后台运行,当监听的事件发生时,自动执行相应的代码。
2024-10-09 09:42:20
452
原创 RabbitMQ
极端情况就是消费者一直无法执行成功,那么消息requeue就会无限循环,导致mq的消息处理飙升,带来不必要的压力,当然,上述极端情况发生的概率还是非常低的,不过不怕一万就怕万一。不过需要注意的是,交易服务并不知道用户会在什么时候支付,如果查询的时机不正确(比如查询的时候用户正在支付中),可能查询到的支付状态也不正确。在之前的测试中,本地测试达到最大重试次数后,消息会被丢弃。例如,订单支付超时时间为30分钟,则我们应该在用户下单后的第30分钟检查订单支付状态,如果发现未支付,应该立刻取消订单,释放库存。
2024-10-08 16:51:55
2717
原创 项目公共字段自动填充(自定义标签和@TableField)
*** 自定义注解,用于标识某个方法需要进行功能字段自动填充处理*///数据库操作类型:UPDATE INSERT/***自定义切面类,实现公共字段自动填充*/@Aspect@Component@Slf4j/*** 切入点*/log.info("开始进行公共字段的填充..");//获取到被拦截的方法上的数据库操作类型//方法签名//获取到当前被拦截方法的参数--实体对象return;//准备赋值的数据。
2023-08-20 15:44:13
168
原创 Docker入门
如果使用docker运行一个工程时需要运用到mysql容器,redis容器等多个容器时,就需要将所有的容器先启动起来然后才能运行项目,这样就需要run多个容器并且如果中途部分容器宕机可能会改变其ip地址从而导致写死的ip无法访问,而用docker-compose就类似dockerfile一样把多个步骤整合到一起。1.2:进入/mydata/mysql-master/conf目录下新建my.cnf。1.6:进入/mydata/mysql-slave/conf目录下新建my.cnf。
2023-08-17 21:27:39
128
原创 Nacos集群配置(Linux)
找到Nacos的conf目录下的application.properties进行修改。将nacos-server-1.3.1.tar.gz文件上传至虚拟机并解压。安装数据库找到官网下载对应的数据库版本。修改nginx配置文件。将其改为虚拟机的ip。
2023-03-30 20:37:09
335
原创 eclipse中spring的下载和配置
将红圈中地址改为http://dist.springsource.com/release/TOOLS/update/e4.18/,4.18为对应的版本号,可以按照自己eclipse的版本号来定。因为我用的是eclipse4.18,所以可以用文件下载和网站下载。直接选中插件的压缩包即可,然后勾选所有IDE。...
2022-08-03 16:34:43
789
原创 XML基本用法
2. 约束(1)内部引入直接创建一个xml文档(2)外部引入引用本地文件:创建一个DTD文件创建一个XML文件如果引用内部文件报错可以用以下代码:外部引入(网络)示例:Struts框架的配置文档的首行(3)schema约束创建一个XML Schema文档:XML文档,对schema的引用:3.使用dom4j解析xml文件首先导入dom4j.jar(jar包已上传)然后创建测试文件:...
2022-07-02 23:33:32
362
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人