自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 简单学:Java中的for循环是什么

循环是一种循环控制结构,用于在满足指定条件的情况下重复执行一段代码,通常用于遍历数组或者执行一系列操作固定次数的情况。它提供了一种紧凑的方式来组织循环的初始化、条件检查和迭代(更新循环变量)这三个关键部分。除了基本的for循环结构外,Java还提供了一些变种形式,可以更灵活地满足不同的需求。,主要用于遍历数组或集合中的元素,其语法更加简洁,不需要使用索引来访问数组元素。: 在循环开始之前执行一次的语句,通常用于设置循环控制变量的初始值,: 在每次循环迭代完成后执行的语句,通常用于更新循环控制变量,

2024-05-15 14:14:15 375

原创 Java8中的Stream流相关用法学习

Java8中的Stream流相关用法学习

2024-04-29 17:12:41 686

原创 Java集合相关的List、Set、Map基础知识

Java集合相关的List、Set、Map基础知识

2024-04-26 14:31:47 1039 2

原创 Java 创建对象的方式

对于clone机制,需要注意浅拷贝和深拷贝的区别,对于序列化机制需要明确其实现原理,在Java中序列化可以通过实现 Externalizable或者Serializable来实现。使用工厂方法(Factory Method):工厂方法是一种创建对象的设计模式,它通过调用一个专门负责创建对象的工厂方法来创建对象。(Deserialization):通过反序列化可以将对象从文件、数据库等持久化存储的形式转换回内存中的对象。这些是Java中创建对象的几种常见方式,每种方式都有其适用的场景和优缺点。

2024-04-08 19:34:18 445 1

原创 final关键字

后,该对象又不需要被回收了,然后到了真正要被回收的时候,因为前面调用过一次,所以不会再次调用 finalize。被调用不一定会立即回收该对象,所以有可能调用 finalize。了,进而产生问题,因此不推荐使用 finalize。修饰的变量必须被显式第指定初始值,还得注。修饰的类不可被继承;里定义的方法,也就是说每一个对象都有这。启动,该对象被回收的时候被调用。作为异常处理的一部分,它。语句中,并且附带一个语。么个方法,这个方法在。,经常被用在需要释放。方法只会被调用一次,

2024-04-08 19:01:23 471

原创 成员变量与局部变量的区别

总的来说,成员变量属于类的一部分,它们描述了对象的状态和特征;而局部变量是在方法执行过程中使用的临时变量,用于存储临时数据。正确理解和使用这两种变量类型对于编写高质量的代码非常重要。但是,成员变量和局部变量都能被final 所修饰。修饰的,那么这个成员变量是属于类的,如果没有使⽤。数据类型,那存放的是指向堆内存对象的引。修饰的成员变量也必须显式地赋值),修饰,这个成员变量是属于实例的。成员变量如果没有被赋初值 :则会。或者是指向常量池中的地址。法中定义的变量或是⽅。

2024-04-07 15:51:51 372

原创 抽象类(abstract class)和接口(interface)的区别

总的来说,抽象类是对事物的抽象,接口是对行为的抽象。如果你需要对一组相关的类进行抽象描述,并且它们有一些共同的特征和行为,可以使用抽象类。如果你只是希望定义一组规范或者契约,并且不关心具体实现,那么可以使用接口。在实际开发中,根据具体需求来选择使用抽象类还是接口。⽅法,则必须重写,不然会报错。来说,抽象是对类的抽象,是。实现类和实现是不可以调⽤。变量,不能有其他变量,只能有常量变量和抽象。法必须由选择实现接⼝。

2024-04-07 15:20:41 455

原创 什么是浅拷贝和深拷贝

浅拷贝和深拷贝初学习

2024-03-12 14:52:17 1279

原创 【Node.js相关问题】npm install报错后重装node版本及npm环境变量配置及npm run dev启动报错原因分析解决办法

npm install报错后重装node版本及npm环境变量配置及npm run dev启动报错原因分析解决办法

2024-03-12 14:24:37 3560

原创 树形菜单、树形结构初学习

