- 博客(20)
- 收藏
- 关注
原创 线程的生命周期和状态
新建:创建出来的线程对象处于新建状态,由Java虚拟机为其分配内存空间,并初始化成员变量执行start方法后变为就绪状态。运行:有执行资格有执行权,如果调用sleep等方法会进入阻塞状态,如果run方法执行结束则死亡。死亡: 主线程结束的时候,其他线程不受影响,死亡线程不能再次使用。就绪:有执行资格没执行权,等到获得cpu时间片后进入运行状态。阻塞:没执行资格没执行权,等待阻塞结束进入就绪状态。
2024-10-09 17:40:32
421
3
原创 springboot和spring的事务与设计原则,以及springboot打包部署
AOP通过横切关注点(cross-cutting concerns)的分离,将业务逻辑与非业务逻辑(如日志记录、事务管理、权限验证等)进行隔离,从而降低模块间的耦合度,提高程序的可重用性和开发效率。IOC是一种设计原则和编程思想,它将对象间的依赖关系的关注点从程序内部转移到程序外部,由容器(Container)来负责对象的创建、销毁以及依赖关系的管理,而不是由程序员手动完成。⽀持当前事务,如果当前事务存在,则执⾏⼀个嵌套事务,如果当前没有事务,就新建⼀个事务。@PathVariable:接收请求中的参数。
2024-09-24 19:22:37
950
1
原创 Spring事务回滚流程
Spring事务回滚流程是Spring框架中事务管理的一个重要部分,它确保了当业务操作中出现异常情况时,能够自动地回滚之前所做的所有数据库操作,以保持数据的一致性。
2024-08-26 08:57:51
504
原创 redis分布式锁的常见实现方法
虽然基于 SETNX 的方法简单直观,但在实际使用中可能会遇到一些问题,如客户端崩溃导致的锁永久丢失等。而基于 Lua 脚本的方法则更加安全可靠,因为它能够确保加锁和设置过期时间的原子性。在实际应用中,建议根据具体需求和 Redis 的版本选择合适的实现方法。
2024-08-16 20:00:02
297
原创 ai写代码的提示方法
el-input v-model="dataForm.errorApperence" placeholder="故障表现"></el-input><el-input v-model="dataForm.faultCode" placeholder="故障码"></el-input><el-select v-model="dataForm.fixedPlan" placeholder="请选择" clearable>以下是它回答的,较长,我分两部分截图。水一下,这方法还是有用的。
2024-08-09 10:18:02
243
原创 本地文件上传,配置静态资源处理器
在Spring Boot中,实现文件上传并配置静态资源处理器是相对直接的。下面,我将通过一个简单的示例来展示如何完成这个任务。
2024-08-02 20:24:55
236
原创 前端js方法(秒转X天X时X分X秒)
if (minutes > 0) parts.push(`${minutes}分`);if (hours > 0) parts.push(`${hours}时`);if (days > 0) parts.push(`${days}天`);// 总是显示秒数,或者如果所有其他单位都是0,则仅显示秒数。parts.push(`${seconds}秒`);// 计算天数、小时数、分钟数和秒数。// 构建并返回格式化的字符串。// 计算时间差(毫秒)
2024-07-29 08:51:50
277
原创 Js常见事物及处理
在JavaScript中,事件是用户或浏览器自身执行的某种动作,如点击按钮、加载页面等。JavaScript提供了许多内置事件来处理这些动作。
2024-05-15 16:30:18
454
原创 redis使用
/如果使用空参构造,默认值 "localhost",6379端口。// 获取hash的所有map中的数据。哈希类型 hash : map格式。
2024-05-15 15:52:19
269
原创 MySQL数据库的多表查询介绍和举例
MySQL数据库中的多表查询通常涉及子查询,这些子查询可以根据返回的数据类型进行分类:标量子查询、列子查询、行子查询和表子查询。下面我将逐一介绍每种类型的子查询并给出相应的例子。
2024-03-18 09:17:21
413
原创 jdbc以及PrepardStatement与statement接口的简单介绍
开发者在使用JDBC时,需要充分理解这些重难点,并采取相应的措施来确保程序的正确性、安全性和性能。:JDBC提供了事务管理的功能,可以确保一系列操作的原子性、一致性、隔离性和持久性。SQL注入是一种严重的安全漏洞,攻击者可以通过输入恶意的SQL代码来操纵数据库。连接资源是昂贵的,需要妥善管理,避免资源浪费和泄露。在第一次执行时被编译和缓存,后续执行时直接使用缓存的编译结果,避免了重复编译的开销。如果需要构建复杂的、动态的SQL语句,可能需要结合使用。不同的数据库有不同的驱动类名,需要正确指定。
2024-03-08 19:47:33
349
1
原创 常见Api
除了这些基本的集合类型,Java的集合框架还包括迭代器(Iterator)、集合转换器(Collections)、列表迭代器(ListIterator)等工具类,它们提供了许多有用的方法,用于操作集合中的元素。Java 8引入了新的日期和时间API,提供了更强大和灵活的操作日期和时间的功能。Java的集合框架是Java编程语言的核心部分,它提供了丰富的接口和类,用于存储和操作对象。此外,新的日期和时间API还支持时区、格式化等功能,使得日期和时间的处理更加全面和灵活。
2024-02-28 14:35:17
338
原创 Java中,List、Set和Map常见的面试问题和答案
ArrayList使用动态数组作为底层结构,支持快速的随机访问(get和set操作的时间复杂度为O(1)),但在插入和删除元素时可能需要移动大量元素,因此这些操作的时间复杂度为O(n)。HashSet使用HashMap作为底层结构,它提供了快速的插入、删除和查找操作(时间复杂度接近O(1))。HashMap使用哈希表作为底层结构,提供了快速的插入、删除和查找操作(时间复杂度接近O(1))。
2024-02-23 16:18:17
1841
原创 反射的重点(干货)
二.类从被加载到虚拟机内存中开始,到卸载出内存结束。生命周期包括:加载、验证、准备、解析、初始化、使用、卸载;其中验证、准备、解析称为链接。加载、验证、准备、初始化、卸载,这几个阶段的顺序是确定的,类的加载过程必须按照这个顺序按部就班的开始;解析阶段不一定,某些情况下可以在初始化阶段之后再开始。
2024-01-30 14:59:01
357
1
原创 集合框架重难点
jdk1.7中的hash函数对哈希值的计算直接使用key的hashCode值,而1.8中则是采用key的hashCode异或上key的hashCode进行无符号右移16位的结果,避免了只靠低位数据来计算哈希时导致的冲突,计算结果由高低位结合决定,使元素分布更均匀;jdk1.8是扩容时通过hash&cap==0将链表分散,无需改变hash值,而1.7是通过更新hashSeed来修改hash值达到分散的目的;如果找到相同的键,则更新该键对应的值,并返回旧值。4扩容,5更新修改次数,6返回旧值。
2024-01-26 20:10:47
343
1
原创 Java中面向对象的重难点
构造方法执行的时,都会执行该代码块中的代码,并且在构造方法执行前执行。如果实现了多个接口,多个接口中存在相同的方法声明,子类就必须对该方法进行重写。如果实现了多个接口,多个接口中存在相同的方法声明,子类就必须对该方法进行重写。方法中定义,限定变量的生命周期,及早释放,提高内存利用率。- 默认方法可以调用私有的静态方法和非静态方法。- 默认方法可以调用私有的静态方法和非静态方法。子类中所有的构造方法默认都会访问父类中无参的构造方法。抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类。
2024-01-12 16:33:20
338
1
原创 java基础应用中的难点及容易忽视的部分
数组长度为3,索引范围是0~2,但是我们却访问了一个3的索引,就会出现索引越界异常。private修饰的类(本文件内使用)方法,变量可以在本类内使用。public修饰的类,方法,变量可以在任何地方使用。三Debug(想深入学习就很重要)代码右侧断点,F7下一步。
2024-01-05 14:01:32
523
1
原创 JAVA基础及容易忽视的点
4.运算符:算术运算符,赋值运算符,关系运算符,逻辑运算符,三元运算符,自增自减运算符。`float`: 32位,单精度,范围为 1.4E-45 到 3.4E+38。`short`: 16位,有符号,范围为 -32,768 到 32,767。`long`: 64位,有符号,范围为 -2^63 到 2^63-1。`int`: 32位,有符号,范围为 -2^31 到 2^31-1。`byte`: 8位,有符号,范围为 -128 到 127。6.循环:while,do......while,for。
2023-12-28 10:02:02
355
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人