自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

原创 Lambda表达式详解

一旦使用该注解来定义接口,编译器将会强制检查该接口是否确实有且仅有一个抽象方法,否则将会报错。不过,即使不使用该注解,只要满足函数式接口的定义,这仍然是一个函数式接口,使用起来都一样。从代码的语义中可以看出:我们 启动了一个线程,而线程任务的内容以一种更加简洁的形式被指定。接口的匿名内部类对象来指定线程要执行的任务内容,再将其交 给一个线程来启动。函数式接口,即适用于函数式编程场景的接口。匿名内部类所需的接口中抽象方法的数量随意。,可以理解为一段可以传递的代码。接口的匿名内部类写法可以通过更简单的。

2024-07-04 16:58:44 879

原创 二叉树中序遍历-递归法详解-数据结构与算法

⑤按照顺序继续执行,接下来将使用递归遍历D的右子树 这里D的右子树为NULL 所以我们传入的递归参数也为NULL 检测到root为NULL,我们退出该层递归函数。该层递归函数的root为D 左右子树都为NULL 我们检查root是否为NULL root为D,不为NULL。⑪在该层执行下一行代码 输出A 继续遍历A的右子树 A的右子树为C 其不为NULL 递归C的左子树F。⑭递归C的右子树G 判断该层递归的root是否为NULL 当前root为G,不为NULL。

2024-07-03 16:34:08 342

原创 Java语言如何进行大模型测试

使用Java进行大模型测试时,可以利用其强大的生态系统和工具来构建高效的测试环境。

2024-07-01 14:01:04 206

原创 大模型相关基础知识

大模型(Large Models)通常指的是具有大量参数的深度学习模型。这些模型通常基于复杂的神经网络架构,如Transformer,被用于处理各种复杂任务,如自然语言处理(NLP)、计算机视觉(CV)和生成模型(如GPT-4)。

2024-07-01 13:58:06 476

原创 模拟笔试 - 卡码网周赛第二十一期(23年美团笔试真题)

可优化逻辑:因为x和y是后输入的,必须存储整个数组,但是上面说了 **排列是指一个长度为n的数组,其中 1 到 n 每个元素恰好出现一次。**可以充分利用该信息创建一个大小为n+1的数组存储各个元素的所在位置,这样最终直接判断x和y所在位置差是否为1即可判断结果。是一种常见的操作,用于在循环列表(或环形缓冲区、圆形队列)中循环递增索引。绝对值指的是一个数在数轴上距离原点的距离,因此它始终是非负数。这个代码使用逻辑判断来处理数组索引超出边界的情况,使得索引在到达数组边界时正确循环。是否到达边界,也可以通过。

2024-06-13 21:00:26 655

原创 模拟笔试-卡码网周赛第二十期(23年用友提前批笔试真题)

这题的输入就是一个长字符串,就是nums = [1,3,-1,-3,5,3,6,7], k = 3,需要自己提取出来数组nums和滑动窗口 k!较为复杂,需要很熟悉输入操作。这段代码的作用是确保队列中存储的索引对应的元素值是递减的,也就是队列中的元素按照值的大小从大到小排列。它的作用是在向队列中添加新元素时,如果发现新元素比队列尾部的元素大,则将队列尾部的元素逐个移除,直到队列为空或者队列尾部的元素大于等于新元素。它的作用是在滑动窗口移动时,如果队列的第一个元素已经不在当前窗口范围内,就将其从队列中移除。

2024-06-06 21:11:41 740

原创 InnoDB存储引擎非常重要的一个机制--MVCC(多版本并发控制)

隔离性是指一个事务内部的操作以及操作的数据对正在进行的其他事务是隔离的,并发执行的各个事务之间不能相互干扰。隔离性可以防止多个事务并发执行时,可能存在交叉执行导致数据的不一致。MySQL 对隔离性的保证主要有两个方面:--用锁机制来保证一个事务写操作对另一个事务写操作的隔离性,---用 MVCC 机制来保证一个事务写操作对另一个事务读操作的隔离性。MySQL 中按照锁的粒度,可以分为全局锁,表锁和行锁。全局锁会使整个数据库处于只读状态,在做全库逻辑备份时经常用到。表级锁在操作数据时会锁定整张表,并发性能一般

2024-06-05 16:48:12 887

原创 MySQL是怎么保证原子性的(undo log日志相关)