我们一般会需要将平铺的菜单数据列表转换为树形结构展示的菜单数据,这句话的意思是将数据库中的菜单表转化为树形结构的菜单后端接口方法并通过业务层具体实现其逻辑,以便前端调用和展示。在这个示例中,我们创建了一个简单的树形菜单,包含一个文件菜单和四个菜单项:新建、打开、保存和退出。总的来说,树形结构是一种通用的数据组织方式,而树形菜单是一种特定应用场景下基于树形结构设计的用户界面元素。这只是一个简单的示例,实际的树形菜单可能会包含更多的菜单和菜单项,并且可能需要根据具体需求进行定制。树形结构是一种数据结构,它由。

2024-02-27 10:45:57 1223 1

原创 【MyBatis-Plus】之queryWrapper.apply用法

官网地址:MyBatis-Plus https://baomidou.com/

2024-02-26 16:22:27 5588

原创 服务端和客户端以及前后端相关概念区分

分布式系统是指由多个独立的计算机节点或服务通过网络连接起来,共同协作完成一个共同的任务或提供服务的系统😄在分布式系统中,任务会被分布到不同的节点上进行处理,这些节点可以通过协同工作来实现更高的性能、可靠性和可扩展性。可靠性:即使部分节点出现故障,系统仍能继续运行,因为任务可以在其他节点上继续执行。可扩展性:可以容易地添加或删除节点,以适应业务增长或处理更大的负载。性能提升:通过并行处理任务,可以提高系统的处理能力和响应速度。容错性分布式系统可以通过数据备份和冗余来确保数据的安全性和完整性。

2024-02-18 14:49:46 5403

原创 【leetcode】258. 各位相加(简单)题解学习

计算一个整数的各位相加的做法是,每次计算当前整数除以 101010 的余数得到最低位数,将最低位数加到总和中,然后将当前整数除以 101010。重复上述操作直到当前整数变成 000,此时的总和即为原整数各位相加的结果。数字根是一个数学属性,它是将一个非负整数的各个位上的数字相加,然后重复这个过程,直到得到的结果是个位数为止。在上面的代码中,首先处理了特殊情况,即当输入参数为 0 时,直接返回 0。,反复将各个位上的数字相加,直到结果为一位数。最直观的方法是模拟各位相加的过程,直到剩下的数字是一位数。

2024-02-18 11:20:33 339

原创 【leetcode】1281. 整数的各位积和之差(简单)题解学习

通过一个while 循环来遍历整数 n 的各位数字,每次取出最低位的数字并更新乘积和总和。最后,返回各位数字之积与之和的差值。,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。各位数之积 = 4 * 4 * 2 * 1 = 32。各位数之和 = 4 + 4 + 2 + 1 = 11。各位数之积 = 2 * 3 * 4 = 24。各位数之和 = 2 + 3 + 4 = 9。结果 = 32 - 11 = 21。结果 = 24 - 9 = 15。

2024-02-18 11:05:32 342

原创 【leetcode】206. 反转链表(简单)题解学习

这种递归实现方式代码简短,但需要注意在链表较长时可能会导致递归深度过大而引发堆栈溢出的问题。链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?两个指针来遍历链表并进行倒序操作。方法来将除去头节点的子链表进行倒序处理,得到新的头节点。,请你反转链表,并返回反转后的链表。在这个简化后的代码中,我们仍然使用。指针指向前一个节点,然后更新。这个递归算法的思路是先递归调用。,从而完成节点的倒序。,即为倒序后的链表。

2024-02-06 15:42:03 483

原创 【leetcode】LCR 123. 图书整理 I(简单)题解学习

对于使用递归的方法,在每一次递归调用中,都会向链表的尾部逐步递进,因此时间复杂度为 O(N),其中 N 是链表的长度。对于使用栈辅助的方法,在遍历链表时,需要将每个节点的值存储到栈中,因此空间复杂度为 O(N)。然后,创建一个新的数组,长度为栈的大小,依次将栈中的元素出栈并存储到数组中。将给定的单链表反转,并将反转后的结果存储在一个数组中返回。在这个优化的方法中,我们先处理空链表的情况,如果链表为空,则直接返回一个空数组。记录链表的长度,同时在进行链表反转的同时,将节点值存储到数组中,最后返回该数组。

2024-02-06 11:07:15 602

原创 函数调用栈是什么

函数调用栈是什么

2024-02-05 17:22:35 668

原创 【leetcode】1512. 好数对的数目(简单)题解学习

