自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 收藏
  • 关注

原创 Hazelcast同一个集群发布注意数据一致性与版本兼容性检查示例

Hazelcast是一个开源的、分布式内存数据网格(IMDG,In-Memory Data Grid)平台,它提供了一系列的分布式数据管理和计算服务。Hazelcast旨在解决大数据和高性能计算场景下的挑战,特别是在分布式系统中提供低延迟的数据访问和处理能力。

2024-07-05 19:22:32 658

原创 Maven依赖红名破案记:dependencyManagement的意外之旅

原来,它在多模块项目的父级pom.xml中扮演着“依赖总管”的角色,负责集中管理和统一控制所有子模块的依赖版本,确保项目内部版本秩序井然,避免因版本不一致引发的冲突。接着,我遍访了Maven官方仓库和阿里云仓库,查阅了相关文档,甚至还试图手动导入jar包,但均未能撼动那个“红名”依赖半分。在编程的世界里,有时最令人头疼的并非复杂算法,而是看似简单的依赖管理。这次,我就带大家回顾一下我在导入项目时遭遇的一场Maven依赖“红名”风波,以及从中收获的关于dependencyManagement的新认知。

2024-04-16 21:25:05 420

原创 等额本息还款法计算每月应还的固定金额

是指金融机构在向个人发放无抵押贷款时,根据借款人的信用状况所确定的贷款利息率。这类贷款不要求借款人提供实物资产作为担保,而是基于其个人信用记录、还款能力、职业稳定性、收入水平等因素来决定是否发放贷款以及贷款的具体利率。由于各银行和金融机构的风险评估标准与市场策略不同,个人信用贷款的利率会有所差异。在中国,个人信用贷款的年化利率可以从较低的3%多到较高的20%以上不等,具体利率取决于银行的政策、市场环境以及借款人的资质等级。

2024-01-04 18:03:02 974

原创 instanceof与多态性的对比,取款举例

通过 instanceof 判断每个账户对象是否是 SavingsAccount 或 CreditCardAccount 类型,然后进行相应的类型转换,并调用具体的 withdraw() 方法。虽然这样能够针对不同类型的账户执行不同的逻辑,但在面向对象设计原则中,更推荐使用,在某些场景下,仍然有用,例如当需要执行不同类型对象时。

2024-01-04 00:38:55 922

原创 Java中,字符串常量池利用享元模式的原理实现了字符串对象的高效管理和重用

当通过字面值(即使用双引号定义的字符串)创建字符串时,JVM首先会查询字符串常量池是否存在该字符串对象。如果不存在,则将新字符串对象放入池中,并返回其引用。:由于字符串常量池的存在,相同内容的字符串在内存中只有一份拷贝,这就避免了大量的重复对象的创建,从而节省了内存资源。在Java中,字符串常量池是一个存储已创建的字符串对象的内存区域,它利用了享元模式的思想来优化内存使用和提高性能。方法)只需要比较引用地址即可确定是否为同一字符串,这比每次都进行内容比较要快得多。

2024-01-03 15:22:13 1002

原创 主要的Java框架特点和适用场景

Spring FrameworkSpring BootSpring MVCHibernateMyBatisStruts2Apache DubboShiroEhcache

2024-01-02 16:31:02 413

原创 主要的数据库类型、特点及适用场景

关系型数据库(Relational Database Management System, RDBMS)文档型数据库(Document-Oriented Database)键值型数据库(Key-Value Store)列式数据库(Column-Family Database / Column-Oriented Database)图形数据库(Graph Database)时序数据库(Time Series Database, TSDB)

2024-01-02 16:26:35 804

原创 JVM中部分主要垃圾回收器的特点、使用的算法以及适用场景

(并行收集器,也称为吞吐量收集器Throughput Collector)

2024-01-02 16:22:27 551

原创 某个接口超时如何解决

如果接口涉及大量的数据库查询操作,且查询条件未建立合适的索引,可能导致查询效率极低,应针对性地优化数据库表结构和索引。:如果是非实时性要求很高的任务,可以考虑将部分耗时操作改为异步处理,返回一个处理任务ID,然后通过另一个接口查询结果。:对于确实需要较长时间处理的复杂请求,可以适当延长接口的超时时间限制,但更推荐优化处理速度而不是一味延长超时。:在接口中添加详细的日志记录,通过监控工具分析接口调用过程中的问题点,找出导致超时的具体原因。

2024-01-02 16:12:49 1621

原创 深入理解Java虚拟机(第3版)读书笔记

Java程序设计语言。Java类库API:提供各开发领域接口支持。来自商业机构和开源社区的第三方Java开发框架(Spring、MyBatis等)。

2023-12-18 09:13:39 162

原创 类加载的过程

