- 博客(51)
- 资源 (1)
- 收藏
- 关注
原创 try-catch性能详解!
总的来说,try-catch结构在没有异常发生时对性能的影响通常是可以忽略的,然而,一旦发生异常,其开销可能会显著增加。在实际应用中,开发人员需要在性能和代码的健壮性之间进行权衡:异常处理提供了一种优雅的方式来处理运行时错误,但也可能带来性能开销。在大多数情况下,代码的正确性和可维护性比微小的性能差异更为重要,然而,在一些对性能要求极高的场合,如游戏引擎、实时系统或大规模数据处理系统,开发人员可能需要仔细评估异常处理对性能的影响,并根据具体情况采取相应的优化措施。三两肉。
2024-11-08 10:48:03
996
原创 RocketMQ消息处理详解!
本文分析了 RocketMQ 同步发送、异步发送和单向发送三种方式的原理、优缺点以及使用场景,并且分析了每种方式涉及到的核心源码。通过上文的介绍可以知道同步发送方式可以保证消息发送时不丢,但是性能相对其他两种方式差一些。三两肉。
2024-10-24 14:15:44
1020
原创 内存溢出与内存泄漏详解!
本文,我们分析了Java的内存溢出和内存泄漏并且应示例展示了它们导致的原因,应该说它们是比较常见的内存管理问题,如果在生产环境出现也是比较头疼的问题。所以在日常开发中,我们一定要注意自己的代码风格和代码质量,尽量避免这些问题的发生。三两肉猿Java。
2024-10-23 15:34:52
1217
原创 Redis内存淘汰机制!
Redis 的内存淘汰机制是其高性能和高可用性的关键保障。通过灵活选择和配置内存淘汰策略,用户可以有效管理内存资源,确保系统的稳定运行。不同的内存淘汰策略适用于不同的应用场景,用户需要根据具体需求进行选择和调优。同时,结合监控和性能测试,用户可以不断优化内存淘汰策略,提升 Redis 的性能和可靠性三两肉猿Java。
2024-10-16 18:15:08
1138
原创 Cookie与Session的区别(特别详细)
Cookie是一种被客户端(通常是浏览器)存储的小型数据文件,服务器发送给客户端后,客户端会在后续向同一服务器的请求中携带这些Cookie数据。这允许服务器识别连续的请求来自同一客户端用户,从而在某种程度上维护状态。Cookie和Session在Web开发中的区别主要体现在数据存储位置、安全性、存储容量和使用场景等方面。选择使用哪种技术或者如何结合使用它们,往往取决于具体项目的需求、安全考虑和性能要求。了解两者的特性,能帮助开发者设计更安全和高效的Web应用程序。三两肉猿Java。
2024-10-16 16:55:35
994
原创 Linux系统各版本区别,如何选择?
这篇文章,我们分析了 Linux 几种常见的发行版以及它们的优缺点。在实际生产中如何选择,可以参考上面的意见,最终还是需要根据公司或者团队的实际情况来决定。三两肉。
2024-10-16 16:43:55
1355
原创 分布式缓存详解!
分布式缓存是指分布在多个服务器上的缓存。与本地缓存不同,分布式缓存通常部署在独立的应用进程中,并与应用进程部署在不同的机器上。因此,数据读写操作需要通过网络来完成。分布式缓存的主要特点包括:1、可扩展性:当应用程序需要处理大量数据或高并发请求时,可以通过增加服务器节点来扩展分布式缓存的容量和提高性能。2、数据一致性:分布式缓存的数据一致性可以通过各种技术实现,如缓存同步、分布式锁等。3、独立部署:分布式缓存通常部署在独立的应用进程中,与应用程序分离,多个应用可以直接共享缓存。
2024-10-15 18:14:05
1675
原创 布隆过滤器原理及优缺点详解!
布隆过滤器原理及优缺点详解!,布隆过滤器是一种简单但非常有效的数据结构,特别适用于大规模数据的快速查找和去重等场景。尽管它有一定的误判率,但在很多应用中,这一点点误判是可以接受的。三两肉猿Java。
2024-10-14 11:36:30
1183
原创 JDBC存在什么问题?MyBatis是如何解决的?
本文,我们分析了 JDBC的核心组件,使用存在的问题以及 Mybatis如何解决这些问题,对于一些出道比较早或者接触过 JDBC老项目的Java程序员来说,对 JDBC的使用可能还有体感。而现在大部分项目,Hibernate和 Mybatis这些对象关系映射(ORM)框架对 JDBC做了很好的抽象和封装,提供了更加面向对象的数据库操作方式。因此,开发者不需要直接处理 JDBC的API,而是直接面向 ORM。
2024-10-11 10:17:11
811
原创 优秀文章分享:削峰与限流:秒杀场景下的高并发写请求解决方案
削峰:削峰是指通过技术手段将瞬时的高流量分散到一段时间内,从而减小系统的峰值压力。削峰的主要目的是保护系统在高并发请求下不被压垮,确保服务的稳定性。限流:限流是指通过控制请求速率,防止瞬间爆发的流量将系统击垮。限流的主要目的是控制资源的使用,避免系统过载,确保用户请求的合理分配。
2024-10-08 17:43:49
1015
原创 代理服务器详解(proxy server)
代理服务器(Proxy Server)是一个中间服务器,位于客户端和目标服务器之间。客户端请求:客户端(如浏览器)向代理服务器发送请求,例如请求访问一个网站。请求转发:代理服务器接收到客户端的请求后,会将该请求转发给目标服务器。目标服务器响应:目标服务器处理请求并将响应数据发送回代理服务器。响应转发:代理服务器接收到目标服务器的响应后,将其转发回客户端。代理服务器在提供隐私保护、内容过滤、性能优化和负载均衡等方面具有显著优势,但也存在单点故障、性能瓶颈、配置复杂性和隐私安全风险等缺点。
2024-09-03 12:30:40
6173
原创 乐观锁、悲观锁详解
悲观锁(Pessimistic Lock)是一种假设冲突会频繁发生的锁机制。每次数据访问时,都会先加锁,直到操作完成后才释放锁,这样可以确保在锁持有期间,其他线程无法访问这段数据,从而避免了并发冲突。乐观锁(Optimistic Lock)是一种假设冲突不会频繁发生的锁机制。每次数据访问时,不会加锁,而是在更新数据时检查是否有其他线程修改过数据。如果检测到冲突(数据被其他线程修改过),则重试操作或报错。假设前提:悲观锁假设冲突会频繁发生,需要加锁保护。
2024-09-03 11:36:04
1190
原创 Java Regex正则表达式详解
正则表达式(regular expression,常简写为 regex、regexp 或 RE),又称规律表达式、正规表示式、正规表示法、规则运算式、常规表示法,是计算机科学概念,用简单字串来描述、匹配文中全部符合指定格式的字串,現在很多文本编辑器都支援用正则表达式搜寻、取代符合指定格式的字串。Java Regex是一种用于匹配字符串的模式,它可以用来验证、查找、替换或拆分字符串。Pattern Class:表示正则表达式的编译表示。Matcher Class:用于执行匹配操作的引擎。
2024-08-19 17:33:18
1629
原创 CORS 跨域原理解析
CORS,全称为“跨域资源共享”(Cross-Origin Resource Sharing),是一种机制,它使用额外的 HTTP 头来告诉浏览器允许一个网页从另一个域(不同于该网页所在的域)请求资源。这样可以在服务器和客户端之间进行安全的跨域通信。预检请求(Preflight Request):对于某些类型的请求(如使用 HTTP 方法PUT、DELETE,或者请求带有非简单头部),浏览器会首先发送一个OPTIONS请求,这个请求称为“预检请求”。
2024-08-19 15:13:57
1381
原创 扫盲系列:云服务中IaaS, PaaS,SaaS,FaaS的区别!
IaaS,全称 Infrastructure as a Service(基础设施即服务),它是将计算基础设施作为按需服务提供的方法。用户购买服务器、软件数据中心空间或网络设备,并通过完全外包的按需服务模式租用这些资源。PaaS,全称 Platform as a Service(平台即服务),它是一种云交付模型,适用于由第三方管理的服务组成的应用程序。它提供应用程序的弹性扩展,使开发人员可以通过 Internet 构建应用程序和服务,部署模型包括公共、私有和混合
2024-08-16 17:55:40
1954
原创 【开发过程遇到的问题】MySQL插入时间(23点59分59秒)入库后变为第二天0点0分0秒的解决方案(LocalDateTime方式)
【开发过程遇到的问题】MySQL插入时间(23点59分59秒)入库后变为第二天0点0分0秒的解决方案(LocalDateTime方式)数据库入库的时候会有500毫秒的进位,毫秒级有50% 的概率会大于500,所以会有出现入库之后,变成第二天的00:00:00.定义LocalTime做出如下定义。
2024-07-30 11:58:27
1430
原创 常用的SQL聚合函数汇总
常用的SQL聚合函数汇总,COUNT、SUM、AVG、MIN、MAX、GROUP BY 、HAVING、STDDEV、VARIANG、CORR、COVAR、COUNT、GROUP_CONCAT
2024-07-03 14:39:33
1999
原创 如何使用缓存提升SpringBoot性能(EhCache和Redis方式)
缓存是指将文件或数据的副本存储在缓存或临时存储位置中,以便未来对该数据的请求可以更快地提供服务。当从存储中检索数据时,会在缓存中创建该数据的副本。如果再次需要该数据,可以从缓存中比从主存储器中更快地检索到该数据,主存储器可能涉及复杂的计算或较慢的访问速度。如何使用缓存提升SpringBoot性能(EhCache和Redis方式)
2024-07-03 14:15:11
2201
1
原创 源码解读:如何正确使用并区分@Resource和@Autowired注解?
源码解读:如何正确使用并区分@Resource和@Autowired注解?
2024-07-02 15:21:56
1244
原创 干货分享:Spring中经常使用的工具类(提示开发效率)
干货分享:Spring中经常使用的工具类(提示开发效率)资源工具类、对象工具类、数组转换、Stream流操作、系统属性解析、集合工具类、AOP代理工具BeanFactory工具类、注解工具类、Bean工具类、数据验证工具类、XML解析工具类、HTML转换工具类,WEB相关工具类
2024-07-01 11:34:27
1462
原创 SpringBooot常用的内置工具类
SpringBoot常用的内置工具类,获取进程,获取运行主目录,获取Java版本,应用临时目录,系统属性/环境变量访问,实例化对象,资源加载,获取basePackages
2024-07-01 10:21:50
1399
原创 Git中fetch与pull 的区别
fetch和pull是Git中用于从远程仓库获取数据的两个重要命令。它们在处理方式和结果上有所不同,因此在实际开发中需要根据具体需求选择使用哪个命令。通过深入理解这两个命令的区别和应用场景,你可以更好地利用Git进行版本控制和管理。
2024-06-28 11:46:34
2010
原创 Git中rebase与merge的区别
在Git中,rebase和merge都用于合并不同分支的修改,但它们的实现方式和结果有所不同。merge:合并操作。它会取出一个公共的祖先节点,然后尝试将两个分支从该节点开始发生的所有变化都合并到一起,最终生成一个新的节点(合并提交)。这个新节点会包含两个分支的所有修改。rebase:变基操作。它会先将当前分支上的所有提交临时保存,然后将当前分支更新到目标分支的最新状态,接着将之前保存的提交逐个应用到目标分支的最新状态上,形成一个新的线性提交历史。
2024-06-28 11:21:52
1975
原创 干货系列:实战编码规范,规范代码的同时提高代码可读性,提高程序健壮性。
Java实战编码规范,规范代码的同时提高代码可读性,提高程序健壮性,写出来的代码很干净。
2024-06-26 14:56:22
1778
原创 BigDecimal类型做除法,计算百分率,保留两位小数(不过时的方法)
BigDecimal类型做除法,计算百分率,保留两位小数(不过时的方法)
2024-06-26 14:12:40
1573
原创 Mybatis QueryWrapper如何查询某个字段不为null并且不为空字符串
Mybatis QueryWrapper如何查询某个字段不为null并且不为空字符串
2024-06-25 14:55:15
2965
1
原创 Activiti7没有自动建表,每次启动报表不存在【Error while closing command context】
Error while closing command context Activiti7没有自动建表,每次启动报表不存在
2023-09-13 16:34:06
9106
2
原创 如何深入理解缓存击穿、缓存穿透、缓存雪崩的区别,以及如何预防这类情况的出现
如何深入理解缓存击穿、缓存穿透、缓存雪崩的区别,以及如何预防这类情况的出现
2023-09-12 16:58:33
8228
原创 springboot3+jwt+security的整合使用搭建简易Demo
springboot3+jwt+security的整合使用搭建简易Demo
2023-09-11 18:57:05
8800
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人