需要遍历两次数组,第一次遍历统计每个数字出现的次数,第二次遍历计算好数对的数量。相较于暴力枚举的方法,这种方法的效率更高。有 4 组好数对,分别是 (0,3), (0,4), (3,4), (2,5) ,下标从 0 开始。次,所以它可以和其他任意一个相同的数字组成一组好数对,因此它能够组成的好数对数量就是。最后,我们遍历哈希表中的每个数字,将它们的好数对数量相加得到总的好数对数量,即为变量。总之,这句代码的作用是将当前数字能够组成的好数对数量累加到计数器上。,那么它可以和其他数字组成的好数对数量就是。

2024-02-04 10:21:34 477

原创 【maven相关问题】Could not transfer artifact ...与Transfer failed for ...报错及解决办法

提示信息是传输失败,无法传输的原因应该是出现错误的包文件夹已经缓存在本地存储库中,然后maven在经过发布的更新间隔或强制进行更新之前,不会重新尝试解析(实际上是没有从远程拉下来到本地)。根据方法一找到出错的包的路径删除对应的文件,或者直接将本地库里面这个报错的依赖对应的文件夹删掉,然后重新在右侧maven菜单中reload一下,应该就没问题了。1. 但是实际上本地仓库的包文件夹中并没有所需文件,由于本地仓库存在该文件夹,maven在下载时也不会去远程仓库下载,造成本地文件不可用。

2024-02-02 17:25:47 7426

原创 Java中的四种引用类型

Java中的四种引用类型

2024-02-01 11:14:45 616

原创 MySQL的索引下推机制

其中,UNIQUE关键字表示创建唯一索引,index_name表示索引名称,table_name表示表名,column_name表示要创建索引的列名,ASC和DESC表示升序和降序排序,默认为ASC。维护索引的统计信息:MySQL会根据索引的统计信息来选择最优的查询计划,需要定期更新和维护索引的统计信息,以保证查询性能的稳定和可靠。此外,还有Memory存储引擎,它将数据存储在内存中,具有很高的读写速度,但数据仅在服务重启前有效,适用于临时性的数据存储需求。

2024-02-01 10:15:32 1428

原创 Spring相关框架中的bean及其实例化

在 Spring 框架中,实例化通常是指创建一个对象的过程。具体来说,当你在 Spring 中配置一个 Bean(即 Spring 管理的对象)时,Spring 会负责实例化该 Bean 并将其存储在容器中。定义 Bean:首先,需要在 Spring 的配置文件(如 XML 文件或 Java 配置类)中定义一个 Bean。可以通过<bean>或@Component@Service等注解来定义 Bean。配置属性。

2024-01-31 16:48:36 917

原创 URL 和 URI

URI 是一个更广泛的概念,而 URL 是 URI 的一种特殊形式,它提供了更多的细节信息来定位和访问资源。简言之,URL 是特定资源的实际位置,而 URI 是资源的标识符,可以是位置、名称或其他方式。URL 是 URI 的一种具体形式,它不仅指定了资源的位置,还包括了用于访问该资源的协议(如 http、ftp 等)和路径。相比之下,URI 是一个更通用的概念,它可以表示各种类型的资源,包括 URL。总的来说,URL 是 URI 的一种常见形式,并且在实际开发中更常用于指定资源的位置和访问方式。

2024-01-31 09:47:20 405

原创 Java中判断两个class对象是否相同

如果自定义类没有重写equals方法,不会直接对 Java 的类库产生影响。但是,在使用自定义类的某些场景下,可能会导致意外的行为或错误。以下是一些可能的影响:集合操作:如果将自定义类的对象用于HashSet或HashMap等集合中,并且没有重写equals方法,那么集合将无法正确地处理对象的相等性。这可能导致重复的对象被添加到集合中,或者在查找时无法找到预期的对象。比较操作:如果在代码中使用equals方法来比较自定义类的对象,并且没有重写该方法,那么默认情况下将比较对象的引用是否相等。

2024-01-29 11:16:48 1758

原创 Java中的类加载器

