![](https://img-blog.csdnimg.cn/b751be9e245a4f59a1e14c919adbb3fa.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA基础
文章平均质量分 78
掌握JAVA,与世界接轨,共创未来!
missterzy
世界上没有做不到的事
只有不想去完成的事
可惜我比较懒
展开
-
TreeMap和HashMap应该如何选择?
每个插入的键都会按照比较规则找到它在树中的正确位置,以确保树的平衡,从而保证了树的高度大约是对数的。在Java中,TreeMap和HashMap都是用于存储键值对的集合,但它们有不同的内部数据结构和性能特点,适用于不同的使用场景。:HashMap 不保证元素顺序的稳定性,即元素插入的顺序与遍历的顺序可能不同。:如果你依赖于键的排序,或者需要根据排序顺序进行范围查找等操作,那么TreeMap是更合理的选择。:如果需要经常以排序的方式迭代键,那么TreeMap会更加有效,因为它无需额外的排序。原创 2024-06-10 03:30:00 · 296 阅读 · 0 评论 -
Spring Boot集成hana快速入门demo
SAP HANA(高性能分析工具)是一款将数据存储在内存而不是硬盘的多模型数据库。这款列式内存数据库支持企业在同一系统中执行快速的事务处理和先进的分析处理。为什么 SAP HANA 如此重要?因为该产品支持企业近乎零延迟地处理海量数据,即时查询数据,并真正实现由数据驱动。SAP HANA 拥有独特的优势。该平台将数据存储在主内存的列存储表中,并且集联机分析处理 (OLAP) 和联机事务处理 (OLTP) 于一体,处理速度比目前市场上的其他数据库管理系统 (DBMS) 快很多。原创 2024-06-06 13:15:56 · 844 阅读 · 0 评论 -
@Configuration与@Component有什么区别?
用于标识配置类,这些类不同于普通的组件类,它主要包含了Bean的定义。在配置类中,可以使用@Bean注解来定义Bean的创建方法。Spring容器在启动时,会调用这些带有@Bean注解的方法,并将返回的对象注册为Bean。当Spring启动时,它会扫描应用程序的类路径,并自动检测带有@Component注解的类。获取的是不同的对象,这就造成了问题,Spring容器中存在多个不同的实例,如果这里的调用的是DataSource数据源Bean的方法,那么就出大问题了,很可能你的事务都将不会生效等一些问题。原创 2024-06-07 14:45:00 · 674 阅读 · 0 评论 -
程序员必须掌握的jar包启动命令详解
项目开发完成后,使用maven命令打成jar包,需要放到服务器上启动运行。今天主要说一下 springboot jar 包的启动命令。指定JVM的初始堆大小被设置为256MB,最大堆大小被设置为512MB注:以上参数都可自由组合,如指定端口号指定配置文件启动。编写文件,后缀名命令为 “.bat”。//上面的启动方式,都不是后台启动。后台启动方式如下:Linux下 加上 nohup 和 &。代表不挂断运行命令,当账户退出或终端关闭时,程序仍然运行。原创 2024-05-28 20:30:00 · 566 阅读 · 2 评论 -
Cookie、Session、JWT、Token
Cookie 和 Session 配合使用可以在服务端保持用户状态,但如果用户禁用了Cookie,则Session也会受到影响。JWT 和 Token 通常用于无状态的API服务中身份验证,两者通常放在HTTP请求的Authorization header中传递。JWT内部自包含了所有用户信息,避免了服务端需要进行Session管理的开销,但如果JWT被篡改或泄露,可能会导致安全隐患,因此必须通过SSL/TLS保证传输安全。原创 2024-05-25 20:30:00 · 697 阅读 · 0 评论 -
干掉 Random,获取随机数他才是王者,安全!
最近在写一些业务代码时遇到一个需要产生随机数的场景,这时自然想到 jdk 包里的Random类。但出于对性能的极致追求,就考虑使用类进行优化,在查看 ThreadLocalRandom 实现的过程中,又追了下Unsafe有部分代码,整个流程下来,学到了不少东西,也通过搜索和提问解决了很多疑惑,于是总结成本文。原创 2023-05-22 09:37:07 · 71 阅读 · 1 评论 -
基于Redis实现短信登录功能
用户输入手机号:用户在前端页面输入手机号,并请求发送验证码。后端生成验证码:后端接收到请求后,生成一个随机的验证码。发送验证码:后端将验证码通过短信服务发送到用户的手机上。用户输入验证码:用户收到验证码后,在前端页面输入。后端验证验证码:用户提交验证码,后端验证其正确性。登录成功或失败:根据验证码的正确性,后端返回登录成功或失败的信息。通过Redis来存储和验证短信登录的验证码,可以提高应用的性能和安全性。java结合库可以方便地实现这一功能。在实现过程中,还需要注意安全性的考虑,确保用户的数据安全。原创 2024-05-19 22:00:00 · 661 阅读 · 0 评论 -
分布式之Gateway 网关
微服务架构中,单个应用会被划分成多个子服务,客户端访问这些服务时,需要考虑每个服务的访问地址,这个过程会比较复杂。而Gateway将这些微服务进行统一管理,对外提供一个「统一的访问地址」,并将请求由网关路由到对应的子服务上去,从而提高系统的效率和可维护性。Gateway提供了一个「单一的入口点」,用于管理所有的服务请求。在实际项目部署中,用户的请求在外网(公网)通过nginx转发到内网网关gateway,然后gateway会去调用具体的服务处理请求。原创 2024-05-24 20:53:21 · 481 阅读 · 0 评论 -
Redis缓存雪崩、穿透、击穿、预热及解决方案
指在一个高并发的系统中,由于大量的缓存数据在同一时间段内过期或失效,导致大量请求无法从缓存中获取数据,因此大量并发请求可能导致数据库服务器过载,甚至宕机,从而引发整个系统崩溃。一句话,就是查询一条根本没有的记录。它既不存在于redis中,也不存在数据库中。一般我们的查询顺序是先查redis、再查数据库。每次请求最终都会访问到数据库。造成数据库访问压力。这种现象叫缓存穿透。一句话,就是热点key突然失效了,大量请求暴击数据库。关键词:大量请求、同一个热点key、正好失效。原创 2024-05-24 09:15:18 · 1347 阅读 · 0 评论 -
布隆过滤器原理
因为hash计算会产生hash冲突(或者hash碰撞)的问题。原创 2024-05-24 08:20:18 · 948 阅读 · 0 评论 -
部署一套完整的架构系统有哪些步骤
如果以java、Jenkins(自动化部署)、docker(容器化部署)、k8s(兼容前两个)如果搭建一个商业系统,我们需要准备哪些?原创 2024-05-24 02:00:00 · 791 阅读 · 0 评论 -
Spring Cloud Alibaba 学习指南
Spring Cloud Alibaba 提供微服务开发的一站式解决方案,包含开发分布式应用服务的必需组件,方便开发者轻松使用这些组件来开发分布式应用服务。原创 2024-05-23 10:21:57 · 823 阅读 · 0 评论 -
Spring Boot:将文件推送到 FTP 服务器
通过本文,我们成功地在 Spring Boot 项目中实现了将文件推送到 FTP 服务器的功能。我们通过引入 Apache Commons Net 依赖、自定义 FTP 配置、创建 FTP 服务类和控制器类,实现了文件的上传和管理。这种方式可以帮助我们在各种应用场景中将文件高效地推送到 FTP 服务器,方便文件的存储和共享。在企业应用中,将文件推送到 FTP 服务器是一个常见的需求。本文将介绍如何在 Spring Boot 项目中实现将文件推送到 FTP 服务器,包括引入依赖、自定义配置和编写代码示例。原创 2024-05-22 12:49:23 · 379 阅读 · 0 评论 -
Springboot整合工作流引擎Activiti
days=3&mgr=10001&explain=生病&instanceId=341ee217-5df2-11eb-afe9-00d861e5b732。调用接口:/view/image?查看当前用户的任务列表(找出刚启动流程的实例id)原创 2023-11-10 17:30:00 · 122 阅读 · 0 评论 -
如何将本地jar文件打包到 springboot 执行jar文件中
无论选择Maven还是Gradle,这些步骤都将帮助您将本地JAR文件打包到Spring Boot执行的JAR文件中。确保在构建之前将所需的本地JAR文件复制到。来构建Spring Boot JAR文件,本地JAR文件将被包含在其中。来构建Spring Boot JAR文件,本地JAR文件将被包含在其中。如何将本地jar文件打包到 springboot 执行jar文件中。(或其他名称)的文件夹,用于存放本地的JAR文件。(或其他名称)的文件夹,用于存放本地的JAR文件。,和版本号为您的JAR文件的信息。原创 2023-11-10 13:13:44 · 177 阅读 · 0 评论 -
SpringBoot + Redis 打造排行榜功能
Redis的Sorted Set数据结构,它能够自动维护元素的顺序(按分数排序),这样你可以轻松地实现排行榜功能,用于其他需要按分数排序的功能也非常适合。原创 2023-11-09 13:45:00 · 355 阅读 · 0 评论 -
SpringBoot + Disruptor 实现特快高并发处理,支撑每秒 600 万订单无压力!
Disruptor 是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于 Disruptor 开发的系统单线程能支撑每秒 600 万订单,2010 年在 QCon 演讲后,获得了业界关注。Disruptor是一个开源的Java框架,它被设计用于在生产者—消费者(producer-consumer problem,简称PCP)问题上获得尽量高的吞吐量(TPS)和尽量低的延迟。原创 2023-11-09 13:30:00 · 78 阅读 · 0 评论 -
使用Spring WebSocket构建实时聊天室
Spring WebSocket是构建实时应用的有力工具,让开发者能够轻松实现双向通信。通过和@SendTo注解,您可以创建实时聊天室和其他实时通信应用,提供更出色的用户体验。无论您是构建在线客服系统还是多人在线游戏,Spring WebSocket都是您不可或缺的助手。希望本文能够帮助您更好地理解和应用这一技术。原创 2023-11-09 13:15:00 · 58 阅读 · 0 评论 -
Spring Boot中过滤器、拦截器和监听器的区别与示例
过滤器、拦截器和监听器是Spring Boot应用中的重要组件,用于处理HTTP请求和监听应用程序事件。了解它们的区别和适用场景将帮助您更好地构建和维护Spring Boot应用程序。原创 2023-11-09 08:49:31 · 49 阅读 · 0 评论 -
Springboot整合Hutool自定义注解实现数据脱敏
我们在项目中会处理敏感数据(如手机号、身份证号、姓名、地址等)时,通常需要对这些数据进行脱敏,以确保数据隐私和安全。我们本次使用Hutool库来轻松实现数据脱敏,如果项目中不让使用,可以自己防着hutool来写一些工具类。本次使用Springboot整合Hutool来自定义注解实现数据脱敏!数据脱敏(Data Masking),也称为数据遮蔽或数据隐藏,是一种数据保护技术,用于处理和存储敏感数据时,以减少或消除数据中的敏感信息,从而保护数据的隐私和安全。原创 2023-11-04 12:20:32 · 260 阅读 · 0 评论