- 博客(68)
- 收藏
- 关注
原创 奇怪的问题,有大佬能解答一下吗?算法
这个代码应该最后多着一个元素,且是最后一个元素才对啊。为什么当target=7时,结果是:[[2,2,3,3],[2,7,7]]呢?这个2,7,7是什么鬼?为什么多了两个元素?为什么还有一个元素是2?
2025-09-15 14:34:32
116
原创 回溯算法2025.9.7
回溯算法和递归不是很相同。就是说,递归只是用来到达它的最深处,也就是深度搜索DFS,但是呢,回溯的核心是把它变回原来的样子。也所以:List<List<Integer>>而不是ArrayList<ArrayList<Integer>>java要符合面相接口编程。所以List res = new ArrayList();最后回溯算法那个还原是保证了谁?是保证了当前根节点的兄弟们的分支正确。模板:不懂可以先背过。不需要完全完全理解。但是递归的理解要:一层一层的理解。计算机执行递归是一个一个的执行。
2025-09-11 00:31:48
150
原创 AI存在的问题
2025.9.10:AI只能输出自己学过的。而且它输出的也是按照学过的输出,不会创造东西,因此局限性很高。而且它本身没有逻辑思维,所以导致输出错误的结果。也许“没有逻辑”本身才是导致AI幻觉的罪魁祸首。这也许是为什么AI无法输出“10个字的句子”的原因。比如:我给他的这个代码,只能打印()()()这种,可是AI告诉我能够打印全部。
2025-09-11 00:20:02
112
原创 编程思维及实践
防御性编程:使程序在遇到意外输入或错误情况时能够优雅地处理,而不是崩溃或产生不可预测的行为。比如:在方法开始前判断传入参数是否为null或空对象。而递归边界不属于防御性编程。虽然递归边界也是if语句的判断,但是它的作用明显是是为了递归有界,有实际用途;
2025-09-09 11:09:17
75
原创 Java基础知识
注意:int[] nums nums.length是属性,不用用()就能用。java创建对象,但是没有给对象任何东西的时候,这个时候对象不是null,只是它的行为或者说方法是空的。其实,java最底层,传入参数的顺序和方法顺序一点儿也不能错。比如String int List,那么传入参数就要String int List。方式2: int[] nums = {1,2,3,4,5,6,7,8,9,10};List和String都是地址传递。递归一定会产生树的,而且这个树不可能是重复的。
2025-09-07 04:42:41
334
原创 链表____
遍历整个链表的话,用cur跑就行了。但是如果说要链接某个链表,那是需要1:头,以便链接完成之后找到该链表;2:当前节点的前一个节点,而不是像遍历一样用cur。我称这个节点为prevCur。这也是为什么创建链表通常用。
2025-08-29 22:32:51
117
原创 2025.8.28链表_删除链表倒数第N个节点
C语言不可以用node.next.next因此需要用front和back指针进行删除节点。但是java可以用node.next.next因此可以只用一个指针就行。
2025-08-28 23:48:04
75
原创 Set集合
set的set.add(head)是有返回值的,是返回了一个布尔值:false或true。如果两次添加同一个元素,第二次会添加失败,但是不会报错。
2025-08-28 00:51:08
85
原创 2025.8.27链表_链表逆置
JAVA中的方法是引用传递,传过来的是地址值,如果对该地址值操作,会改变原来的东西。链表中的指针只是用来标记,具体连接方式,是按照node.next链接。JAVA中头节点存东西,不是空的。
2025-08-27 23:54:01
181
原创 JAVA中的ListNode类_算法两数相加
ListNode是一个对象非基本类型,因此创建新对象 必须要用new来创建,但是如果创建为null的对象,是不需要用new的,可以直接=出来。比如:ListNode head=null;循环内int的n1只能在循坏内访问。比如for内int了一个n1,for外sout(n1)是会报错的。比如:ListNode head=null,tail=null;中,可以在一行内同时声明并初始化多个同类型的变量,用逗号。对此位置取值用的是取余%,取进位的时候用的是取商/循环内可以直接写int,不会因为重复int而报错。
2025-08-17 16:35:38
183
原创 JXD进步25.7.30
1.为啥是update,因为你if判断有问题。或者是你上来就给id赋值了。3.断点位置打在这里:打在上面它进不来。2. 这个是清空network历史。
2025-07-30 20:23:14
175
原创 java后端
Math.random()小细节:生成0-100之间的整数:是Math.random()*101而不是100.因为转成整数会直接舍弃后面的小数位。JAVA中Math.random()只能返回0-1之间的随机值。不像Python,Python可以返回任意的区间。=是赋值,而==是判断是否相等。=是运算符,但是==是bool表达式最后返回了一个bool值。是1转成double,所以是变大。java中的数组,长度固定,只能存放同类。本身就带有.length属性。方法就是函数,函数就是方法。只读:是只能用弹窗选。
2025-07-24 16:27:26
183
原创 日记_7.14_实际开发的进步
6、var、let区别:1 var全局。2 var可以重新声明格式,let之恩能重新编辑本格式内的。比如让str变成新的str,不能让str变成int等等。const是局部,不可重申,不可分配。9、<<=是乘2的X次方 >>=除以2的X次方。两者和自身符号相反。7、let和const区别:let是局部,可重申,不可分配。3、前端没有意义的块叫div和span。5、JS中$和_下划线和doller符均被视为字母。const都不能改,这个const叫常量。2、会定位前端啦啦啦!8、**平方的意思。
2025-07-15 16:50:17
277
原创 7.4_面试_JAVA_
新来一个任务,加到最高级队列的末尾,按先来后到进行执行,如果执行时间超过了没执行完就转到第二级队列。最高级队列空了再执行第二级队列以此类推,如果这时候新来一个任务加到了最高级队列,就停止当前任务,去执行新任务。1先来服务算法:从队列中拿出最先入队的一个,一直运行,直到退出。本来是只监听一个网络连接,如果这个接口迟迟没有发送数据,会造成阻塞。4、时间片轮转:设定一个固定时间,一般20-50ms。3、响应比算法:(用响应时间+等待时间)/等待时间,算出来,所谓的学习,就是学了一个高耦合,低内聚。
2025-07-04 23:44:18
200
原创 7.1_JAVA_其他
2、JenKins:持续集成。每当我们push代码时,就会触发项目完成自动编译和打包。5、Feign是一个声明式的HTTP客户端,用于简化服务间的REST调用。1、Jenkins:上传git之后,会像脚本一样自动做很多事。6、Seata 是一个 分布式事务解决方案,用于。4、以下三个注入Bean的方式完全相同。
2025-07-01 23:33:09
169
原创 6.30_八股文_图解系统_硬件结构
什么是AOP: Java 就是一门面向对象编程的语言,在 OOP 中最小的单元就是“Class 对象”,但是在 AOP 中最小的单元是“切面”。相当于是把 Bean 实例的创建过程交给 Spring 管理,无论是通过 XML、JavaConfig,还是注解方式,最终都是把实例化的工作交给 Spring 负责,之后 Bean 之间通过接口相互调用,而实例化过程中就涉及到。容器统一管理业务 Bean,你的应用在部署、修改、迭代的时候,业务 Bean 是会侵入代码实现并互相调用的。
2025-07-01 14:26:19
823
原创 6.27_JAVA_面试(被抽到了)
如果查找某个字段的话,MYsql查询很慢,因为它是磁盘读取以及时间复杂度是On,但是我们通过索引能够大大加快寻找这个数据的速度。索引在Mysql的底层是构建了一个B+🌳,把这个字段的数据放进去了。B+树非叶节点存的数据是这个数据指向的节点的最大值。如,上图第二行第一个节点中的15指向的是第三行第一个节点的最大值15.什么样的字段需要建索引, 什么样的字段不需要?1️⃣B每个节点都存储数据,但B+只有叶子节点存储数据。它底层是通过构建B+树把建立的索引字段给纳入进去了。B树的叶子节点是指向数据。
2025-06-27 20:26:33
512
原创 6.27_JAVA_Redis(面试)
脑裂是因为主节点和从节点或者哨兵失去连接,哨兵没有及时感应到主节点存活,从而错误选举新主节点。但是当网络恢复之后,新主节点会成为真正的主节点,而旧主节点会降级成从节点。然后再从新的主节点同步数据,但是由于新的主节点啥都没写入,从而造成大量数据丢失。如果内存不够,一般在对应服务分配不同的主从Redis就可以了,一般不用集群。9、Redis最大用处:把热点数据存在redis,降低服务器压力。查询一个数据库不存在的数据,因此没法写入redis,导致每次查都要重新查增大服务器压力。RDB:定期把数据更新到磁盘。
2025-06-27 18:02:27
295
原创 6.26_JAVA_微服务_Elasticsearch
这个lambdaQuery是ItemService继承了Iservice然后Iservice中写了lambdaQuery这个在service层就可以查询的方法。,且只返回了一个对象,也不是返回的类!4、下面这个是多个文档(document),而不是一个文档。下面这个类调用的不是方法,返回的也不是类本身的对象。这个类调用的是静态的一个变量。7、看到这个算法公式的时候,我很庆幸自己学的是计算机而不是数学😭。底层原理是类可以“返回类本身(其实不是类,而是对象)”。6、ES的DSL查询分为叶子查询和复合查询。
2025-06-26 22:22:04
437
原创 6.25_JAVA_若依
3、一般类是public,方法也是public,但是字段是private。前端:1<el-select> 2写入向后端索要的 结构。8把admin模块里的CommonController的上传方法修改(单个上传)4把别人已经写好的阿里云配置类Properties和Operator客户端导入。2把url给改了,改成阿里云的url。1把阿里云的bean对象给写进来。4、修改后的若依,生成的代码直接从预览里面复制。2、若一中的字典怎么用?7、要读懂每一个字段的含义。2创建单独的阿里云模块。
2025-06-26 09:37:09
245
原创 6.24_JAVA_微服务_Elasticsearch搜索
1、FinalShell工具:单向工具,能将本地连接到虚拟机。(虚拟机连不到本地) 我们用docker建的容器比如MQ,比如ES,我们能够访问它们的WEB操作地址,都是因为前面的地址不是localhost,而是虚拟机的IP。比如ES端口是9200,本地访问localhost:9200会无法访问。但是输入:192.168.XXX.XXX:9200可以访问。我们操作也实际上是操作的虚拟机的数据,而不是本地电脑的数据。2、docker 的 jar包怎么用?3、代码404:后端还没写4、中州养老
2025-06-24 22:42:27
609
原创 热爱可抵岁月漫长
计算机入行之后是很轻松的,它不需要卖苦力,也不需要那么强的精力消耗。我之前兼职带过小学小孩,那个兼职是真的收入付出不成正比,10个小时,几乎不休息,结果忙了一天100块钱,时薪达到了10块钱🤣。比如,我今年申到了南洋理工大学的计算机硕士,这是个世界顶级大学,我想的话完全可以读博。比如,我不喜欢国女,我的薪资足够支撑我找国外的女生。那我可以买我喜欢的画笔🖌,我可以买多种多样的颜料,可以对自己的爱好不那么吝啬。我可以买更好的吉他,更好的钢琴,能让我更喜欢我的爱好,能让我更好的发展她。2.克服困难的感觉。
2025-06-24 10:52:34
220
原创 6.24_JAVA_微服务day07_RabbitMQ高级
4、导入这些Queue、Exchange这种东西的包,会让你选很多包。是消息从交换机路由到队列的关键规则。注意:error是自己定义的名字,你完全可以叫它其他名,比如my.error等。8、延迟消息:应用如:15分钟内付款。在代码层面就是:要给你取消订单,但是你不15分钟之内才给你取消。订单、付款这种处理钱的时候,尽量放到同一个方法里。防止极小概率的线程安全问题。6、 唯一消息ID是啥?3、失败重试机制:防止消费者接收不到之后,无限投递。):如何确保没得到确认的消息不被RMQ删除呢?2、消费者确认机制(
2025-06-24 08:49:02
369
原创 6.23_JAVA_RabbitMQ
是不是一个是创造对象的时候用,一个是创造完成再更改的时候用,而没有创造对象的时候没法使用set方法?核心区别:Spring可以直接实例化@Component的类,但只能实例化@Configuration中被@Bean标注的方法,1、MQ(RabbitMQ):用来管理生产者、消费者、队列、交换机(exchanges)、虚拟主机。6、生产者确认:none关闭生产者确认、correlated异步、simple同步。5、难道开着mq的时候会给后端反馈吗?13、极少极少的情况会用static,final偶尔会用。
2025-06-23 22:29:31
958
原创 6.21_JAVA_微服务
1、只有需要自己写的代码再写就行。而且大部分都是操作一些表,并非对某个工具底层原理的深入理解。3、很多工具直接拿来用就行,不需要对底层原理深入剖析。例如:这个就属于非常典型 的工具。注解就是在标记事务的起点,将来TM就会基于这个方法判断全局事务范围,初始化全局事务。8、 bootstrap.yml常与nacos配合。10、 Order翻译:除了顺序,还有订单的意思。5、Seata:要么全部成功,要么全部回滚。4、下面这个叫做注册为一个Bean。11、ByBalance:通过余额。6、nacos:注册中心。
2025-06-23 06:14:27
353
原创 6.19_JAVA_微服务
9、ServerWebExchange exchange包含:exchange.getRequest()、exchange.getResponse()、exchange.getAttributes()、exchange.mutate()10、exchange更偏向功能类。chain更多是用来链接多个要过滤的内容,比如过滤掉1、2、3、4、5就需要chain链接起来。1、跑后端的时候要把数据库跑起来,否则会报错。3、gateway:出路口。
2025-06-19 22:59:14
299
原创 6.18_JAVA_微服务
Collectors.toMap(a,b)和Collectors.toSet()/Collectors.toList()不一样.toMap是需要传入两个参数的,但是toSet、toList空参。而这不是他们的最重要的区别,最重要区别是:Map索引时时间复杂度为O(1),而List是O(n)4、Data注解:get、set、toString,但是不写无参、全参构造器。2、 set集合:不允许重复、无序。Function.identity()是指的流的数据项,也就是单个ItemDTO!
2025-06-19 09:07:21
576
原创 6.13MySQL
name建立索引,查询id和name时候不需要回表,查询效率更高。3、回表查询:回到聚集索引(id建的索引),而不是回到原数据表。service层写的简单,sql层就麻烦。聚集索引:每个id挂着一行数据。默认主键ID为聚集索引。8、sql语句中字符串要加单引号' '7、Service层写的麻烦,sql层就简单;6、MYSQL的索引默认是B+树构建的索引。中等数据量:反向索引。但全文索引一般不用,用其他形式。二级索引:下边只挂着主键id。1、MySQL索引类型。
2025-06-13 18:07:21
171
原创 6.11_JAVA_Mybaits
如果mapper返回的是Dept,xml就返回Dept,如果mapper返回的是List<Dept>,xml就返回List<Dept>#{name}, #{createTime}, #{updateTime}:来自dept对象。定义了 SQL 查询返回的每一行数据应该被映射成什么类型的对象。只有填入' or '1'='1才行,因为左右两边自带两个单引号。5、用了@Select()、@Insert就不需要再编写xml了。8、@Slf4j:自动创建log对象,可以打印信息。是“有值但为空”的字符串。
2025-06-13 15:34:32
325
原创 6.13_JAVA_中州养老
R的data是List,而不是实体类。(但注意,是:R的data,而不是R)里面的R<List<RoomVo>>究竟是啥?(列名和对象属性名直接对应),无法处理嵌套。
2025-06-13 12:00:49
165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人