在Java中,类加载器(Class Loader)是Java虚拟机(JVM)的一部分,负责将类的字节码文件加载到内存中,并转换成可执行的Java类。类加载器在Java程序运行时动态地加载类,使得Java具备了动态扩展的能力。类加载器采用了双亲委派机制(模型)(Parent Delegation Model)来实现。通过类加载器,Java程序可以动态地加载、卸载和替换类,实现了Java的灵活性和可扩展性。这种机制可以确保类的一致性和安全性,避免类的重复加载和防止核心API被随意篡改。

2024-01-29 10:37:08 286

原创 【maven相关问题】SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/D:

SLF4J 是一个简单日志门面(Simple Logging Facade for Java),它提供了统一的日志接口,并允许开发人员在应用程序中使用不同的日志实现(如 Logback、Log4j 等)。2. 排除冲突的库:如果你使用的构建工具是 Maven 或 Gradle,可以在相关的依赖声明中排除冲突的库。3. 解决冲突的绑定:如果你确实需要同时使用两个绑定库,可以尝试解决冲突。具体的排除操作根据你的项目和依赖配置而异,请根据实际情况进行调整。你可以尝试在配置文件中指定具体的绑定类型,以解决冲突。

2024-01-23 10:19:20 2065

原创 【MyBatis相关问题】org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com...