类加载是Java虚拟机(JVM)在运行时加载字节码的过程。这个过程包括类的加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)和初始化(Initialization)五个阶段。需要注意的是,类加载过程中的类加载器、验证、准备和解析这几个阶段是交叉进行的,而不是严格按照顺序执行。而初始化阶段则必须等到前面四个阶段都完成后才能开始。

2023-12-16 15:22:22 68

原创 Java双亲委派机制

Java双亲委派机制是指Java类加载器在加载类的过程中,先委托给其父加载器试图加载这个类,只有当父加载器不能加载这个类时,当前加载器才会尝试自己加载。这是Java标准类加载器体系结构的核心概念,目的是为了避免类加载器重复加载同一个类。在这个方法里,可以实现自己的类加载逻辑,而不是遵循传统的双亲委派机制。不过,这需要谨慎对待,因为它可能会破坏系统的正常运行。如果希望打破双亲委派机制,可以通过实现自定义类加载器并覆盖其父类 (

2023-12-16 15:19:22 85

原创 使用MetaQ时如何去保证一个消息的幂等性?

阿里集团开发了一系列针对企业级应用场景设计的中间件产品,这些中间件产品涵盖了多种服务和功能,旨在帮助企业解决分布式系统架构中的各种挑战,提升系统稳定性、可靠性和性能。

2023-12-16 15:14:30 118

原创 B+树和索引

是一种平衡多路搜索树(Balanced Multiway Search Tree),常用于数据库和文件系统的索引结构。相比于其他的树型数据结构,如二叉搜索树和B树,B+树在大数据量下的性能表现更优秀。

2023-12-16 15:05:44 666

原创 Mysql的聚簇索引(聚集索引)和非聚簇索引的区别

聚簇索引和非聚簇索引各有优劣,选择合适的索引策略取决于具体的查询需求和数据模型。通常来说,频繁用于查询条件、排序或分组的列适合创建索引,尤其是那些返回结果集较小的选择性高的列。同时,也要考虑到索引维护的成本,特别是在高并发写入的情况下。

2023-12-16 15:01:50 243

原创 Spring Boot 自动装配的原理

总之,Spring Boot 的自动装配通过检测 Classpath 中的依赖、使用条件装配注解以及考虑外部配置来动态生成应用程序上下文中的 Beans。同时,也保持了一定的灵活性,允许开发者根据需要覆盖默认配置或添加自定义配置。这个注解的作用是告诉 Spring Boot 使用自动配置来初始化应用程序上下文,以便快速搭建起一个可运行的应用。Spring Boot 的自动装配原理与传统 Spring 应用程序相比具有更高的自动化程度和便利性。主要是围绕着一个核心注解。

2023-12-16 14:58:19 143

原创 Linux与常用的Linux命令

Linux 是一种免费使用和自由传播的类 UNIX 操作系统。它的内核最初是由芬兰计算机科学家林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)在 1991 年发布,并持续发展至今。Linux 的设计灵感来源于 MINIX 和 Unix 系统,它是一个基于 POSIX 标准的多用户、多任务、支持多线程和多 CPU 的操作系统。Linux 支持各种硬件架构,包括 32 位和 64 位处理器,并且能够运行许多重要的 Unix 工具、应用程序以及网络协议。

2023-12-16 14:51:50 122

原创 索引与策略

虽然索引可以提高查询性能,但过多的索引会占用更多存储空间,并且在插入、更新和删除数据时需要维护更多的索引,从而降低写操作的性能。:如果列包含大量的重复值,那么对于这类列建立索引可能会效率较低,因为每个不同的值都需要额外的存储空间来保存指向多个数据行的指针。:如果索引包含了查询所需的所有列,那么数据库可以直接从索引中获取结果而无需访问表数据,这被称为“覆盖索引”。:数据在物理上按照索引的顺序存储,对于按主键排序的查询有很好的性能。:为一个或多个列创建的索引,确保这些列的值在表中是唯一的。

2023-12-12 16:45:58 58

原创 限流策略与实施步骤

在高并发场景下,如果没有进行适当的限流,可能会导致服务器资源耗尽,进而影响系统的稳定性和性能。限流策略的选择取决于具体的应用场景和需求。通常情况下,可以根据系统的负载情况、业务特点以及对服务质量的要求,综合运用多种限流技术。:在上线前进行全面的测试,包括压力测试、性能测试等,以确保限流功能正常工作且不会引入新的问题。:在系统负载较高时,可以主动降低部分非核心功能的服务质量,例如限制响应速度、返回简化结果等,从而保证核心功能的正常运行。:部署限流功能后,需要监控系统的运行状态和性能指标,以确保限流的效果。

2023-12-12 16:40:18 77

原创 堆的数据什么时候消失

