- 博客(104)
- 收藏
- 关注
原创 Redis
Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息中间件。高性能:数据存储在内存中,读写速度极快,能轻松应对高并发场景。丰富的数据类型:支持字符串、哈希、列表、集合、有序集合等多种数据类型,能满足不同业务需求。持久化:提供 RDB(Redis Database)和 AOF(Append - Only File)两种持久化机制,可将内存数据保存到磁盘,防止数据丢失。分布式。
2025-04-06 00:52:33
1026
原创 数据结构和大数据处理及其加密算法
摘要算法,也被叫做哈希算法或者散列算法,它能把任意长度的输入数据通过特定的算法转换为固定长度的输出,这个输出被称作摘要或者哈希值。确定性:相同的输入必定会得到相同的输出。高效性:能快速地计算出摘要。雪崩效应:输入数据哪怕只有微小的改变,输出的摘要也会有极大不同。不可逆性:没办法从摘要还原出原始输入数据。:产生 128 位的哈希值,曾经广泛使用,但现在发现存在安全漏洞,容易遭受碰撞攻击,即不同的输入可能产生相同的输出,所以在安全要求高的场景中不再适用。
2025-04-06 00:25:22
1033
原创 JUC 原子类
CAS(Compare - And - Swap)即比较并交换,是一种无锁算法。它包含三个操作数:内存位置(V)、预期原值(A)和新值(B)。执行 CAS 操作时,会先比较内存位置 V 中的值是否和预期原值 A 相同,如果相同,则将内存位置 V 中的值更新为新值 B;如果不同,则不进行更新操作。整个操作是原子性的,由硬件层面保证。
2025-04-06 00:07:34
482
原创 JUC基础和关键字
块或方法时,会尝试获取对象的监视器(monitor),如果获取成功,则可以执行代码块或方法,同时其他线程无法获取该监视器,只能等待。是非公平锁,多个线程竞争锁时,JVM 不会保证等待时间最长的线程优先获得锁,可能会导致某些线程长时间得不到锁。变量时,会在写操作后插入一个写屏障,保证在写操作之前的所有操作都已经完成,并且结果已经刷新到主内存中;变量时,会在读操作前插入一个读屏障,保证在读操作之后的所有操作都不会在该读操作之前执行。类的对象,然后通过该对象调用其方法,并在新类中添加额外的方法来实现功能拓展。
2025-04-05 13:50:59
531
原创 java集合面试题
WeakHashMap 是基于弱引用实现的哈希表。在 WeakHashMap 中,键是弱引用类型。当键所引用的对象被垃圾回收时,对应的键值对会被自动从 WeakHashMap 中移除。WeakHashMap 的主要用途是在缓存场景中,当缓存的对象不再被其他地方引用时,能够自动释放内存,避免内存泄漏。key = null;try {// 空类在这个示例中,当key被置为null后,调用进行垃圾回收,由于key。
2025-04-05 13:38:10
926
原创 Java 基础面试题
定义泛型类时,在类名后面使用<T>来表示泛型类型参数,T可以是任意标识符。// 使用泛型类定义泛型接口和定义泛型类类似,在接口名后面使用<T>表示泛型类型参数。// 实现泛型接口@Override// 使用泛型接口泛型方法可以在普通类中定义,在方法返回类型前面使用<T>表示泛型类型参数。// 使用泛型方法反射是 Java 提供的一种机制,允许程序在运行时动态地获取类的信息(如类的属性、方法、构造方法等),并可以调用这些属性和方法。
2025-04-05 10:48:32
781
原创 Spring Cloud 网关及配置管理教学
本课程系统学习了 Spring Cloud 网关及配置管理的核心知识。在网关部分,掌握了 Spring Cloud Gateway 的基本概念、快速入门配置、路由属性、登录校验以及用户信息传递的实现方法。配置管理方面,学会了使用 Nacos 进行共享配置、配置热更新和动态路由的操作。通过这些内容的学习,能够有效提升微服务架构的安全性、可维护性和灵活性,为开发高质量的微服务应用奠定坚实基础。在实际项目中,可根据业务需求灵活运用所学知识,不断优化和完善微服务架构。
2025-04-05 10:37:11
660
原创 OpenFeign10道面试题
Spring Cloud OpenFeign 是一个声明式的 Web 服务客户端,基于 Feign 构建且与 Spring Cloud 紧密集成。在微服务架构里,各服务间通信频繁,OpenFeign 能简化远程调用流程。开发人员只需创建接口并通过注解描述如何调用远程服务,无需编写繁杂的 HTTP 请求代码。以电商系统为例,订单服务调用商品服务获取商品详情,使用 OpenFeign 可轻松实现,既提升开发效率,又使代码结构更清晰。支持的编码器和解码器编码器。
2025-04-05 10:33:49
525
原创 SpringCloud 框架进行微服务开发
本课程围绕微服务架构展开了全面而深入的讲解,从微服务的基本概念、与单体架构的对比,到 SpringCloud 框架的核心组件、微服务拆分策略与实战,再到服务治理和 OpenFeign 的应用,为学员提供了系统的微服务知识体系。通过理论讲解与实际案例相结合的方式,帮助学员理解和掌握微服务架构的关键技术点,培养学员在实际项目中运用微服务架构进行开发和解决问题的能力。在学习过程中,学员应注重实践操作,积极参与项目案例的练习,加深对知识点的理解和掌握。
2025-03-30 16:50:09
865
原创 Docker 从入门到项目部署教学文档
自定义镜像就是根据用户的需求,将应用程序、程序运行的系统函数库、运行配置等文件打包成一个镜像。通过自定义镜像,可以将应用及其运行环境封装在一起,方便在不同的环境中部署和运行。准备 Linux 运行环境:可以选择基于ubuntucentos等基础镜像来构建。安装 JRE 并配置环境变量:在选择的基础镜像中安装 Java 运行时环境(JRE),并配置JAVA_HOME等环境变量,确保 Java 应用能够正常运行。拷贝 Jar 包:将开发好的 Java 应用的 Jar 包拷贝到镜像中的指定目录。
2025-03-30 16:03:13
964
原创 MyBatis-Plus 从入门到精通教学文档
引入起步依赖。自定义 Mapper 继承BaseMapper接口。在实体类上添加注解声明表信息。在中根据需要添加配置。MyBatis-Plus 支持各种复杂的where条件,和通常用来构建selectdeleteupdate的where条件部分;和通常在set语句比较特殊时使用。尽量使用和,避免硬编码。基于Wrapper构建where在mapper方法参数中用@Param注解声明wrapper变量名称,必须是ew。自定义 SQL,并使用Wrapper条件。
2025-03-30 15:42:46
892
原创 分布式事务解决方案深度剖析与实战教程
分布式事务概念:事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统节点上,即组成事务的各个单元处于不同数据库服务器。以电商系统为例,订单创建、库存扣减和用户积分增加等操作可能涉及不同的数据库服务,这些操作需要作为一个整体保证数据一致性,这就是分布式事务。分布式事务应用架构单一服务不同数据库架构:一个服务需要操作多个不同的数据库,如库存系统和日志系统分别使用不同数据库,在这种情况下,服务要确保对多个数据库的操作满足事务一致性。单一服务分库分表架构。
2025-03-30 10:13:40
895
原创 技术中台下终搜技术解决方案教学
Logstash 是一个具备实时数据传输能力的管道,可将数据从输入端传输到输出端,并通过插件进行数据转换和处理。其官方插件 logstash - input - jdbc 可实现 mysql 与 elasticsearch 的数据同步,支持全量和增量同步,且能定时同步。结构化搜索是对具有内在结构数据的搜索过程,电商场景下可用于根据特定条件筛选商品,如查询二级类目、按价格和配送方式筛选商品等。语料库映射 OpenAPI:定义索引操作接口,实现新增索引和映射功能。
2025-03-30 10:06:13
694
原创 Java 日志技术全面解析与实践教程
日志的生命周期包含采集、传输、存储和分析四个环节,每个环节都有相应的中间件可供选择。在选用中间件时,需要综合考虑性能、可靠性、插件支持程度、配置复杂度等因素。名称优势劣势常用场景Logstash插件多,资料充足,配置简单性能一般,不支持缓存采集、传输Filebeat可靠,性能好,多种对接存在注册表过大问题采集Fluentd基于 Ruby,插件多,易于编写和维护灵活性相对差,性能一般采集Logtail资源占用少仅做收集,类型解析较弱采集Logagent。
2025-03-30 09:59:53
659
原创 Java 实现用户注册与登录
总体而言,在大多数常见的应用场景中,BCrypt 是一种非常安全可靠的密码加密算法,但在设计安全系统时,仍需要综合考虑各种因素,采取多种安全措施来保障系统的安全性。下面是使用 Java 和 BCrypt 库实现用户注册与登录功能的示例代码。你需要在项目中添加 BCrypt 依赖,以 Maven 为例,在。没有一种加密算法是绝对安全的,BCrypt 也不例外。
2025-03-30 09:33:54
338
原创 Elasticsearch
Elasticsearch 是一款高性能分布式搜索引擎,在搜索引擎技术排名中位居前列。它基于 Lucene 开发,具备分布式、水平扩展、提供 Restful 接口等优势,常与 kibana、Logstash、Beats 组成 ELK 技术栈,应用于日志数据分析、实时监控等领域。其核心概念包括倒排索引、IK 分词器,涉及索引库、文档的多种操作,并且提供 JavaRestClient 客户端进行开发,方便与应用程序集成。Elasticsearch 简介起源与发展。
2025-03-26 23:51:04
868
原创 mybatis面试题
定义:查询不存在的数据,请求绕过缓存直达数据库。解决布隆过滤器:提前拦截无效 Key,避免数据库查询。缓存空值:对查不到的数据缓存空值,设短过期时间。布隆过滤器是概率型数据结构,用多个哈希函数判断元素是否存在。优点是空间效率高,适合过滤大量不存在的 Key;缺点是存在误判(元素不存在可准确判断,存在可能误判)。
2025-03-24 10:26:51
442
原创 Maven 基础总结
通过以上总结,用户可全面掌握 Maven 的核心功能及高级应用,进一步提升项目管理与构建效率。通过父 POM 统一管理多个子模块的构建过程,支持一键构建所有子模块。子模块继承父 POM 的配置(如依赖、插件、属性),避免重复代码。合理使用分模块设计能显著提升大型项目的可维护性和开发效率。
2025-03-24 10:02:56
744
原创 SpringMVC_day02
SSM 整合需关注配置类的正确性,统一结果和异常处理提升接口规范性,拦截器增强系统功能。实际开发中需结合日志、缓存等优化系统性能,并通过 Swagger 等工具完善接口文档。
2025-03-23 22:08:12
841
原创 SpringMVC_day01
下面为你提供一个简单的 SpringMVC 入门案例,这个案例主要实现接收客户端请求并返回响应结果。这里使用 Maven 来管理项目依赖。在 Spring MVC 里,注解的使用能简化开发流程,增强代码的可读性与可维护性。下面为你详细介绍 Spring MVC 中常见的注解。将项目打包成 WAR 文件并部署到 Servlet 容器(如 Tomcat)中,启动容器。首先,创建一个 Maven Web 项目,在。
2025-03-23 18:17:12
1114
原创 Spring面试题
Spring 是一个轻量级的 Java 开发框架,它为企业级应用开发提供了全面的解决方案,旨在简化 Java 开发。Spring 采用了 IoC(控制反转)和 AOP(面向切面编程)等核心技术,具有松耦合、可测试性强、易于集成等优点,能够帮助开发者更高效地构建企业级应用。IOC 即控制反转,是一种设计原则,它将对象的创建和依赖关系的管理从代码中转移到外部容器中。在传统的编程中,对象的创建和依赖关系是由开发者手动控制的,而在 IOC 模式下,对象的创建和依赖注入由 Spring 容器负责。XML 配置。
2025-03-23 16:25:56
970
原创 Spring 框架基础教程(Day03)
通过上述代码,我们使用 Spring AOP 实现了对接口和 SQL 方法执行时间的统计。核心是定义切面类,使用@Around环绕通知在目标方法执行前后记录时间,并输出日志。切入点表达式用于指定要拦截的方法。这种方式可以在不修改原有业务逻辑的前提下,添加额外的统计功能。2. AOP 配置与实现2.1 切入点表达式语法execution(修饰符?返回值 包名.类名.方法名(参数) 异常?。通配符:匹配任意符号(如..:匹配多级路径或任意参数(如:匹配子类类型(如*Service+示例。
2025-03-23 16:11:02
933
原创 Spring 框架基础教程(Day02)
容器加载方式: 方式 描述 适用场景 加载 XML 配置文件。 示例: 传统 XML 配置项目。 加载注解配置类。 示例: 纯注解开发项目。 3. 依赖注入 引用类型: 简单类型: 4. Bean 作用域与生命周期 作用域: 生命周期: 5.
2025-03-23 11:06:27
727
原创 Spring 框架基础教程(Day01)
先定义业务接口,再提供具体的实现类。// 定义一个用户服务接口// 实现用户服务接口// 提供 setter 方法用于依赖注入@OverrideSystem.out.println("开始保存用户信息...");// 定义用户数据访问接口// 实现用户数据访问接口@OverrideSystem.out.println("将用户信息保存到数据库...");在这段代码中,是业务接口,是其实现类,该实现类依赖于UserDao。UserDao是数据访问接口,是它的实现类。
2025-03-23 01:45:11
613
原创 MySQL 面试题
使用内连接查询员工姓名、部门名称和薪资等级(薪资等级表 salgrade 包含 grade、losal、hisal)。使用 DQL 查询年龄在 20-30 岁之间的女性员工,按入职日期降序排列,显示前 5 条记录。设计一个员工表(emp),包含字段:编号、姓名、年龄、性别、入职日期、部门 ID。请解释数据库(DB)、数据库管理系统(DBMS)、SQL 三者的区别。当查询速度变慢时,可能的优化手段有哪些?分别写出对应的关键字(至少 3 个)。事务的四大特性(ACID)是什么?脏读和幻读的区别是什么?
2025-03-19 16:37:46
392
原创 MySQL 基础学习文档
数据库 (DB):存储数据的结构化仓库数据库管理系统 (DBMS):操作数据库的软件(如 MySQL、Oracle)SQL:操作关系型数据库的标准语言。
2025-03-17 22:02:04
825
原创 Linux 脚本Shell 的应用场景
在 Linux 系统下,Shell 脚本是一种基于命令行解释器(如 Bash)编写的脚本语言,可用于自动化执行一系列系统命令。对于 Java 开发而言,Shell 脚本是常用的自动化工具,当然 Linux 下也有其他脚本语言如 Python 脚本等可用于 Java 开发辅助,但 Shell 脚本使用更为普遍。
2025-03-17 15:54:08
338
原创 java基础100道面试题
面向对象编程(OOP)是一种编程范式,它将数据和操作数据的方法封装在一起,形成对象。封装:将数据和操作数据的方法绑定在一起,隐藏对象的内部实现细节,只对外提供必要的接口。继承:允许一个类继承另一个类的属性和方法,从而实现代码的复用和扩展。多态:同一个方法可以根据对象的不同类型表现出不同的行为。多态是指同一个方法可以根据对象的不同类型表现出不同的行为。方法重载:在同一个类中,定义多个方法名相同但参数列表不同的方法。方法重写:在子类中重写父类的方法,使得子类对象调用该方法时表现出不同的行为。静态变量。
2025-03-17 02:10:24
608
原创 面试篇-项目管理
Maven私服(Maven Repository Manager)是搭建在局域网内的特殊远程仓库服务,用于代理外部远程仓库并提供给局域网内的Maven用户使用。私服在Maven项目中扮演着重要的角色,具有以下特性和作用:1. **节省外网带宽**:私服可以减少重复请求外部仓库的资源,从而节省外网带宽消耗,提高资源获取效率。2. **加速Maven构建**:通过在局域网内使用私服,可以避免配置多个外部远程仓库导致构建速度变慢的问题,从而加速Maven项目的构建过程。
2024-11-14 23:11:14
885
原创 SpringBoot运维
具体来说,高优先级的配置文件中的属性会覆盖低优先级配置文件中相同属性的取值,从而实现了不同层级配置的优先级管理。通过这种多层级配置文件的设置,可以满足不同角色和环境的需求,同时确保配置信息的安全性和管理性。5. **记录运维过程数据**:记录运维过程中的关键事件和数据,如扩容、宕机、报警信息等,帮助运维人员了解系统运行状况、维护历史记录,以便进行故障排查和系统优化。- 在启动 Spring Boot 项目时,临时属性的加载优先级要高于配置文件中的属性,可以通过临时属性来替换配置文件中的属性。
2024-10-20 22:14:13
819
1
原创 springboot基础
Starter 提供了一种简单的方式来引入一组相关的依赖,而 Parent 则统一管理了各个依赖的版本,避免了版本冲突的情况,从而提高了开发效率和项目的稳定性。这两个文件是一个最简单的Spring Boot程序所必需的基础文件,`pom.xml` 文件定义了项目的依赖和构建配置,`Application` 类则是应用的入口点,用于启动Spring Boot应用。总的来说,继承 `spring-boot-starter-parent` 是一种常见的做法,可以简化项目配置和依赖管理,确保项目的稳定性和一致性。
2024-10-20 19:26:04
1052
原创 服务保护sentinel
每次有新的请求到达时,我们会根据请求的结果(成功或失败)和时间戳来更新窗口中的数据,然后根据窗口中的数据来计算失败请求的比例。在移动窗口算法中,我们使用一个固定大小的窗口来追踪一段时间内的事件情况,通过移动窗口来计算事件的比例或者频率。// 容量为1,漏水速率为1请求/秒。以上是简单的示例代码,实际场景中需要根据具体需求进行更加完善的实现,并考虑异常处理、线程池的生命周期管理、资源的合理分配等问题。- 信号量隔离:不创建线程池,而是计数器模式,记录业务使用的线程数量,达到信号量上限时,禁止新的请求。
2024-09-29 17:55:37
1029
原创 JD面试题
综上所述,使用Spring提供的线程池执行器能够更好地发挥Spring框架的优势,简化线程池的管理和配置,提高系统的可维护性和可扩展性。1. **集成性**:Spring的线程池执行器是Spring框架的一部分,使用Spring提供的线程池执行器可以更好地与Spring框架集成,利用Spring的依赖注入、AOP等特性,更好地管理线程池。3. **便捷性**:Spring提供的线程池执行器简化了线程池的配置和使用,通过Spring的配置方式可以方便地定义和管理线程池,减少了开发人员的工作量。
2024-09-29 09:28:42
574
原创 架构面试题
架构基础如何理解架构的演进?架构的演进指的是随着技术、业务和需求的不断发展,架构在设计和实施上的变化和进化过程。这包括从单体应用向微服务架构的过渡、从传统的服务器部署向云原生架构的转变,以及在数据处理、安全性和性能优化等方面的不断改进。架构的演进是为了适应不断变化的业务需求和技术发展,提高系统的灵活性、可扩展性和可维护性。如何理解架构的服务化趋势?架构的服务化趋势指的是将系统拆分为多个相对独立、可独立部署和扩展的服务。这种趋势使得系统更易于开发、部署和维护,同时也更好地适应了快速变化的业务需
2024-09-24 15:46:23
681
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人