可以认为当delete一条记录时,undo log中会记录一条 对应的insert记录,反之亦然,当update一条记录时,它记录一条对应相反的uodate记录。当执行rollback回滚时,就可以从undo log中的逻辑记录读取到相应的内容并进行回滚。平常我们在对数据进行增删改时,InnoDB 除了会记录 redo log,还会将更新的数据记录写进 undo log 中。当事务出现异常,执行失败的时候,就需要利用 undo log 中的信息将数据回滚到修改之前的版本。

2024-06-05 16:16:10 207 1

原创 MySQL是怎么保证持久性的(redo log日志相关)

答: 直接将脏页刷新回磁盘,存在严重的性能问题。因为很多DML语句操作数据页的时候,都是随机的。直接操作磁盘,这属于大量的随机磁盘IO。而commit的时候都是先将redo log日志文件刷新到磁盘中,是因为它是日志文件,日志文件都是追加的形式。这是一种顺序的磁盘IO。效率更高!

2024-06-05 16:05:09 988

原创 如何实现单例模式及不同实现方法分析-设计模式

【面试官问什么是单例模式时,千万不要答非所问,给出单例模式有两种类型之类的回答,要围绕单例模式的定义去展开。单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁地创建对象使得内存飙升,单例模式可以让程序仅在内存中创建一个对象,让所有需要调用的地方都共享这一单例对象。单例模式(Singleton Pattern)是一种常用的设计模式,保证一个类在内存中只有一个实例,并提供一个全局访问点。单例模式通常用于管理共享资源、控制全局状态或提供全局服务。

2024-06-04 22:12:06 877 1

原创 MySQL的一些高频面试题汇总(持续补充)

对于「读提交」和「可重复读」隔离级别的事务来说,它们是通过MVCC中的Read View 来实现的,它们的区别在于创建 Read View 的时机不同,大家可以把 Read View 理解成一个数据快照,就像相机拍照那样,定格某一时刻的风景。针对快照读(普通 select 语句),是通过 MVCC 方式解决了幻读,因为可重复读隔离级别下,事务执行过程中看到的数据,一直跟这个事务启动时看到的数据是一致的,即使中途有其他事务插入了一条数据,是查询不出来这条数据的,所以就很好了避免幻读问题。

2024-05-31 19:46:21 809

原创 模拟笔试 - 卡码网周赛第十九期(23年小红书提前批笔试真题)

longint因为在一些情况下,特别是当输入的n和k值很大时,计算出的可能会超出int类型的范围。,应该使用更大的数据类型来存储和计算结果。在 Java 中,我们可以使用long类型来代替int,因为long的取值范围比int大得多。nk。

2024-05-30 22:07:44 403

原创 ACM模式输入输出总结2【大厂笔试/OD机考】(Java语言版本)

此类输入一般只包含单个字符串,如: abc1232.输入数字此类输入一般只包含单个数字,如:53.输入字符串数组此类输入一般会先在第一行输入长度,再在第二行输入长度为的数组。数组可能会用空格隔开,如:数组可能会用逗号隔开,如:4.输入数字型数组此类输入一般会先在第一行输入长度,再在第二行输入长度为的数组。数组可能会用空格隔开,如或者(可以处理数组长度未知的输入)数组可能会用逗号隔开,如:5.输入二维数组此类输入一般会先在第一行输入二维数组的行数和列数

2024-05-30 21:43:19 389

原创 Web开发中,就session和cookie相比,用session比用cookie的优点有哪些?

在Web项目中,session和cookie都是用于存储用户数据的机制,但它们有不同的优缺点。使用session比使用cookie。

2024-05-29 17:15:25 713

原创 关于Spring 和 Spring Boot之间的关系

作为 Java开发人员,大家都 Spring都不陌生,简而言之, Spring框架为开发 Java应用程序提供了全面的基础架构支持。它包含一些很好的功能,如依赖注入和开箱即用的模块,如:SpringJDBC、SpringMVC、SpringSecurity、SpringAOP、SpringORM、SpringTest,这些模块缩短应用程序的开发时间,提高了应用开发的效率例如,在 JavaWeb开发的早期阶段,我们需要编写大量的代码来将记录插入到数据库中。

2024-05-27 21:19:15 702

原创 动态规划之背包问题中如何确定遍历顺序的问题-组合or排列?