值得注意的是,由于Java的垃圾回收是自动进行的,因此程序员不需要手动去管理对象的创建和销毁。:一旦对象变为不可达并且通过垃圾回收器进行回收,那么它的生命周期也就结束了。:当一个对象不再有任何可达的引用时,即从任何其他可达的对象或变量都无法直接或间接访问到它,那么这个对象就称为不可达对象。:Java虚拟机(JVM)的垃圾收集器负责追踪和识别这些不可达对象,并且回收它们所占用的内存空间。在Java中,堆内存中的数据(也就是对象)会在没有引用指向它们的时候被垃圾回收。

2023-12-12 16:29:06 81

原创 Java基础类型和引用类型

Java中存在两种类型:基本类型和引用类型。

2023-12-12 16:26:53 47

原创 Spring和Spring Boot和Spring Cloud

这是一个通用的组件扫描标记,用于将类标记为Spring Bean。这使得Spring能够自动检测和管理这些类。通常与配合使用来指定需要扫描的包。:这是@Component的一个特殊变体,用于标记业务层服务类。它没有特殊的语义,但是通过使用@Service而不是@Component,可以更好地表达代码意图,增强代码的可读性。:这也是@Component的一个特殊变体,用于标记数据访问层(DAO)类或组件。

2023-12-12 16:21:28 43

原创 JVM垃圾回收

新创建的对象首先放在年轻代中的Eden区,经过几次Minor GC(年轻代垃圾回收)后仍然存活的对象会被晋升到老年代。JVM(Java虚拟机)垃圾回收是一种自动内存管理机制,它负责跟踪和释放不再使用的对象所占用的内存。:大多数垃圾都在Java堆内存中产生。:将内存分为两个相等的部分,每次只使用一半,在进行垃圾回收时,把活动对象复制到另一半,然后清空另一半。:基于对不同年龄段对象的行为假设,针对年轻代和老年代采取不同的垃圾回收策略。:这是一种基本的垃圾回收算法,先标记出所有活动对象,然后清除未标记的对象。

2023-12-12 16:01:57 32

原创 Java_题目_打乱一维数组并添加至二维数组

Java_题目_打乱一维数组并添加至二维数组

2022-12-27 17:34:53 451

原创 Java_笔记_内部类

Java_笔记_内部类

2022-12-19 00:28:50 331

原创 Java_笔记_抽象类_接口

Java_笔记_抽象类_接口

2022-12-09 18:01:44 1189

原创 Java_笔记_多态_包_final_权限修饰符_代码块

Java_笔记_多态_包_final_权限修饰符_代码块

2022-12-08 18:45:30 807

原创 Windows_笔记_命令行窗口的常用命令

Windows_笔记_命令行窗口的常用命令

2022-12-08 13:49:03 69

原创 Java_笔记_继承_虚方法表_成员变量方法构造_thisSuper

Java_笔记_继承_虚方法表_成员变量方法构造_thisSuper

2022-12-05 17:17:00 1755 3

原创 Java_笔记_static_静态变量方法工具类_main方法

Java_笔记_static_静态变量方法工具类_main方法

2022-12-04 16:07:59 381

原创 Java_题目_学生管理系统_注册登录忘记密码

Java_题目_学生管理系统_注册登录忘记密码

2022-12-03 13:26:43 863

原创 Java_题目_学生管理系统_业务分析并搭建主菜单_查询添加删除修改

Java_题目_学生管理系统_业务分析并搭建主菜单_查询添加删除修改

2022-11-21 17:42:33 441

原创 Java_题目_添加手机对象并返回要求的数据

Java_题目_添加手机对象并返回要求的数据

2022-11-21 14:23:03 223

原创 Java_题目_添加用户对象并判断是否存在

Java_题目_添加用户对象并判断是否存在

2022-11-20 22:24:11 989

原创 Java_题目_添加学生对象并遍历

Java_题目_添加学生对象并遍历

2022-11-20 21:41:01 1194

原创 Java_题目_集合的遍历方式_字符串/数字/字符

Java_题目_集合的遍历方式_字符串/数字/字符

2022-11-20 20:19:20 468

原创 Java_笔记_集合_ArrayList

Java_笔记_集合_ArrayList

2022-11-20 19:52:16 56

原创 Java_题目_求字符串最后一个单词的长度

Java_题目_求字符串最后一个单词的长度

2022-11-20 16:40:25 107

原创 Java_题目_两个字符串求乘积

Java_题目_两个字符串求乘积

2022-11-20 16:09:24 998

原创 Java_题目_生成验证码(数字出现在任意位置)

Java_题目_生成验证码(数字出现在任意位置)

2022-11-20 15:25:18 537 1

空空如也

空空如也

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

TA关注的人

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