自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hardy Army的博客

一起进步

  • 博客(33)
  • 收藏
  • 关注

原创 速记Java八股文——Redis 篇

分类汇总 50+ 常见的 Redis 篇 经典后端面试题,并对题目进行了精炼总结,旨在帮助大家高效记忆,在面试中游刃有余,不至于陷入词穷的窘境。

2024-08-06 21:03:57 728

原创 速记Java八股文—— MySQL篇

分类汇总 50+ 常见的 MySQL篇 经典后端面试题,并对题目进行了精炼总结,旨在帮助大家高效记忆,在面试中游刃有余,不至于陷入词穷的窘境。

2024-08-06 20:47:03 496

原创 速记Java八股文—— Java 设计模式篇

分类汇总 20+ 常见的 Java 设计模式篇 经典后端面试题,并对题目进行了精炼总结,旨在帮助大家高效记忆,在面试中游刃有余,不至于陷入词穷的窘境。

2024-08-05 16:28:53 544

原创 速记Java八股文——网络编程篇

分类汇总 30+ 常见的 网络编程篇 经典后端面试题,并对题目进行了精炼总结,旨在帮助大家高效记忆,在面试中游刃有余,不至于陷入词穷的窘境。

2024-08-05 16:20:14 309

原创 速记Java八股文——Java 虚拟机篇

分类汇总 20+ 常见的 Java 虚拟机篇 经典后端面试题,并对题目进行了精炼总结,旨在帮助大家高效记忆,在面试中游刃有余,不至于陷入词穷的窘境。

2024-07-30 13:40:55 433

原创 功能性的安全保障:输入校验

输入校验是确保应用程序安全的第一道防线。通过对用户输入进行严格的验证,可以阻止恶意数据进入系统,从而减少安全漏洞的风险。有效的输入校验策略可以保护数据的完整性,维护系统稳定性,并增强用户对应用的信任。

2024-07-30 08:00:00 952

原创 速记Java八股文——并发编程篇

分类汇总 50+ 常见的 Java 并发编程 经典后端面试题,并对题目进行了精炼总结,旨在帮助大家高效记忆,在面试中游刃有余,不至于陷入词穷的窘境。

2024-07-29 15:00:36 288

原创 速记Java八股文——集合篇

分类汇总 10+ 常见的 Java集合 经典后端面试题,并对题目进行了精炼总结,旨在帮助大家高效记忆,在面试中游刃有余,不至于陷入词穷的窘境。

2024-07-27 20:53:51 544

原创 速记Java八股文——基础篇

分类汇总 50+ 常见的 Java基础 经典后端面试题,并对题目进行了精炼总结,旨在帮助大家高效记忆,在面试中游刃有余,不至于陷入词穷的窘境。

2024-07-27 12:11:41 680

原创 功能性的安全性保障:TOKEN鉴权校验

在前文功能性的安全性保障:实现强制登录和密码加密功能中,我们已经讨论了功能性的安全性保障中的两个核心议题:身份验证和密码加密。所以在本文中,我们将继续从功能性的安全性保障这个话题展开,通过对概念的细致解读、实施策略的全面分析,以及实际代码实现的展示,深入讨论其中的另外一个核心议题:TOKEN鉴权校验。

2024-07-24 22:54:25 1119

原创 功能性的安全性保障:实现强制登录和密码加密功能

强制用户登录和身份验证是保护敏感数据和系统安全的基石。随着技术的发展,我们需要不断评估和更新我们的方法,以应对日益复杂的安全威胁。通过采用多因素认证、自适应认证和其他先进的身份验证技术,我们可以为用户提供更安全、更便捷的访问体验。密码加密是保护用户数据安全的重要环节。通过使用强加密算法、盐值、密钥拉伸技术和合理的密码策略,可以显著提高密码存储的安全性。同时,结合多因素认证和密码管理工具,可以为用户提供更全面的安全保护。

2024-07-23 22:48:05 843 1

原创 图片上传成功却无法显示:静态资源路径配置问题解析

实际在开发过程中,我们总会遇到大大小小的各种问题,而遇到问题时,如何快速有效地排查问题并找到原因点是每个开发者所必备的技能。就拿这一次学弟遇到的问题,下面是我们在解决头像上传后页面无法显示图片问题时的复盘,希望能为大家提供一些参考和启示。

2024-07-21 14:26:32 1896

原创 ShardingSphere的项目应用

最近,随着业务的发展,我们的项目面临着日益增长的数据挑战。系统使用的数据库是mysql,每天的增量差不多在百万左右,由于没有进行分库分表,以前设置的单表保存已经越发不能满足需求,所以想维持表的性能,甲方考虑对这些大数据量的表进行分表操作,同时也采用读写分离,将业务上的读写操作分开,提高系统性能。垂直分表虽然可以减少单表的数据量,但需要将表中不同的字段拆分到不同的表中的操作,对现有系统会造成一定的冲击和潜在的维护成本,所以我们选择了更为稳妥的水平分表策略,将表中的数据按规则拆分到多个表中,分散数据量。

