自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入解析-正则表达式

在开发过程中,正则表达式的调试往往是一个挑战,尤其是在正则表达式非常复杂的情况下。正则表达式的性能是我们在实际应用中必须关注的一个重要方面,尤其是在大数据量或复杂模式匹配的情况下。正则表达式的引擎存在不同的流派,它们在正则表达式的实现上有一定的差异。幸运的是,许多工具和IDE插件都提供了调试支持。不同的流派在正则表达式的匹配效率、灵活性以及表达能力上有所不同,开发人员在选择时需要根据实际的需求进行权衡。在这个示例中,贪婪匹配会尝试匹配尽可能长的字符串,而非贪婪匹配会尽量少匹配字符,从而减少回溯。

2025-01-03 16:18:43 1174

原创 Java 性能调优实战

Java 性能调优实战》课程覆盖了 Java 性能调优的各个方面,涵盖从 Java 编程到多线程调优、JVM 性能监控、数据库优化和分布式系统的调优。每个模块都提供了详细的讲解和实际代码示例,帮助开发者在实际开发中提高系统的性能和可扩展性。Java 编程性能调优:深入讨论了常见的性能瓶颈及其优化方案,帮助开发者提高代码效率。多线程性能调优:通过优化线程池、锁机制和协程,帮助开发者在并发场景下提高系统吞吐量。JVM 性能监控及调优。

2025-01-03 15:41:51 803

原创 深入拆解Java虚拟机

通过字节码注入,可以在运行时修改或增强已有代码的行为,避免在编译时进行繁琐的修改。无论是使用 CGLIB 还是 Byte Buddy,字节码注入都为我们提供了灵活的功能增强手段,适用于各种场景,如日志拦截、性能计时、缓存等。

2025-01-03 15:26:12 729

原创 Java 并发编程实战

