自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(212)
  • 资源 (4)
  • 收藏
  • 关注

原创 达梦数据库学习笔记

达梦数据库在架构设计、性能优化、安全性和可靠性方面具备优势,适合大型企业级应用和高并发、高数据量的场景。MySQL以其易用性、灵活性和广泛应用在互联网和中小企业中的优势,适合中小型应用和快速开发部署的场景。达梦数据库管理控制台(DM Management Console)是一个强大的图形化管理工具,通过该工具,您可以方便地进行数据库的基本配置、管理和监控。通过学习和使用该工具,可以提高您对达梦数据库的管理效率和操作能力。

2024-05-22 18:37:16 620

原创 MySQL InnoDB 引擎的多版本并发控制MVCC

MySQL InnoDB 引擎的多版本并发控制(MVCC,Multi-Version Concurrency Control)是一种实现数据库并发控制的方法,能够在保证高并发性的同时提高性能。MVCC 通过维护数据的多个版本,使得读操作不会阻塞写操作,从而提高系统的整体效率。

2024-05-21 18:44:56 298

原创 贪心算法简单介绍

贪心算法是一种在每一步选择中都采取当前状态下最优或最优近似的选择,以期望最终得到全局最优解的算法。贪心算法并不总能得到全局最优解,但在某些问题上,它可以得到全局最优解,并且比动态规划等其他方法更为简单和高效。

2024-05-21 00:47:43 297

原创 金融科技微服务架构草图

本文将探讨如何通过Spring Cloud微服务架构构建高效的金融科技系统,并展示一个典型的金融科技微服务架构设计。

2024-05-21 00:34:19 1012

原创 微服务架构(如SpringCloud )中业务中台概念讲解

在微服务架构特别是Spring Cloud技术领域中,业务中台(Business Middle Platform, BMP)是一个关键概念,旨在通过整合和复用企业的核心业务能力,提高业务响应速度和敏捷性。

2024-05-20 23:17:34 483

原创 动态规划常见算法题讲解

动态规划常见算法题讲解

2024-05-19 22:05:56 1155

原创 动态规划算法简单介绍

动态规划是一种强大的算法技术,适用于解决具有重叠子问题和最优子结构性质的问题。通过定义子问题、找到递推关系、确定边界条件和计算顺序,可以有效地解决许多复杂问题。

2024-05-19 00:03:09 430

原创 回溯算法探讨

回溯算法是一种用于寻找所有(或部分)解的算法,特别适用于需要探索所有可能解的组合问题。它通过系统的试错来构建解,并在发现某一步不满足条件时回退到上一步继续尝试其他可能性。回溯算法常用于解决排列、组合、子集生成等问题。

2024-05-18 19:02:53 655

原创 二叉树遍历方法详解:层序遍历、前序遍历、中序遍历和后序遍历

首先,我们定义一个二叉树节点类TreeNode,用于表示二叉树中的每个节点。该类包含节点值、左子节点和右子节点的引用。int val;@Override。

2024-05-17 21:51:18 374

原创 缓存淘汰(LRU)算法

LRU缓存算法通过维护一个记录访问历史的列表来决定哪个数据项淘汰,使得长时间未被访问的数据最先被移除,这样可以有效地利用有限的缓存空间,确保缓存的高效使用。

2024-05-14 00:01:18 447 1

原创 ArrayList 中几个关键部分的源码解析

成为一个非常灵活的数据结构,能够有效地管理内存,同时提供快速的索引访问能力。但它也说明了为什么在添加元素时可能会发生昂贵的数组复制操作,特别是当数组大小需要频繁调整时。扩容通常增加大约 50% 的容量,但具体的增加量取决于需要的最小容量。时,它首先检查数组是否足够大,如果不够大,它需要进行扩容。是如何在运行时根据需要动态调整其存储容量的。的核心是一个动态数组,实际上是一个可调整大小的数组。这段代码定义了数组的默认初始容量,并声明了一个对象数组。方法来确保数组有足够的容量。方法完成的,该方法再调用。

2024-05-12 18:53:14 238

原创 Java NIO&AIO

Java NIO(New Input/Output)和 AIO(Asynchronous Input/Output)都是Java平台上处理非阻塞I/O的技术,但它们在处理I/O操作的方式和实现机制上有着显著的差异。

2024-05-11 18:23:59 938

原创 Java EE/Jakarta EE范畴一览

Servlet API 提供了一种强大的方式来创建动态 Web 应用程序,通过接收、处理 HTTP 请求和生成响应。它是 Java Web 开发的基石,其他很多 Java Web 技术和框架(如 Spring MVC、JSF)都是建立在 Servlet 的基础之上。允许在HTML页面中嵌入Java代码,用于动态生成Web内容。JavaServer Pages (JSP) 是一个帮助开发者创建动态生成的web页面的技术,它允许开发者将Java代码嵌入到HTML页面中。