2024-07-15 15:25:03 909 1

原创 构造者模式的实现

构造者模式允许你一步步地构建一个复杂的对象,而不是一次性地创建它。这样做的好处是,你可以灵活地调整对象的各个部分,而不需要为每一种可能的组合都创建一个新的类。就像是在蟹堡王定制蟹黄堡一样,你可以根据自己的需求,让小海绵一步步地构建出你想要的汉堡。这样既灵活又有趣,不是吗?

2024-07-13 18:35:09 1009

原创 观察者模式的实现

在现代战争中,通信是胜利的关键。正如中华人民共和国国防部所述,“信息力以网络、数据、算法、算力等为底层支撑,在现代战争中不断推动感知、决策、指控等各环节产生量变与质变” 。在软件架构中,观察者模式扮演着类似的角色,它是确保信息在系统中高效、准确地流动的“通信兵”。

2024-07-11 22:01:07 1125 1

原创 模板方法模式的实现

之前做过一个交易管理系统,其中有一个核心模块是“交易流程管理”,该模块需要处理不同类型的交易,比如期货交易、期权交易和股票交易。在构建交易管理系统的过程中,我们面临了一个核心挑战:如何高效地管理不同类型的交易流程?虽然这些交易类型在流程上存在差异,但它们的核心步骤却惊人地相似。如果为每一种交易类型都独立编写一套实现逻辑,不仅会增加工作量,还会导致代码冗余和维护难度的增加。

2024-07-10 23:18:55 708 1

原创 策略模式的实现

策略模式就像是在餐厅点餐的过程。假设你和朋友一起去餐厅,你们可以根据自己的口味选择不同的菜肴。你可以点披萨,你的朋友可以点汉堡,而另一位朋友可以点沙拉。每个人都可以根据自己的喜好选择不同的策略(菜肴),但最终都能满足吃东西的需求。

2024-07-10 22:42:03 1022

原创 代理模式的实现

代理模式就像是生活中的中介或代理人,他们代表我们处理一些事务,让我们能够更方便、更高效地完成任务。想象一下,你想要买一套房子,但你没有时间或者不熟悉购房流程,这时候你可能会找一个房产中介来帮你处理这些事情。房产中介就是这个场景中的“代理”,而你则是“客户端”,房子和卖家则是“真实对象”。

2024-07-06 17:00:22 837

原创 单例模式的实现

当在应用程序中需要控制资源共享、进行配置管理和日志记录等操作时,一种常见的需求是希望通过一个全局访问点,让程序无论在哪个地方,只要能够访问到,就可以通过这个全局访问点,来获取相关实例信息。对于懒汉式单例模式,单例实例在第一次被使用时构建,延迟初始化,相对资源利用率高。如果学过Spring的小伙伴,应该清楚,Spring框架中,默认情况下管理的Bean是单例的,这也意味着Spring容器在创建和管理Bean时,每个Bean只会有一个实例,并且这个实例会被所有需要它的地方共享。:避免重复创建实例,节省资源。

2024-07-06 11:20:44 1332

原创 浅谈反射机制

反射机制是Java语言中一种强大的功能,它让我们能够在运行时进行一些本应只能在编译时完成的操作。这个功能的特点就是使得程序可以动态地检查和操作类、方法、字段等,从而带来了极大的灵活性。简单来说,反射机制使得开发人员能够编写更加灵活和动态的代码。举个例子,我们可以根据配置文件来动态创建对象、实现依赖注入、在运行时调用方法而不需要提前知道方法的名称。然而,反射机制虽然给我们带来了好处,但也有一些弊端需要注意。首先,反射通常会比直接调用要慢,因为它会绕过一些编译时的优化。其次,由于反射机制允许操作私有成员,可

2024-07-04 14:53:14 1446

原创 原型模式的实现

MapStruct 和原型模式虽然都涉及对象的复制和转换,但它们有不同的设计目的和优势。MapStruct 的理念是通过编译期生成代码,将一个对象的属性映射到另一个对象,而不是通过对象的克隆方法进行复制。MapStruct 生成的代码通过反射或直接访问来实现属性赋值,更类似于数据转换器或适配器模式。当需要进行对象间的转换和数据传输时,使用MapStruct无疑是个非常便捷的选择。而原型模式则在需要快速创建复杂对象副本时有特定的优势。

2024-06-30 18:59:54 1231

原创 抽象工厂实现流程(二)

