自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

咖啡程序员

日常学习分享,以及工作中的经验分享

  • 博客(92)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java中Map循环安全的删除数据的4中方法

在 Java 中,遍历 HashMap 并删除数据时,直接使用 for-each 循环或 Iterator 的 remove 方法可能会导致 ConcurrentModificationException 异常。为了避免这个问题,需要使用 Iterator 来安全地删除数据。以下是常见的4中删除方法方法1 -Iterator 安全,直接操作原 HashMap 代码稍显冗长 需要直接修改原 HashMap。

2025-02-17 11:50:33 641

原创 Linux系统 如何修改IP网关DNS

Linux 系统如何修改Ip地址 子网掩码 网关以及DNS!尝试过很多方法!个人觉得是最简单的方法!只需要三步!

2025-02-12 14:59:05 407

原创 在Linux系统中如何恢复到正确的日期和时间

在Linux系统中,如果日期和时间设置错误,可以通过多种方法将其恢复到正确的日期和时间。

2024-12-16 15:34:49 2135

原创 Java线上分析常用命令合集持续更新

jmap -dump:format=b,file=[文件名称].hprof PID。关于进程、CPU 使用率、内存使用情况等的综合视图。PID为TOP查看的总的PID。查询详细的PID详细情况命令。会自动存在在/root目录下。

2024-12-04 09:52:48 153

原创 在软件开发中分支命名详细规则

在软件开发中,分支命名是一项重要的实践,它有助于团队成员快速理解分支的用途和内容,提高协作效率,减少混淆和错误。通过遵循上述命名原则和约定,可以提高软件开发过程中的分支管理效率,促进团队成员之间的协作和沟通。

2024-09-25 10:55:00 1074

原创 centos 下如何安装openjdk21

本文章是自己将openjdk下载好!手动上传解压的方式进行安装!

2024-08-14 11:24:59 1659

原创 链接Mysql 报错connection errors; unblock with ‘mysqladmin flush-hosts‘错误的解决方法!亲测有效!

今天正常的对各大的测试服进行重启的时候发现每台服务器都启动失败!查看日志发现每台服务器都报一下的错误经过排查发现,由于部署mysql的服务器重启导致,服务器链接尝试连接 MySQL 服务器时发生了太多错误(例如连接超时、无效的凭据等),MySQL 服务器就阻止了来自 IP 地址 192.168.0.223 的连接请求!

2024-08-14 10:53:21 734

原创 在 Linux上常见的10大压缩格式解压命令和它们对应的压缩格式

Linux 命令可以解压不同格式的压缩文件。这些命令覆盖了大多数常见的压缩文件格式,你可以根据文件类型选择合适的解压命令。

2024-08-13 21:12:54 874

原创 java21虚拟线程的使用以及适用场景

Java 的虚拟线程是作为 Project Loom 的一部分在 Java 19 中首次引入的,作为预览功能提供。随后在 Java 20 中再次以预览形式提供,并在 Java 21 中正式发布。Java 19:首次引入虚拟线程作为预览功能。Java 20:继续作为预览功能提供。Java 21:虚拟线程成为 Java 的正式功能。java 21 中引入的虚拟线程(Virtual Threads)是 Project Loom 的一部分,旨在解决传统线程在处理高并发任务时的效率问题。

2024-08-13 09:33:08 1303

原创 Spring Boot 中,监听应用程序启动的生命周期事件的4种方法

你可以创建一个实现 ApplicationListener 接口的类,监听 ApplicationStartingEvent、ApplicationEnvironmentPreparedEvent、ApplicationPreparedEvent、ApplicationStartedEvent、ApplicationReadyEvent 等事件。");");");");");");

2024-07-17 14:45:15 1680

原创 Idea如何快速高效的修改项目的包名

当我们有时候在做项目迁移的时候,需要快速的修改项目的包名!那么如何快速高效的修改项目的报名呢?经过尝试了很多方法!最简单的方法就是利用全局替换来直接替换报名!简单快捷有效!

2024-07-17 09:07:08 2519 1

原创 在 Gradle 项目中,排查依赖冲突可以的详细步骤

为了更高级的依赖管理,可以考虑使用 Gradle Dependency Management 插件。保持依赖的最新状态也有助于最小化冲突。在语言模型中,编码器和解码器都是由一个个的 Transformer 组件拼接在一起形成的。此命令将显示每个配置的依赖树。使用 Gradle 依赖洞察(dependencyInsight)在输出中,查找标有 (*) 的行,这些行表示版本冲突。