2024-05-07 21:42:27 1056

原创 Spring框架的扩展点

实现自定义继承:这个类提供了接口的默认实现,你可以覆盖必要的方法来实现自定义逻辑。重写方法:这是最关键的方法,用于将输入的字符串转换成相应的对象。重写方法:这个方法应返回一个可以表示内部属性值的字符串,通常用于UI显示或调试。在Spring配置中注册自定义可以通过几种方式实现,最常见的是在配置类中使用@BeanMap<Class<?>, Class<?通过上述方式,当Spring框架遇到需要将字符串转换为类型的属性时,会使用你定义的来进行转换。

2024-05-05 23:03:58 811

原创 Java 中用于线程同步类CountDownLatch和CyclicBarrier的区别

和都是 Java 中用于线程同步的工具类,它们虽然在某些方面类似,但在用途和工作方式上有着明显的区别。

2024-05-02 21:33:37 427 1

原创 JVM对象锁的升级过程

在Java中,锁升级是一个动态过程,JVM根据运行时的线程竞争情况自动调整锁的状态。这个过程涵盖从偏向锁到轻量级锁,最后可能升级到重量级锁。下面详细解释每个步骤以及它们之间的转换机制。

2024-05-01 23:15:51 889 1

原创 一篇文章学会正则表达式

正则表达式(Regular Expression,简称Regex)是一种用于匹配字符串中字符组合的模式。它们由一系列字符和特殊符号组成,用来定义一种搜索模式。正则表达式广泛应用于文本搜索、文本替换、数据验证和复杂的文本操作中。它们在各种编程语言和工具中都有实现,是处理文本数据不可或缺的工具。首先,你需要确定文本中日期的格式。YYYY-MM-DD(如 2024-05-01)DD/MM/YYYY(如 01/05/2024)MM-DD-YYYY(如 05-01-2024)(如 May 01, 2024)

2024-05-01 16:33:03 861

原创 Hadoop生态系统的核心组件探索

理解大数据和Hadoop的基本概念当我们谈论“大数据”时,我们指的是那些因其体积、速度或多样性而难以使用传统数据处理软件有效管理的数据集。大数据可以来自多种来源,如社交媒体、传感器、视频监控、交易记录等,通常包含了TB(太字节)甚至PB(拍字节)级别的数据。大数据的特征大数据通常被描述为具有以下四个“V”特征:体积(Volume):数据的规模非常大,传统数据库难以存储和处理。 速度(Velocity):数据以极快的速度生成,需要快速处理和分析。 多样性(Variety):数据来自多种来源

2024-04-30 23:33:40 911 3

原创 Docker笔记

构建自定义 Docker 镜像通常是通过编写一个叫做Dockerfile的配置文件来完成的。Dockerfile定义了从基础镜像开始,如何一步步构建新镜像所需的所有命令和步骤。

2024-04-30 00:00:42 982

原创 微服务框架ServiceComb

Service Center是ServiceComb生态系统中的一个服务注册与发现中心,它基于Apache ServiceComb提供可靠的服务管理。Service Center存储有关每个服务实例的详细信息,包括其状态、位置和可用性信息。服务消费者可以使用这些信息来找到并调用这些服务。如果你已经集成了ServiceComb和Spring Boot,可以使用Spring MVC的注解来创建RESTful API。在这个例子中,和是Spring MVC提供的注解,用于定义一个REST服务端点。

2024-04-26 20:36:58 989

原创 软件架构C4视图

C4模型(Container, Component, Code, Context)是一种用于软件系统架构表达的方法,由软件架构师Simon Brown创立。C4模型主要目标是提供一种直观、易于理解的方法来描述软件系统的结构。它比传统的UML或4+1视图模型更专注于软件架构的通信与文档化,尤其适用于面向服务和微服务架构的描述。系统上下文视图(Context Diagram),作为C4模型中的最高层视图,是用来描述软件系统与其外部环境之间的交互和关系的工具。

2024-04-24 15:26:34 904

原创 软件架构4+1视图

用例(Use Case):用例是一系列交互动作的集合,描述了系统用户(或其他系统)如何使用系统完成特定的业务目标。每个用例代表一个功能性需求。场景(Scenario):场景是用例的一个实例,描述了在特定条件下的一条具体的事件流。场景包括正常流程和可能的异常或边界条件。场景视图是连接业务需求与技术实现的桥梁,它使得架构师可以从实际操作的角度理解系统的行为。通过在设计阶段就使用场景进行验证,可以大幅减少开发过程中的返工,提高开发效率,确保最终产品质量。

2024-04-24 14:44:18 761

原创 十二因素应用方法论

