- 博客(42)
- 收藏
- 关注
原创 mybatis-plus-join中的一对一和一对多
第一个参数是User::getOrderList指定主实体类(User中)存储关联对象列表的属性。第三个参数是一个 Lambda 表达式,用于指定关联查询的条件和要查询的字段,这里只查询了。第三个参数是用于指定关联查询的条件和要查询的字段,这里只能查询order表的order表。selectCollection 用于处理一对多关联查询。第二个参数 Order.class 是关联对象的实体类。leftJoin 用于指定左连接操作,)中存储关联对象的属性。是关联对象的实体类。定义Mapper接口。
2025-02-27 17:58:40
857
1
原创 第三周java面试复习题
1.快速计算索引 :HashMap使用取模运算来计算元素在数组中的索引,取模运算中的除数应当是2的幂次方。当数组长度为2的幂次方时,可以使用位运算符来替代模运算,提高计算效率2.均匀分布:当数组长度为2的幂次方时,HahsMap使用元素的哈希码保证索引在0到length-1之间(),底层有(n-1)&hash3.扩容机制(快速计算个元素的下标)
2025-01-15 11:20:17
1157
原创 java基础面试题
实现步骤:1.定义异常类2.写继承关系3.提供空参构造4.提供带参构造5.也能重写里面的getMessage()、toString()等,来提供更详细自定义的异常信息// 自定义检查型异常// 带有详细信息的构造函数// 无参构造函数super();// 重写getMessage方法@Overridereturn "这是一个自定义的检查型异常:" + super.getMessage();// 自定义运行时异常// 带有详细信息的构造函数// 无参构造函数super();
2025-01-06 11:27:38
727
原创 java基础面试题
5.分代收集算法,因为生命周期的不同,所以它将堆内存为新生代和老年代,新生代(Eden区,Survivor区),新创建的对象一般在Eden区分配内存,当Eden区满了,就会触发一次Minor GC(新生代垃圾回收),将活的对象复制到Survivor区,经过多次Minor GC后,还存活的对象会被移动到老年嗲。访问速度:栈的访问速度比较快,这是因为栈中的数据存储和访问方式相对简单,是一种后进先出的数据结构,栈帧在栈中的位置是固定的,通过栈指针就可以快速地定位和访问栈帧中的局部变量和操作数。
2024-12-26 11:19:41
893
原创 链式设计-------责任链模式和装饰模式
它允许通过组合而非继承的方式,灵活地为对象附加新特性,规避了因多层继承带来的复杂性与僵化问题。例如,开发一款咖啡售卖系统,基础款咖啡是原味咖啡,后续要增添摩卡、拿铁、焦糖等风味,使用装饰模式,就不用频繁修改原味咖啡类,只需新增风味装饰类即可。 责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。 公共接口:将中间类和功能拓展类以及原始对象的进行联系。 中间类:寻找父亲,找到原始类,动态的添加职能。 原始对象:用原始功能,需要扩展其他的功能呢。
2024-12-06 21:01:43
971
原创 分层-解耦
3.Resource注解是按照name名称进行选择注解的(@Autowired是spring框架提供的注解,而@Resource是jdk提供的注解。声明bean的时候,可以使用value属性指定bean的名字,如果没有指定,默认为类名首字母小写。前面声明bean的四大注解,要想生效,还需要被组件扫描注解@ComponentScan扫描。1.Primary:加在bean上面,加在那个bean上,就说明那个bean生效。controller:控制层,接受前端发送的请求,对请求进行处理,并响应数据。
2024-12-05 16:04:02
426
原创 1.MybatisPlus的起步依赖
MyBatisPlus官方提供了starter,其中集成了Mybatis和MybatisPlus的所有功能,并且实现了自动装配效果。update-strategy: not_null # 更新策略:只更新非空字段。的配置项继承了MyBatis原生配置和一些自己特有的配置。id-type: assign_id # id为雪花算法生成。通过扫描实体类,并基于反射获取实体类信息作为数据库表信息。1.MybatisPlus的起步依赖。:用来指定表中的主键字段信息。:用来指定表中的普通字段信息。
2024-12-05 15:58:36
514
原创 AOP基础
目标对象(Target):原始功能去掉共性功能对应的类产生的对象,这种对象是无法直接完成最终工作的。代理(Proxy):目标对象无法直接完成工作,需要对其进行功能回填,通过原始对象的代理对象实现。JoinPoint:适用于前置、后置、返回后、抛出异常后通知。JoinPoint:适用于前置、后置、返回后、抛出异常后通知。ProceedJointPoint:适用于环绕通知。2.通知类型选择前后均可以增强的类型——环绕通知。2.通知类型选择前后均可以增强的类型——环绕通知。3.制作共性功能(通知类与通知)
2024-11-25 08:52:26
439
原创 Spring事务
Spring注解事务通常添加在业务层接口中而不会添加到业务层实现类中,降低耦合,注解式事务可以添加到业务方法上表示当前方法开启事务,也可以添加到接口上表示当前接口所有方法开启事务。分析:1.数据层提供基础操作,指定账户减钱(outMoney),指定账户加钱(inMoney):加入事务方,在Spring中通常指代数据层方法,也可以是业务层方法。2.业务层提供转账操作(transfer),调用减钱与加钱的操作。:发起事务方,在Spring中通知指代业务层开启事务的方法。需求微缩:A账户减钱,B账号加钱。
2024-11-15 10:07:25
207
原创 Mybatis配置文件的增删改查功能
使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂与一点的语句,Java注解不仅力不从心,还会让你本来就复杂的SQL语句更加混乱不堪。使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂与一点的语句,Java注解不仅力不从心,还会让你本来就复杂的SQL语句更加混乱不堪。建议:将来都使用@Param注解来修改Map集合中默认的键名,并使用修改后的名称来获取值,这样可读性更高。建议:将来都使用@Param注解来修改Map集合中默认的键名,并使用修改后的名称来获取值,这样可读性更高。
2024-11-14 17:40:26
627
3
原创 mybatis
MyBatis是一款优秀的持久层框架,用于简化JDBC开发MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。细节:如果Mapper接口名称和SQL映射文件名称相同,并在同一目录下,则可以使用包扫描的方式简化SQL映射文件的加载。3.在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致。1.定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下。 2.调用对应方法完成sql的执行。
2024-11-14 09:20:30
770
原创 框架注解开发总结
在Dao层@component (组件)就是类似于加名字就写上@component(“bookDao”)还需要在resources文件里面的applicationContext.xml中配置在service层@Componentservice层和Dao层是有关联的,Dao层指向service层的聚集关系//一个是按照名称访问一个是按照类访问(反射)
2024-11-12 15:37:58
819
原创 Spring系统框架
BeanFactory是IOC容器的顶层接口,初始化BeanFactory对象时,加载的bean延迟加载ApplicationContext接口时Spring容器的核心接口,初始化时bean立即加载ApplicationContext接口时提供基础的bean’操作相关方法,通过其他接口扩展其功能ApplicationContext接口常用初始化类延迟加载ApplicationContext接口时Spring容器的核心接口,初始化时bean立即加载。
2024-11-11 16:17:54
1065
原创 linux基础命令
FinalShell登陆终端后,默认的工作目录就是用户的HOME目录。,将cat a.txt的结果,作为grep命令的输入,用来过滤。rm命令很危险,一定要注意,特别是切换到root用户的时候。,表示当前工作目录内的test文件夹内的a.txt文件。参数:目标目录,要切换去的地方,不提供默认切换到。功能:将符号左边的结果,输出到右边指定的文件中去。功能:被两个反引号包围的内容,会作为命令执行。功能:将符号左边的结果,作为符号右边的输入。参数文件路径,可以作为管道符的输入。参数文件路径,可作为管道符的输入。
2024-11-04 08:52:49
456
原创 Redis
键值型NoSql其中键值型,是指Redis中存储的数据都是以key.value对的形式存储,而value的形式多种多样,可以是字符串.数值.甚至json:而NoSql则是相对于传统关系型数据库而言,有很大差异的一种数据库。对于存储的数据,没有类似Mysql那么严格的约束,比如唯一性,是否可以为null等等,所以我们把这种松散结构的数据库,称之为NoSQL数据库。贴心小建议:命令不要死记,学会查询就好啦。
2024-11-04 08:49:50
951
原创 Redis安装说明
大多数企业都是基于Linux服务器来部署项目,而且Redis官方也没有提供Windows版本的安装包。因此课程中我们会基于Linux系统来安装Redis.此处选择的Linux版本为CentOS 7.Redis的官方网站地址:https://redis.io/
2024-10-28 09:50:19
718
原创 js基础第三天
script > // 1. 语法,使用 [] 来定义一个空数组 // 定义一个空数组,然后赋值给变量 classes // let classes = [];// 2. 定义非空数组 let classes = [ '小明' , '小刚' , '小红' , '小丽' , '小米' ] </ script >// 1. 语法,使用 [] 来定义一个空数组。
2024-10-28 09:41:08
954
原创 Redis底层和缓存雪崩,击穿,穿透
解决方式:可以使用分布式锁,在击穿redis到数据库时,给上锁就只有一个线程能操作它的锁,对数据的压力就变小,等查到这个数据时,再把缓存重新写到这个redis里面,其他没有抢到线程的,先暂停几毫秒,当第一个线程在数据库中访问到信息,就会返回到redis里面去,当接下来的用户进行数据请求时,就能够直接俄从redis里面把数据给查询出来。第一个 :设置缓存的失效时间,让它不在同一时间失效,在我们设计这个缓存的时候,随机初始化它的这个失效时间,这样的话所有的缓存就不会同一时间失效,把所有的请求都打到数据库上。
2024-10-21 11:08:49
837
原创 JDBC的基础知识,基本练习
JDBC就是使用Java语言操作关系型数据库的一套API1.JDBC简介JDBC概念:JDBC就是使用Java语言操作关系型数据库的一套API全称: ( Java DataBase Connectivity ) Java数据库连接JDBC定义一套标准接口,而MySQL,Oracle,DB2都定义了JDBC的实现类JDBC本质:JDBC好处:各数据库厂商使用相同的接口,Java代码不需要针对不同数据库分别开发,可随时替换底层数据库,访问数据库的Java代码基本不变创建工程,导入驱动jar包mys
2024-09-11 14:16:31
1255
原创 数据库进阶:3.SQL优化
①. Using filesort :通过表的索引或全表扫描,读取满足条件的数据行,然后在排序缓冲区sort buffer中完成排序操作,所有不是通过索引直接返回排序结果的排序都叫FileSort 排序。一个常见又非常头疼的问题就是limit 2000000,10,此时需要MySQL排序前2000010记录,仅仅返回2000000 - 2000010的记录,其他记录丢弃,查询排序的代价非常大。有not null约束: InnoDB 引擎会遍历整张表把每一行的字段值都取出来,返回给服务层,直接按行进行累加。
2024-09-10 08:42:38
1389
原创 数据库进阶:2.索引
1.索引概述索引是高效获取数据的数据结构;2.索引结构B+TreeHash3.索引分类主键索引、唯一索引、常规索引、全文索引聚集索引、二级索引4.索引语法5.SQL性能分析执行频次、慢查询日志、profile、 explain6.索引使用联合索引索引失效SQL提示覆盖索引前缀索引单列/联合索引7.索引设计原则表字段黑马程序制作的图,联合索引的二级索引。1.索引概述索引是高效获取数据的数据结构;2.索引结构B+TreeHash3.索引分类。
2024-09-09 16:07:55
2528
原创 SQL中的函数、约束
流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。数据库表中,存储的是入职日期,如2000-11-12,如何快速计算入职天数?数据库表中,存储的是学生的分数值,如98、75,如何快速判定分数的等级呢?注意:约束时作用于表中字段上的,可以在创建表/修改表的时候添加约束。1.概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。2.目的:保证数据库中数据的正确,有效性和完整性。– 成绩>=85,优秀。
2024-09-05 22:38:43
1145
原创 DML、DQL、DCL的基础介绍
DML英文全称Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作添加数据(INSERT)修改数据(UPDATE)删除数据(DELETE)DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。查询关键字:SELECT基本查询条件查询(WHERE )聚合函数(count. max. min. avg. sum )分组查询(GROUP BY)
2024-09-04 22:36:34
2541
2
原创 数据库相关概念
2.数据库管理系统:操作和管理系统数据库的大型软件。3.SQL 操作关系型数据库的编程语言,是一套标准。当在下载成功之后,会形成一个系统服务。免费,MySQL不提供任何技术支持。1.数据库 :数据存储的仓库。
2024-09-01 18:52:14
570
原创 枚举的基础知识点和使用情况
枚举是一个特殊的类X,Y,Z;修饰符enum枚举类名{名称1,名称2,...;其他成员...注意:枚举关键字是enum注意:枚举类中的第一行,只能写一些合法的标识符(名称),多个名称用逗号隔开。这些名称,本质是常量,每个常量都会记住枚举类的一个对象。static {};
2024-08-22 08:53:29
1089
原创 Java反射的基础知识点以及基本代码的使用讲解
反射就是:加载类,并允许以编程的方式解剖类中的各种成分(成员变量、方法、构造器等)1.反射第一步:加载类,获取类的字节码:Class对象。2.获取类的构造器:Constructor对象。获取全部构造器(只能获取public修饰的)基本作用:可以得到一个类的全部成分然后操作。4.获取类的成员方法:Method对象。3.获取类的成员变量:Field对象。获得成员变量的作业:依然是赋值、取值。反射的具体内容:获取类的信息,它们。获取Class对象的三种方式。成员方法的作用:依然是执行。
2024-08-21 11:21:34
1422
原创 双列集合--Map集合和Stream流
本文章讲解的是双列集合---Map集合和Stream的知识点,有底层原理。另外我的另外两篇博客都讲了HashSet和HashMap的存储比较的底层原理。
2024-08-18 15:42:52
895
原创 单例集合Collection
本文章主要针对的是Collection其中的单列集合,其中讲解其中的数据机构,数组和链表以及哈希表,二插树,红黑树。以及其中的方法的介绍以及代码演示。
2024-08-18 15:36:04
921
原创 HashSet 的底层实现细节
HashSet 在实现上确实使用了 HashMap 的键(key)部分,而不是值(value)部分。在 HashSet 中,每个元素都被当作 HashMap 的键来存储,而值部分总是同一个静态对象 PRESENT,这是一个 new Object() 的实例。HashSet 中元素的唯一性是由元素的 hashCode() 和 equals() 方法共同决定的。HashSet 的内部实现是通过 HashMap 的 KeySet 视图来完成的。HashSet 底层使用 HashMap 来存储元素。
2024-08-16 14:54:57
338
原创 HashMap集合的底层原理
如果键存储的是自定义类型的对象,可以通过重新hashCode和equals方法,这样可以保证多个对象内容一样时,HashMap集合就能认为是重复的。实际上:原来学的Set系列集合的底层就是基于Map实现的,只是Set集合中的元素只要键数据,不要值数据而已。HashMap跟HahSet的底层原理是一模一样的,都是基于哈希表实现的。HashMap的键依赖hashCode方法和equals方法保证键的唯一。哈希表是一种增删改查数据,性能都较好的数据结构;JDK8开始,哈希表=数组+链表+红黑树。
2024-08-16 14:07:13
191
原创 常用API的介绍和基本使用
什么是API API (Application Programming Interface) :应用程序编程接口java中的API 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。打开帮助文档找到索引选项卡中的输入框在输入框中输入Random看类在哪个包下看类的描述看构造方法看成员方法。
2024-08-09 17:20:48
2079
原创 面向对象基础学习
类的组成是由属性和行为两部分组成**属性:**在类中通过成员变量来体现(类中方法外的变量)**行为:**在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可) ① 定义类 ② 编写类的成员变量 ③ 编写类的成员方法// 属性 : 姓名, 年龄// 成员变量: 跟之前定义变量的格式一样, 只不过位置发生了改变, 类中方法外int age;// 行为 : 学习// 成员方法: 跟之前定义方法的格式一样, 只不过去掉了static关键字.
2024-08-02 09:57:47
1084
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人