2024-07-13 10:17:06 1214

原创 什么是大端字节序(Big Endian)和小端字节序(Little Endian)?

大端字节序(Big Endian)和小端字节序(Little Endian)是描述多字节数据在内存中如何布局的术语。这两种字节序的主要区别在于多字节数据的高位字节和低位字节在内存的存储顺序。字节序的重要性字节序在数据在不同计算机系统之间传输时尤为关键。如果发送方和接收方的计算机字节序不同,不经转换直接发送数据可能会导致接收方解析错误。所以在网络协议中,通常规范了数据的字节序,比如TCP/IP协议规定,网络传输时数值采用大端字节序。

2024-06-06 09:47:33 2715

原创 AtomicInteger的详细使用教程

AtomicInteger是Java并发包 java.util.concurrent.atomic 中提供的一个类。它使用了一种线程安全的方式来执行整数值的操作,这意味着在多线程环境下,利用AtomicInteger执行的操作是原子的,无需担心数据的一致性和完整性问题。总的来说,AtomicInteger提供了一种安全、简单而高效的方式来在多线程环境中操作整数值,避免了使用锁带来的复杂性和性能问题。

2024-06-04 11:17:03 956

原创 如何将自定义作业的对象传递给Quartz 的Job作业时使用

如何将作业的对象传递给Quartz 的Job进行调度作业使用我们可以创建自定义类,并使用 jobDataMap 将其传递给作业。然后在作业执行中获取该对象,并使用它的参数执行任何您喜欢的事情。

2024-05-20 18:31:29 251

原创 内网通如何去除广告,内网通免广告生成器

链接:https://pan.baidu.com/s/1CVVdWexliF3tBaFgN1W9aw?公司使用内网通内部传输确实方便!但是会有广告弹窗推送!那么如何去除广告呢!生成后 将代码复制到就点击立即添加就可以了。ID:为内网通的ID。

2024-04-13 16:35:08 4534 2

原创 如何在Windows上设置启动MySQL服务

当在Windows安装Mysql后,有时候有可能会出现重启电脑后Mysql服没有自动启动,那么就需要手动的进行启动!那么下面就介绍一下如何在Windows上设置启动MySQL服务以上就是关于在Windows上启动MySQL服务的详细指南。希望对您有所帮助!

2024-03-21 20:35:49 3542

原创 Windows11安装Msql8.0版本详细安装步骤!

每次搭建新环境的时候,都需要网上搜寻安装的步骤教程!为了以后方便查阅!那么本次就记录一下Windows11安装Msql8.0的详细步骤!也希望能帮助到有需要的小伙们!以上就是Windows11安装Msql8.0版本详细安装步骤!希望能帮助到各位小伙们!

2024-03-18 21:38:31 2593 3

原创 git 推送代码的死后报错ssh: connect to host github.com port 22的解决方法!实测有效!

今天推送代码突然遇到ssh: connect to host github.com port的错误!解决方案如下!

2024-01-27 11:44:32 710

原创 如何使用Gighub+PicGo搭建自己的免费图床的详细教程!

虽然网上有很多的免费使用的图床,但是很多都有大小的限制,那么我们可以用Github来做图床,而且有CDN进行加速,稳定性就有保障!以下是详细的步骤!

2024-01-18 15:52:58 511

原创 编程语言的未来:创新与普及的融合

同时,编程语言的学习资源和教育机构也将更加丰富和多样化,为广大学习者提供更好的学习环境和支持。新的编程语言将会出现,具备更强大的功能和更高的抽象级别,使开发人员能够更快速地构建复杂的应用程序。未来的编程语言将更加注重跨平台的能力,使开发人员能够更方便地编写一次代码,然后在不同的平台上运行。同时,编程语言将更加注重与其他技术的集成,如云计算服务、物联网设备和人工智能算法等,以提供更丰富的开发工具和功能。作为程序员和技术爱好者,我们应该持续关注编程语言的发展,不断学习和掌握新的技术,以适应未来的需求和挑战。

2023-12-29 09:20:26 555

原创 设计模式之-桥梁模式,快速掌握桥梁模式,通俗易懂的讲解桥梁模式以及它的使用场景