十二因素应用方法论是一套针对软件开发尤其是SaaS应用的方法论,专为提高软件应用的可扩展性、可部署性、维护性和可移植性而设计。这一方法论由Heroku的工程师在2011年提出,主要面向在现代云平台上运行的应用。

2024-04-23 23:45:00 610

原创 Kubernetes学习总结

通过 Deployment,你可以管理应用的部署、扩展和更新。而通过 Service,则可以定义和控制对应用的访问方式。这两者是 Kubernetes 管理应用不可或缺的工具,理解并熟练使用它们对于任何 Kubernetes 用户都是非常重要的。部署和管理应用通过 Deployment,你可以管理应用的部署、扩展和更新。而通过 Service,则可以定义和控制对应用的访问方式。这两者是 Kubernetes 管理应用不可或缺的工具,理解并熟练使用它们对于任何 Kubernetes 用户都是非常重要的。

2024-04-23 23:07:14 795

原创 常见的访问控制模型

这些模型可以根据不同的需求和安全政策单独使用,或者组合使用以提供更全面的安全策略。访问控制模型的选择和实施是确保信息安全和合规性的关键部分。访问控制模型是一种在计算机安全管理中广泛使用的框架,用于定义系统如何限制用户或程序对系统资源的访问。

2024-04-23 22:07:32 243

原创 分布式共识算法:Paxos、Raft、Zab

Paxos 是一个分布式系统共识算法,由 Leslie Lamport 在1990年代提出。它被设计用来处理分布式系统中的一致性问题,确保在一个包含多个节点的网络中,即使部分节点发生故障或者网络出现问题,系统仍能达成一致和正确的决定。Paxos 主要用于日志复制或系统状态的一致性维护,是构建可靠分布式系统的基础算法之一。

2024-04-22 16:25:02 1616 2

原创 架构设计领域的一些总结

设计原则是引导软件开发的核心思想,它们帮助开发者编写高质量、易于维护和扩展的代码。以下是一些关键的设计原则,包括SOLID、DRY和KISS,这些都是每个软件工程师应该掌握的。

2024-04-21 23:56:12 643

原创 MySQL 中的数据文件配置文件

在 MySQL 中,根据使用的存储引擎,数据文件格式可以有很大的不同。这些不同的格式有助于优化数据库的性能、可靠性、数据恢复和维护。下面详细讲解常见的 MySQL 数据文件格式,包括它们的功能、使用情况和存储细节。

2024-04-20 20:44:05 1032

原创 MySQL性能优化:EXPLAIN简单介绍

EXPLAIN是 MySQL 中的一个命令,用于提供一个 SQL 查询语句(如 SELECT, INSERT, UPDATE, DELETE)的执行计划。执行计划是由 MySQL 查询优化器生成的,它描述了 MySQL 如何执行特定查询,包括它如何访问表的数据,使用哪些索引,以及如何组合行。

2024-04-19 12:31:34 933

原创 MySQL 中 InnoDB 存储引擎使用的 B+树底层数据结构

内部节点:内部节点只包含键(keys)和到其子节点的指针(不包括数据项本身)。内部节点的主要功能是分派,即根据搜索条件引导查询到正确的叶子节点。叶子节点:叶子节点包含所有数据值以及相应的键。在 B+树中,数据仅存储在叶子节点中,并且叶子节点通常是双向链接的,这支持快速的顺序访问。介绍 InnoDB 中的页(通常大小为 16KB)如何用于存储 B+树的节点。InnoDB 存储引擎中,数据是以页(Page)为单位组织的,页是基本的磁盘I/O操作单位。

2024-04-18 21:37:34 1129

原创 使用AWK进行文本处理