映射文件未加载或配置错误:请检查 MyBatis 配置文件中是否正确加载了映射文件,并且映射文件的路径配置正确。绑定语句名称错误:请确保在 MyBatis 的映射文件(通常是 XML 文件)中存在名为。是 MyBatis 框架的异常,它表示无效的绑定语句。绑定语句定义了参数类型,确保传入的参数类型与绑定语句中定义的参数类型匹配。映射文件中未定义对应的绑定语句:请确保映射文件中存在名为。的绑定语句,并且该语句的命名空间为 (绑定语句的参数类型错误:如果。3. 其他未说明事项...的绑定语句,并且它位于。

2024-01-22 14:06:21 647

原创 Cookie和Session的区别

Session:Session数据存储在服务器上,客户端只会收到一个用于标识会话的Session ID(通常是一个Cookie)。Cookie:每个域名和路径下的cookie数量和大小有限制,一般每个域名下的Cookie总数不能超过20个,每个Cookie的大小不能超过4KB。保存在浏览器的cookie文件中。Session:Session可以存储任意类型的数据,以键值对的形式存储,并在服务器端进行管理。Cookie:Cookie以键值对的形式存储基本数据,可以在客户端的请求和响应中传递。

2024-01-19 10:05:52 368

原创 @RequestParam、@RequestBody和@PathVariable注解浅学

区别:@PathVariable注解用于提取URI路径中的变量值,可以在请求URL中定义占位符,通过将占位符映射到方法参数上获取对应的值。@PathVariable用于获取URL路径中的参数值,常用于RESTful风格的API。这些注解可以根据不同的需求和场景来灵活使用,以便准确地处理HTTP请求中的参数。区别:@RequestParam注解可以指定参数名,通过传递参数名获取对应的查询参数值。@RequestParam用于获取查询参数,从URL中提取;的注解,它们在不同的场景下有着不同的应用。

2024-01-19 09:50:33 500

原创 【Git相关问题】修改代码提交push时的用户名字

这个配置文件的路径一般是 C:\Users\本机用户名\.gitconfig。用记事本或编辑器打开,在[user]下即可修改用户名name或邮箱email。直接修改Git的用户配置文件。

2024-01-17 21:15:14 1024

原创 【IDEA相关问题】全局搜索快捷键ctrl+shift+f与win10输入法简繁体切换冲突

1. 打开Windows设置,选择【时间和语言】,接着选择【语言】5. 在按键设置里即可找到出现冲突的热键设置。2. 选择中文(简体,中国)——【选项】4. 选择【按键】进入下一步设置界面。关闭即可使用idea全局搜索快捷键。3. 找到【微软拼音】——【选项】

2024-01-17 21:05:14 1465

原创 #{}和${}有什么区别

在 MyBatis 中,和是两种不同的参数占位符语法,它们在使用方式和处理方式上有一些区别。 的使用方式: 的使用方式:总结:图片来源:#{}和${}的区别是什么?_Java_收获啦在实际使用中,根据具体的场景和需求选择合适的语法。通常情况下,应优先使用 ,除非需要动态生成 SQL 或者明确知道参数值的来源是安全可靠的情况下才考虑使用 。SQL 注入攻击是一种常见的网络安全漏洞,它利用了应用程序对用户输入数据的不恰当处理,通过在用户输入中注入恶意的 SQL 代码来实现攻击目的。SQL 注入攻击的原理是,攻击

2024-01-10 10:50:34 1279

原创 MyBatis中ResultType和ResultMap的区别

ResultMap:自定义映射规则,当查询的字段名和映射类型的属性不匹配时可以通过ResultMap自定义映射规则,也可以实现一对多、—对一映射。会根据查询结果的列名和 Java 对象的属性名进行自动映射,前提是它们的命名要相匹配。这种方式适用于简单的查询,不需要复杂的映射关系。在实际使用中,根据查询的需求和复杂度选择合适的方式来定义结果映射。指定映射类型,只要查询的字段名和类型的属性名匹配可以自动映射。,可以实现灵活的结果映射,适用于复杂的查询场景,如多表关联查询、嵌套查询等。:用于简单的结果映射,

2024-01-10 10:22:14 570

原创 MyBatis分页插件的实现原理

总结起来,MyBatis 分页插件通过拦截器拦截 SQL 执行过程,在 SQL 执行前后进行操作,实现对 SQL 的修改和结果集的截取,从而实现分页功能。在 MyBatis 的配置文件中,需要注册自定义的拦截器,并指定拦截器要拦截的目标对象(如。通过拦截这些目标对象,分页插件就可以对 SQL 进行拦截和处理,实现分页功能。拦截器可以在 SQL 执行前后对 SQL 进行拦截和处理。MyBatis 分页插件的实现原理是通过。

2024-01-10 10:17:33 745

原创 如何查询MySQL中的树型表

根据实际情况,选择适合你的数据结构和查询需求的方法进行查询树型表。递归查询适用于层级较深或者动态变化的树型结构,而嵌套集模型适用于树型结构层级较浅且不经常变化的情况。在 MySQL 中查询树型表(即具有层级结构的表)可以使用递归查询或者使用嵌套集模型。上述示例中,初始查询的是根节点的ID为1的记录,并使用递归查询将其子节点逐层查询出来。运算符来查询指定节点的子节点。

2024-01-10 10:09:45 635

原创 【maven相关问题】Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.8.1

【maven相关问题】Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.8.1

2023-12-29 16:56:32 1479 2

原创 Java开发中保证接口的幂等性问题

Java开发中保证接口的幂等性问题

2023-12-24 20:12:45 1463

原创 Java中集合的底层结构

例如,ArrayList底层基于动态数组实现,容量能自动增长,随机访问效率高,随机插入、随机删除效率低,线程不安全,多线程环境下可以使用Collections.synchronizedList()函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyOnWriteArrayList类。选择合适的集合类可以根据具体的需求来决定,例如需要快速随机访问的场景可以选择ArrayList,需要去重并且无序的场景可以选择HashSet。根据实际的内存限制和需求,选择适合的集合类。

2023-12-20 19:05:07 948

原创 ping地址127.0.0.1相关学习

IP 地址由网络位和主机位组成,网络位一旦确定,可以将主机位中的一位或多位借过来当网络位,从而扩大网络。例如,192.168.1.0/24 这个网段中,192.168.1 是网络位,后面这 8 位数是主机位,如果将主机位中的一位借过来当网络位,就可以扩张成 192.168.1.x,后面几个 x 是主机位,二进制当中除了 0 就是 1。例如,对于 IP 地址 192.168.1.100,子网掩码为 255.255.255.0,则网络位为 192.168.1,主机位为 100。

2023-12-20 13:59:52 1197

原创 isEmpty和isBlank的用法和区别

因此,在实际应用中,应根据具体需求选择合适的方法来判断字符串是否为空。如果需要更精确的判断条件,可以使用isblank方法。在实际开发中,需要根据具体的业务场景来选择使用isEmpty方法还是isblank方法。isEmpty和isblank都是用于判断字符串是否为空的方法,但它们的判断标准不同。方法只判断字符串是否为空字符串,只要有一个任意字符(包括空白字符)就不为空。方法来判断字符串是否为空或只包含空白字符。方法判断字符串是否为空字符串,全部空白字符也为空。方法只判断字符串是否为空或长度为0,而。

2023-12-19 22:04:09 7368

空空如也

空空如也

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

TA关注的人

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