Town是抽象部分的基类,它包含了对桥实现部分的引用,并定义了抽象的访问方法visit()。Shape是抽象部分的基类,它包含了对实现部分的引用,并定义了抽象的绘制方法draw()。小镇代表了整个系统,而抽象部分是桥的结构和功能,实现部分则是具体的木桥和石桥。设计师就是桥梁模式的核心,他将抽象部分和实现部分分离,并协调它们的工作。镇长找来一个桥梁设计师,设计师告诉镇长,他可以设计一座新桥的抽象部分,即桥的结构和功能,不管是木桥还是石桥都可以。某天,小镇的镇长决定要修建一座新的桥,以便提供更多的通行便利性。

2023-12-27 13:36:02 1665

原创 Java与前端的未来,超越流言,把握发展机遇

同时,Java生态系统庞大且成熟,拥有丰富的开源框架和工具,为开发者提供了广泛的选择和支持。同时,Java生态系统庞大且成熟,拥有丰富的开源框架和工具,为开发者提供了广泛的选择和支持。近年来,随着技术的快速发展和新兴技术的涌现,IT圈中经常会传出各种关于技术的言论和预测。在这样的背景下,最近流传的“Java已死、前端已凉”的言论引起了广泛的关注和讨论。这样的言论一方面引发了人们的焦虑和不安,另一方面也引发了对Java和前端未来发展的思考和探讨。然而,我们需要理智地对待这样的言论,避免被过度的焦虑所左右。

2023-12-26 14:22:38 1031

原创 设计模式之-享元模式,快速掌握享元模式,通俗易懂的讲解享元模式以及它的使用场景

享元模式的目标是通过共享对象来减少内存使用和提高性能。享元模式适用于需要创建大量相似对象的情况。享元模式通过将对象的共享状态外部化,使得多个对象可以共享相同的状态,从而减少了对象的数量。共享状态是不可变的,如果一个对象的状态发生改变,可能会影响到其他对象。享元模式的核心是一个工厂类,用于管理和共享对象。工厂类通过对象池来存储共享的对象,使用合适的数据结构(如HashMap)来实现快速查找和存储。客户端通过工厂类获取共享对象,并可以根据需要设置对象的非共享状态。

2023-12-26 09:35:58 1719

原创 设计模式之-解释器模式,快速掌握解释器模式,通俗易懂的讲解解释器模式以及它的使用场景

总结来说,解释器模式适用于需要解析和执行简单语法规则的场景,并且提供了一种灵活、可扩展的方式来处理复杂的表达式。通过将问题表示为语言规则。

2023-12-26 09:24:27 1435

原创 设计模式之-状态模式,快速掌握状态模式,通俗易懂的讲解状态模式以及它的使用场景

状态模式适用于当对象的行为取决于其内部状态,并且状态可能在运行时发生变化的情况。它可以帮助我们实现清晰的状态转换逻辑,提高代码的可维护性和扩展性。

2023-12-25 16:58:01 2147 1

原创 设计模式之-访问者模式,快速掌握访问者模式,通俗易懂的讲解访问者模式以及它的使用场景

总体而言,访问者模式适用于元素对象结构相对稳定,但需要频繁添加新的操作的场景。如果元素对象结构经常变化或者需要添加新的元素类,使用访问者模式可能会增加代码的复杂性。因此,在使用访问者模式时需要根据具体情况进行权衡和设计。

2023-12-25 16:51:01 1574

原创 设计模式之-备忘录模式,快速掌握备忘录模式,通俗易懂的讲解备忘录模式以及它的使用场景

备忘录模式的核心思想是通过备忘录对象来存储和恢复对象的状态,以实现状态的保存和恢复功能。它的应用场景包括各种需要保存和恢复状态的情况,比如编辑器的撤销功能、游戏中的存档功能等。通过备忘录模式,我们可以在不破坏封装性的前提下,轻松实现对象状态的保存和恢复。

2023-12-25 15:07:56 1416

原创 设计模式之-门面模式,快速掌握门面模式,通俗易懂的讲解门面模式以及它的使用场景

当谈到门面模式(Facade Pattern)时,我们可以将其比作一个建筑物的门面,门面是人们与建筑物进行交互的入口,隐藏了内部的复杂结构,使得人们可以轻松地与建筑物交互而不必了解其内部的复杂性。现在,你只需要告诉系统你想要的咖啡类型,比如浓缩咖啡、拿铁或卡布奇诺,系统会自动处理所有的细节并将咖啡制作好,然后直接交给你。而咖啡点单系统(门面)则提供了一个简化的接口,封装了这些子系统的复杂性,使得顾客可以轻松地购买咖啡而不必了解内部的实现细节。简单来说,门面模式提供了一个统一的接口,用于简化复杂系统的访问。