在awk中,数组和函数是两个非常强大的特性,它们可以极大地增强脚本的功能和灵活性。这里我将详细介绍如何在awk中使用数组和定义及调用自定义函数。awk允许你定义自己的函数,这可以帮助重用代码、清理脚本并使其更易于维护。示例:编写一个函数计算并返回平均值。BEGIN {sum = 0n = 0sum += $1n++END {解释定义了一个计算平均值的函数。在脚本的END部分调用average()函数计算平均值并打印。

2024-04-17 11:54:56 833

原创 Bash脚本快速上手

Bash脚本的编写相对简单,但强大的功能使其成为Linux和Unix系统中自动化任务的重要工具。通过合理的脚本结构和执行方式,你可以大大提高工作效率和系统的管理效率。sed和awk在文本处理方面非常强大,适用于从简单的文本替换到复杂的数据重组和报告生成。掌握这两个工具将大大提升你处理和分析文本数据的能力,特别是在处理日志文件、配置文件或其他结构化文本时。在 Bash 脚本中,函数是一种将命令组合在一起以执行特定任务的方式。函数可以简化脚本,避免重复代码,并使脚本更容易维护。

2024-04-17 11:10:05 1061

原创 探讨数据库的事务隔离级别

通过这些具体的场景,我们可以看到在不同隔离级别下,数据库如何处理并发事务所带来的问题。低隔离级别(如读未提交)可能导致数据不一致的风险,但执行效率高;高隔离级别(如序列化)虽然提供了很高的数据一致性保证,但可能会显著降低系统的并发性能。选择合适的隔离级别通常需要在数据的正确性和系统性能之间做出权衡。

2024-04-16 18:56:28 757

原创 JVM(Java虚拟机)内存管理基础理论

Java虚拟机(JVM)在运行Java程序时组织内存的方式是通过设定几个特定的运行时数据区域来实现的。这些区域有各自独特的目的和生命周期,合理的管理和优化这些区域是提高Java应用性能的关键。

2024-04-15 16:21:00 1413

原创 探讨消息队列如何保证幂等性

虽然幂等性设计在某些情况下可能会带来设计上的挑战,但其带来的系统稳定性和可靠性的优势是显而易见的。在分布式环境和不稳定的网络条件下,通过幂等性设计,系统可以更健壮地处理外部请求,减少潜在的错误和数据不一致问题。在设计系统时,应根据实际的业务需求和操作特性权衡是否实施幂等性设计。基于消息内容的幂等性是一种有效的策略,尤其适用于那些可以从消息本身提取唯一性标识的系统。设计时需要仔细考虑如何从业务逻辑和消息内容中提取合适的字段来生成键值,并处理可能的状态维护问题。

2024-04-15 07:00:00 539

原创 如何进行JVM的调优

进行Java虚拟机(JVM)的调优是一项关键的工作,旨在优化JVM的性能,提高应用程序的响应速度和吞吐量,并确保系统的稳定运行。JVM调优通常涉及到调整堆大小、选择合适的垃圾收集器、监控运行时性能以及分析内存泄漏等方面。

2024-04-15 02:45:00 1459

原创 列举和介绍Mysql中各种日志

Undo 日志不仅是事务性数据库系统中事务完整性的保证,也是支持高并发操作的关键技术。合理的管理和配置 Undo 日志对于维护数据库的性能和稳定性至关重要。了解 Undo 日志的工作原理可以帮助数据库管理员和开发人员更好地设计和维护他们的数据库系统。确认二进制日志: 确认二进制日志已经被启用并且包含了误操作的记录。你可以通过检查my.cnf或my.ini配置文件中的log_bin配置项来确认是否启用了二进制日志。确定恢复点: 确定需要回滚到的时间点或者具体的日志文件和位置。

2024-04-14 21:40:33 858

原创 分布式事务怎么实现

分布式事务是指涉及多个独立的计算实体(如服务器、数据库或其他资源)的事务处理,这些实体可能分布在不同的物理位置。在分布式事务中,各个参与节点需要协调执行,以确保整个事务要么完全成功,要么完全失败,从而维护事务的原子性和一致性。

2024-04-14 16:09:47 679

原创 使用Java中的Condition+ ReentrantLock进行高效地协调线程

Condition提供了一种强大的线程等待和通知机制,使得开发者可以在复杂的同步场景中实现精细的控制,优化线程间的协作,避免不必要的阻塞和唤醒。这是比传统的wait()和notify()更高级的工具,尤其适用于有多种等待条件的情况。

2024-04-14 07:00:00 414

原创 一篇文章深入学习Java的AQS(AbstractQueuedSynchronizer)

(简称AQS)是Java并发包中的一个基础框架,它为实现依赖单个原子变量来表示状态的同步器提供了可靠的基础。这个框架被广泛用于Java标准库中许多同步器的实现,例如Semaphore和等。AQS是实现定制同步器的强大工具,其设计抽象且功能强大,允许通过简单的方式来实现复杂的同步需求。通过学习和使用AQS,可以极大地扩展Java并发编程的能力,并深入理解并发控制机制。如果你需要更深入的理解AQS,阅读Oracle官方文档关于AQS部分将提供丰富的信息和示例,帮助你更好地理解和利用这一框架。

2024-04-13 15:38:19 1460 1

手写Spring框架之: HelloSpring

手写Spring框架之: HelloSpring

2024-02-01

java基础继承封装多态

java基础_继承封装 多态,概念的梳理,对初学者很有帮助,看一遍就清楚了

2013-04-01

vagaa客户端

VAGAA,资源共享,可以下载小电影,你懂得,赶快下吧

2011-11-30

hibernate详细官方中文教程

hibernate最专业,最详细的学习教程,web开发人员必备手册

2011-11-11

Linux命令大全_从菜鸟到大虾

包含了linux文件管理,文件传输,文档编辑,系统管理,系统设置,系统通讯,磁盘管理,磁盘维护,备份压缩,设备管理的命令,学习linux必备手册

2011-11-11

空空如也

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

TA关注的人

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