1. 可见性、原子性和有序性问题:并发编程 Bug 的源头在并发编程中,常常会遇到由于线程之间共享数据而导致的问题,主要体现在可见性、原子性和有序性上。让我们通过一些代码示例来深入理解这些问题。可见性问题public class VisibilityTest { private static boolean flag = false; public static void main(String[] args) throws InterruptedException {

2025-01-03 15:14:36 1265 1

原创 软件设计与架构原理 (面试宝典)

微服务架构(Microservices Architecture)是近年来软件架构领域的热门话题,它提倡将应用程序拆分成多个独立的、小型的服务,这些服务通过轻量级的通信机制(如HTTP REST、消息队列等)进行交互。大数据架构的目标是高效处理PB级甚至EB级的数据,支持复杂的分析和计算,确保数据的实时处理、存储和查询能力。然而,区块链的潜力远远超出了加密货币的领域,它在供应链管理、金融服务、智能合约、身份验证、版权保护等众多领域都展现出巨大的应用前景。在高并发、分布式的场景下,异步架构是必不可少的。

2025-01-03 13:59:50 753

原创 Redis(基础篇 + 实践篇 )

Redis 提供了对地理位置信息的支持,通过。

2025-01-03 13:36:15 1183

原创 深入解析与实践:MySQL

字段是数据库中存储数据的基本单位,MySQL 提供了多种数据类型,以适应不同的业务需求。数值类型:包括INTBIGINTDECIMALFLOAT和DOUBLE等类型。对于精度要求较高的财务数据,推荐使用DECIMAL,而对于一般的整数数据,则可以使用INT。字符串类型:包括VARCHARCHARTEXT和BLOB。对于变长字符串数据,可以使用VARCHAR,而对于定长字符串,则使用CHAR。日期和时间类型:包括DATEDATETIMETIMESTAMPTIME和YEAR。其中,DATETIME和。

2025-01-03 13:23:49 1024

原创 深度解析与实践:HTTP 协议

HTTP 协议作为 Web 的基础协议,贯穿了从前端到后端、从请求到响应、从客户端到服务器的所有通信。虽然 HTTP 协议本身简单易懂,但要在现代 Web 和微服务架构中高效、安全地使用它,

2025-01-03 11:43:08 1404

原创 Java 和领域驱动设计的深度实践

通过在 Java 项目中深入应用领域驱动设计(DDD),我们能够更好地应对复杂的业务需求,并构建出更加健壮、灵活且可维护的系统。DDD 并非一蹴而就,它需要开发者深入理解业务、精心设计领域模型,并通过合理的架构和工具加以实现。虽然 DDD 为 Java 开发带来了诸多挑战,如领域模型设计、跨限界上下文的协作和性能优化,但通过不断学习、重构和实践,团队可以克服这些难题,最终实现业务与技术的完美融合。领域驱动设计不仅是一个架构方法论,它是一种思维方式,要求我们从业务角度出发,反映业务需求并快速迭代。

2025-01-03 11:36:28 819

原创 深入理解领域驱动设计(DDD)

领域驱动设计(DDD)是由 Eric Evans 在其 2004 年出版的《领域驱动设计:软件核心复杂性应对之道》(Domain-Driven Design: Tackling Complexity in the Heart of Software)一书中首次提出的。DDD 的核心思想是,软件的设计应该基于业务领域模型,并且开发团队需要与领域专家(如业务人员)密切合作,通过语言和模型表达业务需求。DDD 强调在设计过程中,开发团队应始终关注“领域问题”,而不是具体的技术实现。

2025-01-03 11:32:00 905

原创 深入 Redis:高级特性与最佳实践

Redis 作为一个高性能的键值存储系统,在现代分布式系统中发挥着重要作用。通过合理利用 Redis 的高级特性和设计模式,开发者可以在高并发、海量数据的环境下实现高效的数据存储与访问。同时,深入理解 Redis 的性能优化与最佳实践,能够确保系统的稳定性与扩展性。

2025-01-03 11:27:40 1126

原创 Java 高级设计模式:深度解读与应用实例

当我们需要创建一组相关或依赖的对象时,抽象工厂模式显得尤为重要。它提供了一个接口,用于创建一系列相关的产品,而不指定具体的类。优点:抽象工厂模式使得系统能够在不修改代码的情况下扩展新的产品族。设计模式是编程世界的智慧结晶,它们为我们提供了在复杂系统中组织和管理代码的最佳方法。在 Java 中,合理运用设计模式可以有效提升软件的可维护性、可扩展性和灵活性。掌握高级设计模式,不仅能帮助我们构建更高效的系统,还能在工作中提升我们解决问题的能力。

2025-01-03 11:25:16 1173

原创 edusoho企培版纯内网部署教程(解决播放器本/上传本地化、ppt/pdf 本地播放、后台所有页面卡顿问题、开启倍速播放/播放器指纹 或对接阿里云点播存储播放视频 及 oss 存储和播放文档)

处理edusoho内网部署问题处理edusoho内网部署问题前面的环境随你开心只要是正常lnmp就行,就php有要求 ,根据教程先能访问网校页面。重点在后面的内网配置及代码改动(说明: 改完以后不建议升级,升级版本就要再改一次,安装版本最好是偏新的,低版本可能存在某些bug,可以找个连外网的装了升级到最新 然后迁移到内网环境再修改代码)

2022-06-29 09:48:26 5880 20

原创 ubuntu 20.04 部署edusoho企培版(安装包部署)

1. 安装依赖apt-get updateapt-get upgradeapt-get install wget gcc make perl vim libmcrypt-dev mcrypt2.安装配置nginxapt-get install nginxvim /etc/nginx/nginx.conf添加`client_max_body_size 1024M;`到http下,如下所示http { ## # Basic Settings

2022-03-11 13:03:34 5014

原创 edusoho 内网部署问题(视频播放,文件上传 无法使用)

edusoho 网络课堂 /edusoho 企业大学(企业培训版) 纯内网部署。课程视频播放 和课程上传文件 问题。 原因是: 播放器和上传的sdk是访问云端的,内网部署的话需要本地化。操作1.下载sdk文件:链接: https://pan.baidu.com/s/1akGId9DOrtN60iec_Acu1A 提取码: n27nsdk功能是持续在更新的 目前这个是2021-11-01版本,能正常使用 如需最新需要联系官方获取2.替换文件 :替换项目目录web/service-...

2021-11-03 11:47:35 2781 22

原创 edusoho企培版推荐环境部署文档之 -Ubuntu 14.04-php7.1

安装向导 - Ubuntu 14.04Step1:安装PHP7.11.ubuntu 14.04, 添加PHP 7的APT源sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/phpsudo apt-get updatesudo apt-get install php-pear php7.1-cli php7.1-common php7.1-curl php7.1-dev php7.1-fpm php7.1-json php7.1-mbstring p

2021-06-08 10:06:23 341

原创 edusoho企培版 5.6.0 前版本下chrome 8.0版本以上无法上传资源 处理文档

备份代码 将文件夹中JWT文件夹复制到项目目录src/AppBundle/Component 下 将文件夹中的UploaderToken.php替换src/AppBundle/Util/UploaderToken.php 将文件夹中的UploadFileServiceImpl.php替换src/Biz/File/Service/Impl/UploadFileServiceImpl.php、 将文件夹中的security.yml替换app/config/security.y...

2021-06-08 10:01:26 249

原创 edusoho企培版 centos8.2 /php7/mysql8.0部署文档

1安装wget如果系统已安装wget,请跳过此步骤 yum install wget2更新系统#更新yum软件包yum check-update #更新系统yum update3 安装配置防火墙3-1 更改默认防火墙,开启22端口、80端口、3306端口关闭firewall:systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动安装ipta

2021-04-09 14:02:39 577

原创 Java UnsupportedOperationException 深度解析及解决方案

避免该异常的关键是确保对集合的修改操作是在可变集合上进行。之一,属于未检查异常(Unchecked Exception)。,以确保集合是可修改的。希望本文能帮助你更好地理解 Java 的集合框架,避免。是一种常见的运行时异常,通常发生在尝试对。等方法可能会触发此异常。,特别是在使用 Java 集合框架时。的可能原因,并提供有效的解决方案。不能被修改,任何试图调用。在 Java 开发过程中,

2025-04-02 15:53:54 281

原创 深入解析 Java Optional:避免 NPE 的最佳实践与代码示例

创建 Optional: 不能为null: 允许null: 创建空Optional判断是否有值(不推荐)获取值get()(不推荐)转换值组合 OptionalorElse()这样,你可以在 Java 项目中更优雅地处理null,减少 NPE 发生的可能性。🚀。

2025-02-19 10:44:27 326 1

原创 PHP 中 `foreach` 循环结合引用使用时可能出现的问题

引用遍历的隐患在使用引用遍历时,循环结束后引用变量不会自动解除,这可能导致后续代码中意外修改了引用的对象。后续操作的误区当后续循环中再次使用之前的变量(例如$value)时,即使不使用引用,赋值操作也会作用到原来引用的目标上(在本例中为数组最后一个元素)。解决方案在引用foreach循环结束后调用或以解除引用关系。尽量避免在同一作用域中混用引用和非引用的循环,或改变变量名后仍记得清理引用。理解了这个问题的机制后,在实际开发中就可以避免类似的陷阱,提高代码的健壮性和可读性。

2025-02-05 10:17:23 981

原创 PHP `foreach` 引用变量导致的问题及其解决方案

在 PHP 5 和 PHP 7/8 中,foreach处理引用的方式有所不同。PHP 7/8 由于优化可能导致数组副本创建,从而影响foreach逻辑,进而导致代码在不同环境下的行为不一致。避免foreach✅尽量使用值拷贝,而不是引用✅如果修改数组,优先使用或for循环✅确保 PHP 版本一致,避免环境差异导致的问题✅如果使用引用,确保释放引用通过遵循这些最佳实践,可以避免foreach在不同 PHP 版本中的潜在问题,提高代码的健壮性和可维护性!

2025-02-05 10:07:18 871

原创 深入学习 Python 量化编程

首先,你需要安装一些在量化编程中常用的 Python 库。

2025-01-11 11:40:54 2062 1

原创 Python3 多线程编程学习指南

多线程是一种在同一个进程内并发执行多个线程的技术。每个线程是一个独立的执行单元,共享进程的内存和资源。多线程允许在一个应用程序中同时执行多个任务。优势:挑战:在多线程环境下,由于线程共享内存,因此线程切换比进程切换更轻量,适用于处理并发任务。Python 中的 GIL(Global Interpreter Lock)是一个锁机制,确保同一时刻只有一个线程可以执行 Python 字节码。GIL 使得 Python 在执行 CPU 密集型任务时无法充分利用多核 CPU,这意味着在多线程程序中,CPU 密集型任务

2025-01-11 11:36:18 804

原创 Python Selenium 库学习指南

Selenium 是一个强大的浏览器自动化工具,它可以模拟用户在浏览器中的操作,如点击按钮、输入文本、滚动页面等。它最初用于 Web 应用的自动化测试,但在数据抓取和爬虫领域也得到了广泛应用,特别是抓取动态加载的网页内容。Selenium 可以与多种浏览器配合使用,包括 Chrome、Firefox、Edge、Safari 等,它通过 WebDriver 接口与浏览器交互。你也可以通过执行自定义的 JavaScript 代码,控制页面行为。# 让页面元素改变颜色")

2025-01-11 11:30:18 1421

原创 深入学习 Python 爬虫:从基础到实战

爬虫,顾名思义,是一种自动化的网络数据抓取程序。它通过模拟人类的浏览行为,向指定的 Web 服务器发送请求,获取网页数据,然后从中提取出有用的信息。获取公共网站的数据。监控某些网页的变化。搜集数据用于分析和研究。请求(Request):发送到 Web 服务器的 HTTP 请求,通常是 GET 或 POST 请求。响应(Response):服务器返回的网页内容,通常是 HTML 格式的数据。数据提取:从 HTML 响应中提取你感兴趣的数据。

2025-01-11 11:27:09 1652 1

原创 **MapStruct** 在实际开发中的应用

当字段名称不同或字段类型不匹配时,我们需要显式指定映射规则。MapStruct 提供了@Mapping注解来定义源字段与目标字段的映射关系。@Mapper在这里,我们使用@Mapping注解显式指定了carModel映射到model。当源对象和目标对象的字段名不同,或者是类型转换时,我们可以通过source和target来指定映射关系。当两个对象的类型不匹配时,MapStruct 允许你提供自定义转换方法。通过在映射接口中定义default方法,或者在实现类中自定义方法来处理复杂的类型转换。

2025-01-10 16:31:52 677

原创 Git 操作与技巧

掌握 Git 的各种操作技巧,可以大大提高你的开发效率,避免许多常见的开发问题。在日常开发中,合理使用分支管理、提交规范、以及与 CI/CD 集成,能够确保代码质量和团队协作的顺畅。同时,了解和熟练使用一些 Git 的高级操作,如git bisectgit rebase和标签管理,也能帮助你更好地管理项目和调试 bug。通过不断实践和积累经验,你将能在 Git 的世界中游刃有余,更高效地完成开发任务。

2025-01-10 16:13:50 951

原创 iframe

iframe>是 HTML 中用于在当前页面内嵌入另一个文档的标签。它的全称是 “inline frame”。标签通常用于显示外部网页或文档内容,允许你在一个页面中加载另一个网页,而不需要跳转到另一个 URL。

2025-01-08 17:00:26 1769

原创 深入细化解析 DNS(域名系统)

DNS 是互联网架构中至关重要的组成部分,它使得用户能够轻松地通过域名访问网络资源。在实际运用中,理解 DNS 的工作原理、各类 DNS 记录的使用、缓存策略、DNS 安全等方面,对于确保互联网服务的高效、稳定和安全至关重要。通过合理配置和优化 DNS,能够显著提升服务的访问速度,减少故障的发生,并确保网站的安全性。

2025-01-08 14:49:07 1280

原创 深入讲解 Docker 及实践

Kubernetes 允许使用Affinity和来实现容器调度的细粒度控制。:允许指定 Pod 调度到特定类型的节点。:允许为节点设置污点,只有具备相应容忍的 Pod 才能调度到这些节点。metadata:spec:template:spec:affinity:values:- ssd以上配置确保my-app部署的容器只能在带有标签的节点上运行。

2025-01-08 09:57:41 907

原创 edusoho内网部署问题

进入你的网校地址 /app_dev.php/admin/setting/developer 修改气球云SDK的CDN地址为 域名/service-cdn/ 例子dev.edudev.com/service-cdn/ 切记不带http://注意: 如果你使用app_dev.php 访问报错的话说明你没有添加必要文件 在项目目录下app/data 目录新增一个dev.lock 名称的文件即可。链接: https://pan.baidu.com/s/1cKHJa0XR5a44nyjMkGDhAQ?

2025-01-07 17:59:24 2279

原创 Linux 操作大全

本文深入探讨了 Linux 操作系统的各个方面,包括内核和系统架构、文件系统、进程和内存管理、网络配置与调试以及性能优化等。通过对这些核心组件的理解和操作,你将能够在 Linux 环境中更高效地进行管理、调优和故障排除。Linux 系统强大的可定制性和高效的资源管理能力,尤其适用于高并发、大流量的应用场景,理解其底层原理对于优化和扩展系统至关重要。

2025-01-07 17:47:27 713

原创 MySQL 主从复制 的原理、配置和如何实现 主从灾备

通过这篇深入的解析,你可以了解MySQL 主从复制的底层原理、配置步骤以及如何在实际生产中实现主从灾备。配置主从复制时,确保每个 MySQL 实例有唯一的server-id,并且正确配置二进制日志中继日志和复制用户。此外,使用GTID和MHA等技术,可以提高故障切换的自动化程度,确保高可用和灾难恢复。

2025-01-07 17:16:49 1181

原创 WebSocket底层原理及 java 应用

通过 WebSocket,Java 可以高效地实现实时通信。在实际应用中,WebSocket 适用于那些需要双向、低延迟通信的场景,比如实时游戏、聊天应用、实时数据监控等。通过结合前后端的 WebSocket 使用,我们可以快速开发出高互动、低延迟的应用。这个简单的答题游戏示例展示了如何使用 WebSocket 实现前后端实时数据交换。在实际项目中,你可以扩展更多功能,例如计时器、多人游戏、动态问题和答案等。

2025-01-06 16:18:23 1210

原创 MYSQL索引优化

通过合理使用索引、EXPLAIN分析查询执行计划、优化查询语句,可以显著提升MySQL查询的性能。注意,在创建索引时要权衡读取性能与写入性能的平衡,避免过多创建索引,同时选择合适的索引类型和组合索引。

2024-11-22 17:32:57 1310

原创 java 打包后无法运行(签名、依赖冲突或编译配置不一致)

IDE 能正常运行但打包后的 .jar 文件报错,通常是因为在 IDE 环境中,所有依赖和配置都是直接在开发环境加载的。而在打包成 .jar 文件时,可能会遇到签名、依赖冲突或编译配置不一致的问题。日常踩坑 IDE 正常运行 打包后服务器直接报错 最终无法找到代码修改的具体解决办法。2. 删除 META-INF 文件夹中的 .SF、.DSA 或 .RSA 文件。1. 解压生成的 .jar 文件。

2024-11-22 17:21:36 332

原创 mysql in查询大数据量业务无法避免情境下优化

在 MySQL 中,IN查询操作广泛用于从数据库中检索符合条件的多条记录,但当涉及到大数据量的IN查询时,性能可能会显著下降。特别是当IN子句中的元素数量非常大时,MySQL 需要对每个元素进行匹配,这会导致查询变得非常慢。为了解决这个问题,我们需要采取一些优化策略来提升查询效率。

2024-11-22 17:11:15 1921

原创 本地 PHP 和 Java 开发环境 Docker 化与配置开机自启

Docker 的最大优势之一是其容器化的特性,可以将开发环境的配置与应用程序的运行隔离开来。通过容器化的方式,PHP 和 Java 项目能够在本地开发时保持一致的环境配置,同时确保便捷的端口映射,方便开发和测试。本文将在前文基础上,补充说明如何在 Docker 中配置端口映射,并结合开机自启功能进行部署。

2024-11-22 17:00:35 927

原创 反向代理相关

反向代理(Reverse Proxy)是一种代理服务器的配置,它充当客户端与多个后台服务器之间的中介。与传统的正向代理不同,反向代理的客户端(外部用户)并不直接与后台服务器进行交互,而是通过代理服务器进行通信。反向代理是一种常用的架构模式,它能够隐藏内部服务器的真实信息,提供负载均衡、增强安全性等功能。在宝塔面板中配置反向代理非常简便,只需要通过图形界面填写相关配置即可。在生产环境中,合理配置反向代理能够有效提升系统的可扩展性、性能和安全性。

2024-11-22 16:48:24 952

空空如也

空空如也

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

TA关注的人

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