- 博客(31)
- 收藏
- 关注
原创 杀戮尖塔游戏
主要思路是使用动态规划,构建一个二维数组dp,dp[i][j]表示使用前i张卡牌,花费j金币能造成的最大伤害。对于每一张卡牌,我们可以选择使用或不使用,使用时需要判断当前金币是否足够,如果足够,就选择使用该卡牌,计算使用该卡牌后的伤害值;不足够时,就选择不使用该卡牌。最后返回dp[N][3],表示使用前N张卡牌,花费3金币能造成的最大伤害。Java 你正在玩策略卡牌杀戮尖塔游戏,轮到你出牌,手里N张攻击卡,每张都需要花金币coust[i]和获得伤害dmager[i]。最多花3金币能造成的最大伤害是多少?
2024-06-16 22:33:45
394
原创 MyBatis-Plus级联查询(多表联查)
mybatis-plus作为mybatis的增强工具,简化了开发中的数据库操作。一旦遇到left join或right join的左右连接,还是得老老实实的打开xml文件,手写上一大段的sql语句。今天总结一下一款叫做mybatis-plus-join的工具(后面就简称mpj了),可以用类似mybatis-plus中QueryWrapper的方式来进行联表查询。
2024-01-08 02:18:59
2159
原创 Spring Security Config配置类常见问题
在上述示例中,通过@Bean注解将BCryptPasswordEncoder实例化为一个PasswordEncoder bean,并将其返回。这样,在springSecurityFilterChain方法中就可以使用这个PasswordEncoder bean,解决passwordEncoder参数为null的问题。bean的实例化过程中,调用了一个工厂方法springSecurityFilterChain,而该方法抛出了一个异常,异常的原因是passwordEncoder参数为null。
2024-01-08 02:07:54
1562
原创 SpringBoot自动配置原理
在了解SpringBoot自动配置原理前,我们得先了解SpringBoot的启动类注解@SpringBootApplication,该注解是一个复合注解。点进去可以发现,其本身依赖了很多注解,而SpringBoot自动配置的关键性注解是@EnableAutoConfiguration,但其实这个注解也是一个复合注解,用于载入所有应用程序需要导入的默认配置。当然,@SpringBootConfiguration和@ComponentScan也是自动配置中比较重要的注解。
2023-12-25 20:14:27
81
原创 声明式事务及编程式事务
事务是由数据库管理系统在执行过程中形成的一个逻辑单位,它由一组有限的数据库操作序列组成。通常情况下,事务是由程序单元通过高级语言或数据库的数据操作语言提交的。
2023-12-13 20:13:35
114
原创 图片存储和如何返回给前端
同时要注意,上传图片通过我们的接口,我们需要去校验文件的真实性,大小。对于图片上传,大家了解了,其他的文件也是同样的道理,图片,文件,视频等等都是一样的。对于前端需要上传的图片,我们后端通过MultipartFile 去接受图片,然后通过阿里云的接口去把图片上传就可以了。通过输出流的方式把图片给前端。温馨提示:对于一些图片需要用户主动去上传,并且会展示出来的图片,切记要进行第三方的对图片的安全检查。这种方式适合一些固定图片的场景,不太适合图片太多的场景,对于前端来说有过多的base64不太合适。
2023-11-26 22:46:58
357
原创 @Autowired 与@Resource的区别
Autowired是Spring中的注解,@Resource是JSR-250中提供的注解依赖注入的功能,是通过先在 Spring IoC 容器中查找对象,再将对象注入引入到当前类中。而查找有分为两种实现:按名称(byName)查找或按类型(byType)查找,其中 @Autowired 和 @Resource 都是既使用了名称查找又使用了类型查找,但二者进行查找的顺序却截然相反。
2023-11-20 01:49:15
164
原创 使用@Builder注解导致线上报NPE的问题
在给一个用@Builder注解的Java Bean的一个属性赋默认值之后,使用build方式构建出来的对象该属性的值是null。
2023-11-08 16:50:11
120
原创 关于Servlet详解
Servlet是一种Java技术,主要用于在Web服务器上处理HTTP请求和响应。它是一个运行在服务器端的程序,能够接收浏览器发送的请求并相应地生成响应。Servlet通常用于Web应用程序的开发,它可以与JSP(Java ServerPages)一起使用来动态生成Web页面。Servlet可以处理各种类型的请求,例如POST和GET请求,以及与数据库的交互。它是JavaWeb应用程序的基础技术之一。
2023-10-31 00:07:45
82
原创 Redis——常见问题2
如果是先删除缓存,再更新数据库,理想情况是应用下次访问Redis的时候,发现Redis 里面的数据是空的,就从数据库加载保存到Redis里面,那么数据是一致的。如2-1图所示在这样一个架构中,会出现一个问题,就是一份数据,同时保存在数据库和Redis里面,当数据发生变化的时候,需要同时更新Redis和Mysql,由于更新是有先后顺序的,并且它不像Mysql中的多表事务操作,可以满足ACID特性。如果先更新数据库,再更新缓存,如果缓存更新失败,就会导致数据库和Redis中的数据不一致。
2023-10-16 02:40:49
139
原创 SQL学习(三) —— 增
选择 数据库->SSMSTest->表->dbo.student 右键单击dbo.student选择编辑前200行。和SQLServer操作类似。
2023-09-18 01:22:44
557
原创 SQL学习(二)主键、外键
什么是主键?关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键。什么是外键? 其他表的主键称为外键。
2023-09-11 00:16:08
3705
原创 SQL学习(一)
数据库中存储的基本对象,描述一个事物的符号记录,数据和其语义不可分开说(DB):是长期储存在计算机内、有组织的、可共享的大量:一个管理数据的软件。
2023-09-04 02:51:18
353
原创 Java前端与后端的请求交互实现
前端与后端的请求交互可以通过以下步骤实现:前端发送请求:前端通过Ajax、Fetch等技术向后端发送请求,可以传递参数和请求头等信息。后端接收请求:后端接收前端发送的请求,并解析请求参数和请求头等信息。后端处理请求:后端根据请求参数和请求头等信息进行相应的业务处理,可以查询数据库、调用其他服务等。后端返回响应数据:后端将处理结果返回给前端,可以是JSON、XML或其他格式的数据。
2023-08-29 08:45:55
1847
原创 Redis——常见问题1
2、当应用程序需要去读取某个数据的时候,首先会尝试去Redis里面加载,如果命中就直接返回。2、在Linux系统上Redis通过pipelining可以处理100W个请求/s,而应用程序的计算复杂度主要是O(N)或O(logN),不会消耗太多CPU。1、如果采用多线程,对于Redis中的数据操作,都需要通过同步的方式来保证线程安全性,反而会降低Redis性能。1、一般情况下,Redis用来实现和数据库之间读操作的缓存层,主要目的是减少数据库IO,提高数据的IO性能。由一个主线程处理所有IO操作。
2023-08-17 17:07:37
493
原创 数组——接雨水
2、分别找到左右两边可以存水的第一个位置,然后根据分段法,继续切割并存水。的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。1、先遍历,找到最高点的位置,即屋顶。个非负整数表示每个宽度为。
2023-08-17 10:10:13
73
原创 汇编原理——常用知识点2
大家主要记住一型文法\二型文法\三型文法就OK了,一般考就这几个,0型文法很少考,可以直接当做图灵机来记忆。符号我不会写,所以文法我直接跳过了。直接看例子,好理解。
2023-08-13 23:50:14
66
原创 Java——String类、StringBuffer类、StringBuilder类
StringBuffer类和StringBuilder类的方法一样,这两个类中StringBuffer类用的比较多,且记这个就能记住另一个。java后台将String转化为StringBuffer或StringBuilder,进行修改,修改完成,转换为String,进行响应。注意:在实际开发中,前端传过来的数据一般都是String类型(属于异构平台通用类型)。String类:不可变字符串。StringBuilder类:可变字符串,单线程,且线程。StringBuffer类:可变字符串,多线程,且线程。
2023-08-04 09:37:30
79
原创 Java——异常
2、如果一个方法内部调用其它方法,其它方法抛出一个编译/运行时异常,该方法不想处理,则可使用throws声明,继续向上抛。}catch(异常类 变量名){ // 捕获到异常(try中的代码产生的异常对象)与catch的异常类。1、如果抛出编译时异常,必须在方法签名上,使用throws声明抛出什么类型的异常。3、throws后面可以接多个异常类,若这多个异常类存在继承关系,则只需要写父类。1、运行时异常:java不会强制性处理,可处理可不处理。2、编程异常:必须处理,不处理则编译不通过。
2023-07-25 15:05:06
60
原创 Java中Arrays.sort()一维数组的升序、降序、区间排序
Arrays.sort(数组名,int formIndex(起始位置), int toIndex(终止位置))Arrays.sort(数组名,Collections.reverseOrder())public int compare(数据类型对应的类 o1, 数据类型对应的类 o2) {Arrays.sort(数组名, new Comparator() {Arrays.sort(数组名)注意:数组不能是基本数据类型。return 重载方式;
2023-07-20 12:58:31
2725
原创 Java基础——多态
某一事物的不同表达形式,即多态。在Java中,多态是同一个行为具有多个不同表现形式或形态的能力。也可以类比成同一个接口,使用不同的实例执行不同的操作。
2023-07-20 09:43:32
780
空空如也
Tomcat 10 常见问题
2023-11-21
说一下你对ThreadLocal的理解, 我们在使用ThreadLocal要注意什么?
2023-11-14
MySQL中在新创建的表中能否给已经存在的列添加自增约束?
2023-09-26
Redis是否存在线程安全问题?
2023-08-17
引用传递传的到底是啥?传的应该不止是地址吧?
2023-08-04
Java常识——int 和 Integer
2023-07-30
/tmp/hadoop-cat-namenode.pid: 权限不够
2022-10-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人