细心的同学看网上的题解,可能看一篇是遍历背包的for循环放外面,看一篇又是遍历背包的for循环放里面,看多了都看晕了,到底两个for循环应该是什么先后关系。能把遍历顺序讲明白的文章几乎找不到!这也是大多数同学学习动态规划的苦恼所在,有的时候递推公式很简单,难在遍历顺序上!但最终又可以稀里糊涂的把题目过了,也不知道为什么这样可以过,反正就是过了。那么这篇文章就把遍历顺序分析的清清楚楚。动态规划:518.零钱兑换II (opens new window)中求的是组合数,

2024-05-26 21:02:41 968

原创 动态规划之完全背包问题理论基础

这个简单的完全背包问题,估计就可以难住不少候选人了。

2024-05-26 16:49:48 768

原创 模拟笔试 - 卡码网周赛第十八期(23年科大讯飞提前批笔试真题)

String的replace()方法,在 输出格式中很常用!

2024-05-23 20:48:09 637

原创 Spring框架中bean的生命周期

Bean在开始加载之前要从上下文和一些配置中去解析并且查找Bean有关扩展的实现,比如像‘init-method’,容器在初始化Bean的时候或调用的一个方法,destroy-method,容器在销毁Bean的时候会调用的一些方法,以及BeanFactoryPostProcessor这一类的Bean加载过程中的一些前置和后置的一些处理扩展实现,这些类和配置其实是Springr提供给开发者用来去实现Bean加载过程中的一些扩展,在很多和Spring集成的中间件也比较常见,比如Dubbo,这样一些中间件。

2024-05-23 11:46:55 913

原创 Synchronized和ReentrantLock有什么区别?

两种锁都支持可重入性,synchronized支持隐性的重进入,比如 线程可以在递归执行同步块里的代码而不被阻塞,ReentrantLock需要显式调用lock()方法;

2024-05-23 11:45:38 943

原创 动态规划之0-1背包问题理论基础-02(滚动数组)

以上的讲解可以开发一道面试题目(毕竟力扣上没原题)。就是本文中的题目,要求先实现一个纯二维的01背包,如果写出来了,然后再问为什么两个for循环的嵌套顺序这么写?反过来写行不行?再讲一讲初始化的逻辑。然后要求实现一个一维数组的01背包,最后再问,一维数组的01背包,两个for循环的顺序反过来写行不行?为什么?注意以上问题都是在候选人把代码写出来的情况下才问的。就是纯01背包的题目,都不用考01背包应用类的题目就可以看出候选人对算法的理解程度了。相信大家读完这篇文章,应该对以上问题都有了答案!

2024-05-23 11:44:38 892

原创 动态规划之0-1背包问题理论基础-01

讲了这么多才刚刚把二维dp的01背包讲完,这里大家其实可以发现最简单的是推导公式了,推导公式估计看一遍就记下来了,但难就难在如何初始化和遍历顺序上。可能有的同学并没有注意到初始化 和 遍历顺序的重要性,我们后面做力扣上背包面试题目的时候,大家就会感受出来了。讨论到a【i】【j】时的两种情况怎么操作?为什么这么操作?假设已经讨论到了a【i】【j】,即j容量下到前i个物品的讨论,有两种情况1.选择不装第i个物品,则退回到i-1行,直接选择a【i-1】【j】作为该情况下最大价值。

2024-05-22 21:54:47 594

原创 力扣 滑动窗口题目总结

其实就是一个队列,比如例题中的 abcabcbb,进入这个队列(窗口)为 abc 满足题目要求,当再进入 a,队列变成了 abca,这时候不满足要求。所以,我们要移动这个队列!

2024-05-21 22:12:30 944

原创 关于java中的重要的基础概念问题说明(持续补充 )

具体的方法必须由实现接口的类覆盖实现,在调用时始终只会调用实现类(也就是子类覆盖的方法)的方法,不会出现歧义(上面多继承的第二个缺点)。3、如果子接口继承的多个父接口中有相同的属性a,那么类在实现接口时是不能调用接口里面的属性a的,与类不能多继承原因一致,造成引用不明确。如果是不同的属性,实现类是可以调用的。举例说明:如果类A同时继承了B,C,类B和C有相同的方法d,那么类A该继承哪个类的d方法呢,这是不明确的。4、总结一下,接口可以继承多个父接口的相同的方法,不同的属性,不能继承多个父接口中相同的属性。

2024-05-21 17:19:16 261

原创 Mybatis Plus 的优点

