- 博客(27)
- 收藏
- 关注

原创 Spring Boot项目中三大问题的解决措施
索引优化:分库分表:数据库缓存:引入Redis进行缓存:消息队列解耦处理:分布式锁:JWT认证:Spring Security权限控制:Token刷新机制:
2024-05-29 23:59:49
645
原创 全局处理请求参数,防止HTML和XSS攻击
实现了一个基本的XSS防护过滤器,它会对所有进入的请求参数进行HTML转义,从而防止HTML和XSS攻击。
2024-05-26 01:44:30
503
原创 美团面试:什么是IoC,什么是AOP
控制反转是一种设计原则,用于减少计算机代码之间的耦合。传统的程序设计中,控制逻辑通常由程序员通过硬编码方式直接控制。而在IoC的架构中,这种控制逻辑被反转,控制权被转移给了一个专门的容器或框架。IoC容器的作用是创建对象,维护它们的生命周期,配置它们的依赖关系,以及管理其他的配置工作。在Java中,Spring框架的是一个典型的IoC容器。IoC的主要实现方式有两种:依赖注入(DI, Dependency Injection)和依赖查找(DL, Dependency Lookup)。
2024-05-23 10:24:00
706
原创 “token“的验证
因此,这两种验证方法各自承担了不同的角色,共同提供了更全面的安全保障。维持这两步验证可以确保系统既能防范技术层面的攻击,也能满足业务层面的安全需求。执行的是不同类型的验证,因此两者都是有其必要性的。以下代码中,为什么要验证两次"token"?
2024-05-21 13:03:37
548
原创 美团面试:讲解一下三级缓存
循环依赖指的是两个或多个bean相互依赖对方来完成自己的初始化。例如,Bean A依赖Bean B,而Bean B又依赖Bean A。如果没有适当的处理机制,这种相互依赖会导致Spring容器在初始化这些bean时发生死锁或失败。
2024-05-17 02:30:16
304
原创 美团面试:你对事务有了解吗,说一下事务的性质
在数据库系统中,事务(Transaction)是一种重要的数据处理方式,它确保数据库操作的完整性和一致性。事务的ACID是一个术语,代表四个关键属性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。ACID属性是关系数据库管理系统(RDBMS)中事务处理的基石,它们共同作用,确保数据的准确性和可靠性。在设计和实现数据库系统时,理解和应用ACID原则是非常关键的,它帮助开发者构建健壮、稳定且安全的数据处理逻辑。
2024-05-17 02:19:05
388
原创 美团面试:讲解Threadlocal,内存泄漏问题和垃圾回收机制
是处理线程局部变量的强大工具,但需要小心使用,以避免内存泄漏。确保在适当的时候调用可以帮助防止这种情况。理解垃圾回收机制和它如何与相互作用也是写出高效和健壮的多线程Java程序的关键部分。
2024-05-17 02:04:54
939
原创 Java冒泡排序
冒泡排序是一种简单的排序算法,它通过重复遍历要排序的数列,比较每对相邻元素,如果它们的顺序错误就把它们交换过来。这是最基础的冒泡排序实现,没有进行任何优化。在实际应用中,可以添加一些改进措施,比如检测到没有元素交换时提前终止排序,以提高算法的效率。
2024-05-15 01:54:49
233
原创 Java中的泛型
/ T代表一个未知类型this.t = t;return t;在这个例子中,T是一个类型参数,它将在创建Box类的实例时被实际的类型替换。// 使用泛型方法// 类型推断。
2024-05-15 01:53:39
378
原创 Java 反射机制
Java 中的反射是一种强大的机制,它允许程序在运行时检查或修改它自身的结构和行为。这包括对类、接口、字段、方法和构造器的操作。反射特别有用于那些需要灵活性和可扩展性的情况,例如开发框架、通用库或IDE工具。
2024-05-15 01:49:11
303
原创 Stream API
在Java中,Stream API 是 Java 8 引入的一个重要特性,它提供了一种高效且声明式的处理数据集合的方式。使用 Stream API,你可以对集合进行复杂的查询和数据转换操作,而不必明确编写复杂的循环语句。Stream 操作是高度优化的,并且可以透明地支持并行处理。
2024-05-14 07:33:58
320
1
原创 与Thread相关的面试题
在Java中,关于线程(Thread)的面试题是非常常见的,因为多线程编程是Java中一个重要的部分,涉及到并发和并行执行的概念。这些问题涵盖了从基础到进阶的多线程编程的关键概念。
2024-05-14 07:14:52
340
原创 Java中的Thread
在Java中,线程(Thread)是并发执行的流的基本单元。使用线程,你可以在同一程序中同时执行多个任务。Java提供了强大的内置支持来处理多线程编程。
2024-05-14 06:59:26
455
原创 “List,Set,Map“在SpringBoot项目中的具体使用场景
在Spring Boot项目中,ListSet和Map这些集合类的使用场景非常广泛。
2024-05-14 06:50:47
1931
原创 “List,Set,Map“的使用场景
选择正确的集合类型对于优化性能和提高代码的可读性至关重要。ListSet和Map各有其特点和优势,适用于不同的应用场景,合理使用它们可以使我们的Java程序更加高效和易于管理。在实际开发中,应根据具体需求选择最合适的集合类型。
2024-05-14 06:37:33
518
原创 Java中的“List,Set,Map“
List是有序的集合,可以包含重复的元素。Set是一个不允许有重复元素的集合,不保证元素的顺序。Map是键值对的集合,每个键映射到一个唯一的值。这些集合类在Java中非常重要,广泛用于各种应用程序开发中,掌握它们的使用对于进行有效的Java编程非常关键。
2024-05-14 06:19:18
411
1
原创 “final,finally,finalize“的区别
final是一个修饰符,用于声明不可改变的变量、不可继承的类或不可覆盖的方法。finally是异常处理的一部分,确保无论有无异常,某些代码都必须执行。finalize是一个方法,用于在对象被垃圾回收前进行清理工作,但不推荐使用。
2024-05-14 05:54:26
289
原创 常见的运行时异常
当应用程序尝试使用 null 对象引用进行操作时抛出,例如调用 null 对象的实例方法、访问或修改 null 对象的字段、抛出 null 作为 Throwable 值。在Java中,运行时异常(RuntimeException)是一类不需要强制捕获的异常,它们通常是由程序错误引起的,如逻辑错误或不当的API使用。这些运行时异常都是由程序员的错误引起的,通常可以通过更仔细地编写代码来避免。当处理这些异常时,最好查找并修复导致异常的根本原因,而不仅仅是捕获异常。- 在不适当的时间调用方法时抛出。
2024-05-14 05:45:42
288
原创 Java中的日期格式化
在Java中,日期和时间的格式化是一个常见的需求,尤其是在处理用户界面或者需要将日期数据以特定形式展示的场景中。Java提供了几种方式来格式化日期和时间,这里主要介绍和 Java 8 引入的。
2024-05-14 04:52:28
622
原创 字符串与基本数据类型之间的转换
使用包装类的parseXxx()方法可以将字符串转换成相应的基本数据类型。记得处理可能的。使用或字符串连接(操作符)可以将基本数据类型转换成字符串。通过掌握这些基本技能,你可以在Java中灵活地处理数据类型转换,这对于日常编程非常重要。
2024-05-14 04:40:42
513
原创 Java中的“final“关键字
在Java中,final关键字是一个非常重要的修饰符,它可以用来修饰类、方法和变量。使用final关键字可以提供不同级别的保护,确保它们不被后续修改。下面我会详细介绍final。
2024-05-14 04:13:04
308
原创 “String,StringBuilder,StringBuffer“的区别
在 Java 中,它们都用于处理文本数据,但它们各有特点,适用于不同的使用场景。
2024-05-14 03:59:01
261
原创 Java中的“this“关键字
在Java中,“this”关键字是一个非常重要的概念,它被用来引用当前对象的实例。简单来说,你可以通过使用“this”关键字在一个对象的内部引用该对象自身。
2024-05-14 03:44:55
534
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人