2023-12-25 13:54:22 1619

原创 设计模式之-观察者模式,快速掌握观察者模式,通俗易懂的讲解观察者模式以及它的使用场景

通过观察者模式,天气预报中心和居民之间建立了一种松散的依赖关系,使得天气预报中心能够方便地通知居民们最新的天气情况,居民们也能够根据天气情况做出适当的调整。当谈到设计模式中的观察者模式(Observer Pattern)时,它是一种行为型设计模式,用于在对象之间建立一种一对多的依赖关系,当一个对象的状态发生改变时,它的所有依赖者都会得到通知并自动更新。然后,我们定义一个具体的天气预报中心(ConcreteWeatherCenter)类,实现了主题接口,并维护了一个观察者列表。

2023-12-25 10:54:33 3900 1

原创 设计模式之-组合模式,快速掌握组合模式,通俗易懂的讲解组合模式以及它的使用场景

组件是表示文件和文件夹的抽象类,叶子是表示文件的类,容器是表示文件夹的类。以生活中的文件系统为例,文件系统由文件夹和文件组成,文件夹可以包含子文件夹和文件,而文件是最基本的组成单元。组合模式可以用来表示文件系统的层次结构,使得用户可以统一地处理文件和文件夹,而不必关心它们的具体类型。在Main类的main方法中,我们创建了文件和文件夹的实例,并使用add方法将它们组合成一个文件系统的层次结构。通过组合模式,我们可以以一种统一的方式处理文件和文件夹对象,而不必关心它们的具体类型。

2023-12-25 09:26:30 1228 1

原创 设计模式之-迭代器模式,快速掌握迭代器模式,通俗易懂的讲解迭代器模式以及它的使用场景

其中,Iterator接口定义了迭代器的方法hasNext()和next(),Aggregate接口定义了聚合对象的方法createIterator()。最后,我们使用迭代器的hasNext和next方法来遍历聚合对象中的元素,并将每个元素打印出来。在这个例子中,书是聚合对象,每一页是一个元素,而你使用的翻页动作就是迭代器。迭代器负责定义访问和遍历聚合对象中元素的接口,聚合对象则负责提供创建迭代器的方法。通过这样的实现,我们可以在Java中使用迭代器模式来遍历聚合对象,实现了代码的灵活性和可扩展性。

2023-12-25 09:22:28 1099

原创 设计模式之-适配器模式,快速掌握适配器模式,通俗易懂的讲解适配器模式以及它的使用场景

在现实生活中,适配器模式的例子可以是使用不同类型的插头连接电器设备。在客户端代码中,首先创建了一个适配器对象musicPlayer,并通过适配器对象调用目标接口的方法来播放音乐。适配器模式允许已有的类或接口与其他不兼容的类或接口进行交互,提高了代码的复用性和灵活性。在上面的示例中,MusicPlayer是目标接口,定义了音乐播放器的方法。Mp3Adapter是适配器类,实现了目标接口,并持有适配者类的引用。在适配器类的方法中,调用适配者类的方法来完成适配。

2023-12-23 09:01:16 1107

原创 设计模式之-策略模式,快速掌握策略模式,通俗易懂的讲解策略模式以及它的使用场景

在现实生活中,策略模式的例子可以是支付方式的选择。这些支付方式都是不同的算法,但用户不需要关心具体的实现细节,只需要选择合适的支付方式。接着创建了一个猫对象cat,并设置了猫叫声的策略,再调用猫对象的makeSound方法,输出猫的叫声。在上面的示例中,SoundStrategy是抽象策略,定义了叫声策略的方法。策略模式是一种行为型设计模式,它定义了一系列的算法,并将每个算法封装到独立的策略类中,使它们可以相互替换。通过使用策略模式,可以根据不同的情况选择不同的策略,而不需要改变环境类的代码。

2023-12-23 08:51:40 962

原创 设计模式之-装饰模式,快速掌握装饰模式,通俗易懂的讲解装饰模式以及它的使用场景