Mybatis-Plus是一个Mybatis的增强工具,只是在Mybatis的基础上做了增强却不做改变,MyBatis-Plus支持所有Mybatis原生的特性,所以引入Mybatis-Plus不会对现有的Mybatis构架产生任何影响。8、支持代码生成:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码(生成自定义文件,避免开发重复代码),支持模板引擎、有超多自定义配置等。)自动转义,还可自定义关键词。

2024-05-20 15:24:41 279

原创 JVM垃圾回收器G1大总结-详解

1.停顿时间模型??作为CMS收集器的替代者和继承人,G1是基于“停顿时间模型”诞生的的垃圾收集器,停顿时间模型的意思是能够支持指定在一个长度为M毫秒的时间片段内,消耗在垃圾收集上的时间大概率不超过N毫秒这样的目标.2.G1摒弃了以往对堆中区域分代的划分思想,而是将堆划分为大小相同的区(Region),

2024-05-05 20:15:44 1002

原创 JVM六种常见的垃圾回收器-重点含CMS过程详解

解决了STW时间过长的问题,使垃圾回收时用户的等待时间变短。

2024-05-05 20:01:04 588

原创 leetcode51.N皇后(困难)-回溯法

都知道n皇后问题是回溯算法解决的经典问题,但是用回溯解决多了组合、切割、子集、排列问题之后,遇到这种二维矩阵还会有点不知所措。从图中,可以看出,二维矩阵中矩阵的高就是这棵树的高度,矩阵的宽就是树形结构中每一个节点的宽度。确定完约束条件,来看看究竟要怎么去搜索皇后们的位置,其实搜索皇后的位置,可以抽象为一棵树。那么我们用皇后们的约束条件,来回溯搜索这棵树,

2024-04-29 22:19:23 457 2

原创 Java语言中ACM模式输入输出- 1(大厂 笔试题必备知识)

ACM模式 练习,主要包含一些 输入输出 格式的练习,笔试题目 必会技能,防止卡在输入关。

2024-04-29 14:30:39 1049 1

原创 leetcode79.单词搜索 | 回溯算法 | 最通俗易懂的讲解 【java版】

单词起点一共有 n2个,单词的每个字母一共有上下左右四个方向可以选择,但由于不能走回头路,所以除了单词首字母外,仅有三种选择。深度优先搜索,我们定义这样一种搜索顺序,即先枚举单词的起点,然后依次枚举单词的每个字母。3、如果当前搜索的位置(x,y)的元素board[x][y] == word[u],则继续向四周搜索。2、从该起点出发向四周搜索单词word,并记录此时枚举到单词word的第u个位置 ( u从0开始)。1、从搜索过的位置继续搜索下一层时,需要对当前位置进行标识,表示已经搜索。

2024-04-26 17:31:03 200 1

原创 leetcode1143. 最长公共子序列(ACM模式解法)

给你一个序列X和另一个序列Z,当Z中的所有元素都在X中存在,并且在X中的下标顺序是严格递增的,那么就把Z叫做X的子序列。输入包含多组测试数据。每组输入占一行,为两个字符串,由若干个空格分隔。每个字符串的长度不超过100。例如:Z=是序列X=的一个子序列,Z中的元素在X中的下标序列为。现给你两个序列X和Y,请问它们的最长公共子序列的长度是多少?对于每组输入,输出两个字符串的最长公共子序列的长度。

2024-04-26 17:17:25 270

原创 数据库MySQL中当前读和快照读区别

比如: 之所以出现快照读的情况,是基于提高并发性能的考虑,快照读的实现是基于MVCC,它在很多情况下, 避免了加锁操作,降低了开销。快照读的前提是隔离级别不是串行级别,串行级别下的快照读会退化成当前读。当前读读取的是记录的最新版本(最新数据,而不是历史版本的数据),读取时还要保证其他并发事务 不能修改当前记录,会对读取的记录进行加锁。Read Committed隔离级别下:快照读和当前读读取的数据是一样的,都是最新的。当前读:每次读取的都是当前最新的数据,但是读的时候不允许写,写的时候也不允许读。

2024-04-22 20:43:59 612

原创 ThreadLocal内存泄露问题&&key的弱引用相关问题总结

ThreadLocal 是一个强大的多线程编程工具,但在使用时需要格外小心,以避免引发内存泄露等问题。通过及时清理 ThreadLocal、使用弱引用以及注意线程池中的潜在问题,我们可以更安全地使用 ThreadLocal,确保应用程序的性能和稳定性。同时,利用内存分析工具和单元测试,可以更早地发现和解决潜在的内存泄露问题。希望通过本文的讨论,读者能更深入地理解 ThreadLocal 内存泄露问题,并在实际开发中避免相关风险。