Data @ApiModel(value = "DemandRecordBO" , description = "需求记录统一转换入参") public class DemandRecordBO {/*** 单据类型:根据具体业务定义枚举值/*** 单据编号/*** 零件编号/*** 零件名称/*** 需求数/*** 零件行号/*** 无效/ 有效 标识(eg: 0. 无效;1. 有效)/*** 创建人姓名/*** 更新人姓名/*** 创建时间。

2024-06-26 23:55:17 763

原创 整理企业常见的管理系统

企业资源规划系统,用于管理企业内部的各项资源和业务流程,包括财务、人力资源、采购、库存、生产等,以提高企业的整体效率和协调性。:客户关系管理系统,用于帮助企业管理与客户相关的业务活动,包括销售、营销、客户服务等,以增强客户体验和提高客户满意度。:制造执行系统,用于监控和管理生产过程的各个环节,包括生产进度、质量控制、设备管理等,以优化生产效率和资源利用。:内容管理系统,用于创建、编辑、发布和管理网站上的内容,包括文本、图片、视频等。

2024-06-23 12:26:10 489

原创 抽象工厂实现流程

本文档将介绍我们的设计方案,包括抽象工厂的实现方式、各个组件之间的交互流程,以及如何通过这种模式提高代码复用性、降低系统耦合度,并最终实现一个更加健壮和易于维护的系统。

2024-06-23 12:22:34 957

原创 Java的锁机制

在多线程环境中,多个线程可能会同时访问共享数据。若无适当的同步措施,这可能导致数据不一致性和竞态条件。Java提供了多种锁机制来管理这种并发访问,确保线程互斥访问共享资源,并提供可见性和有序性,从而保障多线程间的数据协调和同步。

2024-06-17 15:37:33 781

原创 实现企业微信网页授权

企业微信的网页授权是企业微信提供的一种授权机制,用于企业微信应用或网页应用获得用户在企业微信中的授权,进而获取用户的基本信息和权限。通常用于企业内部应用或企业与企业之间的应用授权。

2024-05-30 21:17:41 1200

原创 EasyExcel数据导入导出实例

EasyExcel是一个基于Java的开源库,用于简化Excel文件的读写操作。它特别适用于处理大文件,因为它在读写过程中使用磁盘作为缓存,从而减少内存的使用,避免内存溢出问题。也是目前比较常用的解析Excel文件技术。作为开发者,对于怎么使用EasyExcel来完成数据导入、数据导出以及数据传输等任务还是有很大必要了解的。

2024-05-27 11:57:20 445

原创 接口自动化测试中,可能遇到的难点以及解决思路

接口自动化测试是一种通过自动化脚本或工具模拟请求来验证API接口功能的方法。简单来说,可以这么子理解:接口是软件系统中不同模块之间的通信桥梁,接口自动化测试则是针对这些接口的功能、性能、稳定性等方面进行自动化测试。实际工作汇总,当我们在实施接口自动化测试时,由于各种因素方面的困扰,在进行接口自动化时,并不一定是一帆风顺的,可能会遇到各式各样的难点。当然,由于笔者本身不是测试人员,所以下面我将站在开发的角度,将接口自动化测试中可能遇到的难点进行解析,并且提供一些简单的解决思路。

2024-05-26 23:34:25 1227 1

原创 Java API的调用方式

假设给定一个API接口,通过这个API可以去获取到第三方系统的token。那么在分布式系统中,我们一共有多少种方式可以去实现API的调用呢?

2024-05-23 17:09:51 1551 1

原创 Java真实面试题

蓝绿部署(Blue-Green Deployment)是一种减少系统停机时间和部署风险的策略,它涉及使用两个生产环境,分别称为“蓝色环境”和“绿色环境”。每个环境都拥有自己的硬件或虚拟机资源,包括服务器、数据库、存储等,并且两个环境都是完全配置好的,可以独立运行。蓝绿部署的步骤通常包括准备阶段:开发人员对应用进行修改和测试,准备新版本的应用。与此同时,两个生产环境(蓝色和绿色)都处于活跃状态,其中之一处理所有生产流量。部署新版本。

2024-05-22 12:43:45 1334 1

原创 Java多线程的技术分享

Java多线程是Java编程中的一个重要概念,它允许开发者创建可以同时运行的多个线程,从而提高程序的执行效率。

2024-05-13 23:04:32 618

原创 Java8 Lambda表达式用法

Lambda表达式是 **`Java 8`** 引入的一种简洁的定义匿名函数的方式。它们允许以简洁的语法编写实例化匿名类的方式,特别是当实现只有一个方法的接口时(这种接口通常被称为函数式接口)。Lambda表达式可以视为一种特殊的匿名类,它提供了一种不必编写类定义和构造器就能实现函数式接口的语法糖。在本文中,我们将深入探讨Lambda表达式的概念、语法和用法,并着重以Lambda的用法为主,为每个实例提供代码演示。

2024-05-09 16:23:34 580 2

原创 Java面试简单汇总

对我来说,面向对象编程思想的重要性在于它的灵活性和可扩展性,让软件的开发更加符合问题的本质,降低代码的复杂度和维护成本。高内聚低耦合是软件设计追求的目标,有助于创建结构清晰、易于维护和扩展的系统。耦合和内聚的评判标准时强度,耦合越弱越好,内聚越强越好。访问修饰符的选择需要根据具体情况来考虑,不能⼀概⽽论。通常情况下,应该尽可能地将成员设置为 private, 只在需要的情况下使⽤ public 或 protected。需要注意的是,在同⼀个类中,成员可以直接访问其他成员,⽆论其访问修饰符是什么。

2024-04-23 21:46:37 1387

空空如也

空空如也

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

TA关注的人

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