在客户端代码中,首先创建了一个浓缩咖啡对象espresso,然后用Milk装饰了该咖啡对象,再用Sugar装饰了装饰后的咖啡对象。最后,通过调用装饰后的咖啡对象的方法,获取咖啡的费用和描述。CoffeeDecorator是抽象装饰器,实现了咖啡的方法,并包含一个咖啡对象的引用。Milk和Sugar是具体装饰器,分别继承了抽象装饰器,并在其中扩展了咖啡的功能。在现实生活中,装饰模式的例子可以是穿衣服。一个人(原始对象)可以穿不同的衣服(装饰对象)来增加新的功能或美化外观,但人的本质并没有改变。

2023-12-22 21:59:11 646

原创 设计模式之-责任链模式,快速掌握责任链模式,通俗易懂的讲解责任链模式以及它的使用场景

最后,根据不同的请假天数,输出不同的处理结果。Supervisor、Manager和CEO是具体处理者,分别实现了抽象处理者的处理请假申请方法,并在其中判断是否能够处理请求,如果不能处理则将请求传递给下一个处理者。当员工提交请假申请时,请求会从最高层级的审批人员开始传递,如果一个审批人员无法处理请求,则将请求传递给下一个审批人员,直到有人能够处理为止。每个接收者都包含对下一个接收者的引用,形成一个链条,当请求从链条的头部开始传递时,每个接收者都有机会处理请求,直到有一个接收者能够处理为止。

2023-12-22 21:55:24 787

原创 设计模式之-命令模式,快速掌握命令模式,通俗易懂的讲解命令模式以及它的使用场景

在上面的示例中,Command是抽象命令接口,定义了命令的执行方法execute。OpenTVCommand和CloseTVCommand是具体命令类,分别实现了抽象命令接口,并在execute方法中调用接收者对象的相应方法。在现实生活中,命令模式的例子可以是遥控器。遥控器上的按钮(客户端)发送命令(请求)给电视(接收者),电视根据命令进行相应的操作。命令模式是一种行为型设计模式,它将请求封装成一个对象,从而使得可以用不同的请求对客户进行参数化,并且能够支持请求的排队执行、记录日志、撤销和重做等操作。

2023-12-22 21:51:46 1610

原创 设计模式之-中介者模式,快速掌握中介者模式,通俗易懂的讲解中介者模式以及它的使用场景

ConcreteChatRoom是具体中介者类,实现了抽象中介者接口,并在sendMessage方法中处理用户发送的消息。中介者模式将对象之间的交互行为集中在一个中介者对象中,降低了对象之间的耦合度,使其更易于理解和维护。User是抽象同事类,定义了用户的名称和中介者对象。OrdinaryUser和VipUser是具体同事类,分别实现了抽象同事类的发送消息方法,并在其中调用中介者对象的方法。通过使用中介者模式,可以将对象之间的通信行为集中在一个中介者对象中,减少了对象之间的直接依赖和耦合。

2023-12-22 21:47:42 627

原创 设计模式之-原型模式,快速掌握原型模式,通俗易懂的理解原型模式以及使用场景

原型模式是一种创建型设计模式,它允许通过复制现有对象来创建新的对象,而无需通过调用构造函数来创建。原型模式通过克隆操作来创建对象,提供了一种更加灵活和高效的对象创建方式。在现实生活中,原型模式的例子可以是制作玩具的模具。模具(原型对象)定义了玩具的形状和细节,而根据模具可以快速复制出多个相同的玩具(克隆对象)。

2023-12-22 21:43:18 1031

原创 设计模式之-代理模式,快速掌握理解代理模式,以及代理模式的使用场景

代理模式是一种结构型设计模式,它允许通过创建一个代理对象来控制对另一个对象的访问。代理对象充当客户端与目标对象之间的中介,可以在不改变目标对象的情况下,增加额外的功能或提供额外的控制。在现实生活中,代理模式的例子可以是一位明星的经纪人。明星(目标对象)负责演艺工作,而经纪人(代理对象)负责处理合同、安排日程、接待粉丝等工作。经纪人在不改变明星的情况下,为明星提供额外的服务和保护。

2023-12-22 21:32:02 448

jdk1.8 中文API.7z

JDK1.8 API中文翻译 百度+谷歌翻译

2021-04-09

RegexBuddy.7z

RegexBuddy 正则表达式测试使用 解压即用

2021-02-26

空空如也

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

TA关注的人

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