2024-04-19 17:11:18 915

原创 JAVA中同步方法和同步代码块的区别是什么?

对于关键字synchronized修饰的方法,不需要再指定同步监视器,这个同步方法(非static方法)无需显式地指定同步监视器,同步方法的同步监视器就是this,也就是调用该方法的对象。由于java的每个对象都有一个内置锁,当用此关键字修饰方法时,内置锁会保护整个方法。同步代码块可以选择以什么来加锁,比同步方法要更颗粒化,我们可以选择只同步会发生问题的部分代码而不是整个方法。即有synchronized修饰符修饰的语句块,被该关键词修饰的语句块,将加上内置锁。同步是高开销的操作,因此尽量减少同步的内容。

2024-04-18 22:35:50 318

原创 List集合接口实现类ArrayList 与 LinkedList的方法及其区别

ArrayList 是从JDK1.2 引入的。它是可调整大小的数组,实现了List接口。实现所有可选列表操作,并允许所有元素包括null。除了实现List 接口之外,该类还提供了一些方法来操纵内部使用的存储列表的数组的大小。(这个类是大致相当于Vector,不同之处在于它是不同步的)。内部封装一个数组,用数组来存储数据。内部数组的默认初始容量 10,存满后 1.5 倍增长。

2024-04-18 10:16:00 817

原创 快速排序题目&SelectK问题(力扣75.颜色分类、力扣215.数组中的第K个最大元素、面试题17.14最小K个数)

(如果10个数,K=1,第一个最大的数,就是SelectK索引为9的那个的元素)(如果10个数,第10个最大的数,就是SelectK索引为0的那个的元素,最小值)如果 k 是 nums.length,其实就是求最小元素,那么相应的我们的 selectK 的。非常简单,我们只需要在调用 select K 之前,将求第 k 大元素的这个 k,转换成。注意,因为在这个问题中,我们肯定我们处理的数据类型是 int,所以,在代码。按照题目描述,如果 k 是 1,对应就是要找最大元素,那么相应的我们的。

2024-04-16 22:59:29 856

原创 关于哈希表(Hash Table)数据结构

然而,如果哈希函数设计不当或者数据分布不均匀,可能会导致哈希冲突增多,降低了性能。3. **哈希冲突(Hash Collision)**:由于哈希函数的映射范围可能小于键的实际取值范围,不同的键可能映射到同一个桶中,导致哈希冲突。1. **数组(Array)**:哈希表的核心是一个数组,这个数组的每个元素称为一个桶(Bucket)。每个桶可以存储一个或多个键值对。2. **哈希函数(Hash Function)**:哈希函数是一个算法,它接受一个键作为输入,并返回该键对应的哈希码(Hash Code)。

2024-04-13 21:57:11 235 1

原创 关于集合HashMap面试常问问题合集

在源码中,ConcurrentHashMap通过`Segment`类实现了分段锁,每个Segment类似于一个小的HashMap,具有自己的锁,不同的Segment可以同时被不同的线程操作,从而提高了并发性能。`get`过程:根据键的哈希码找到对应的桶,然后在链表或红黑树中查找对应的值。- 当插入的键在桶中已经存在时,1.8版本采用了尾插法,即将新的键值对插入到链表或红黑树的末尾,而不是头插法,这样可以保持链表或红黑树中键值对的插入顺序,避免了扩容后链表顺序逆转导致的死循环。

2024-04-13 21:40:25 608

原创 深入理解Java中的字段与属性的区别

于是就加上了属性,简单说属性实现了字段的封装,属性有get、set 方法来控制字段,该字段的属性只有set方法没有get方法,就只可以对该方法进行赋值操作,没有读操作,反之亦然。JavaBean在Java EE开发中,通常用于封装数据,对于遵循以上写法的JavaBean组件,其它程序可以通过反射技术实例化JavaBean对象(内省机制),并且通过反射那些遵循命名规范的方法,从而获知JavaBean的属性,进而调用其属性保存数据。字段和常量描述了类的数据(域),当这些数据的某些部分不允许外界访问时,

2024-04-10 21:32:09 283

原创 Windows11安装MySql-8.0.36安装详细教程(保姆级教程)

Windows11安装MySql-8.0.36安装详细教程(保姆级教程)

2024-04-03 16:34:43 2981 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除