本篇要点介绍观察者模式和发布订阅模式的区别。SpringBoot快速入门事件监听。什么是观察者模式?观察者模式是经典行为型设计模式之一。在GoF的《设计模式》中,观察者模式的定义:在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知。如果你觉得比较抽象,接下来这个例子应该会让你有所感觉:就拿用户注册功能为例吧,假设用户注册
......
239
0
0
2024-01-08
一、引言说起 SpringBoot 不得不先了解一下 Spring 这个企业,不仅因为 Spring Boot 来源于 Spring 大家族,而是 Spring Boot 的诞生和 Sping 框架的发展息息相关。 二、Spring 历史2002 年正是 Java EE 和 EJB 大行其道的时候,很多知名公司都是采用此技术方案进行项目开发。一个美国的小伙
......
216
0
0
2024-01-08
关于 Java 的深拷贝和浅拷贝,简单来说就是创建一个和已知对象一模一样的对象。可能日常编码过程中用得不多,但是这是一个面试经常会问的问题,而且了解深拷贝和浅拷贝的原理,对于Java中的所谓值传递或者引用传递将会有更深的理解。 1、创建对象的5种方式①、通过 new 关键字 这是最常用的一种方式,通过 new 关键字调用类的有参或无参 构造方法 来创
......
221
0
0
2024-01-08
今天给大家带来的是二分查找及其变种的总结,大家一定要看到最后呀,用心满满,废话不多说,让导演帮我们把镜头切到下边吧! 上面的例子就用到了我们的二分查找思想,如果你玩过类似的游戏,那二分查找理解起来肯定很轻松啦,下面我们一起征服二分查找吧! 二分查找 二分查找也称折半查找( Binary Search),是一种在有序数组中查找某一特定元素的搜索算法。我们
......
186
0
0
2024-01-07
所谓负载均衡就是将外部发送过来的请求均匀或者根据某种算法分配到对称结构中的某一台服务器中。负载均衡可以分为硬件负载均衡和软件负载均衡,常见的硬件负载均衡有F5、Array等,但是这些设备都比较昂贵。相比之下,利用软件来实现负载均衡就比较简单了,常见的像是 Nginx 的反向代理负载均衡。这篇文章并不去细说 Nginx 这类软件的具体配置,只是着重来了解几种常
......
204
0
0
2024-01-07
对于很多刚接触编程的人来说,对于线程中断和线程阻塞两个概念,经常性是混淆起来用,单纯地认为线程中断与线程阻塞的概念是一致的,都是值线程运行状态的停止。其实这个观点是错误的,两者之前有很大的区别,下文就着重介绍两者之间的区别。线程中断在一个线程正常结束之前,如果被强制终止,那么就有可能造成一些比较严重的后果,设想一下如果现在有一个线程持有同步锁,然后在没有释放
......
219
0
0
2024-01-07
Synchronized 是常被我们用来保证临界区以及临界资源安全的解决方案。它可以保证当有多个线程访问同一段代码,操作共享数据时,其他线程必须等待正在操作线程完成数据处理后再进行访问。即 Synchronized 可以达到线程互斥访问的目的。所以,我们可以了解到,Synchronized锁代表的锁机制有如下两种特性:互斥型和可见性。互斥性:同一时间只允许一
......
247
0
0
2024-01-07
后端思维大家好,我是田螺。后端思维系列好久没更新啦~今天,终于来了。本文是田螺哥后端思维专栏的第7篇哈。最近工作中,我通过层层优化重复代码,最后抽出个通用模板.因此跟大家分享一下优化以及思考的过程。我会先造一个相似的例子,然后一步步带大家如何优化哈,看完一定会有帮助的。1. 优化前的例子在这里,我先给大家模拟一个业务场景哈,并给出些简化版的代码假设你有个对账
......
207
0
0
2024-01-07
前言大家好,我是田螺。日常开发中,我们经常会遇到一些重复冗余的代码。大家都知道重复代码不好,它主要有这些缺点:可维护性差、可读性差、增加错误风险等等。最近呢,我优化了一些系统中的重复代码,用了好几种的方式,感觉挺有用的。所以本文给大家讲讲优化重复冗余代码的几种方式~1. 抽取公用方法抽取公用方法,是最常用的代码去重方式~比如这个例子,分别遍历names列表,
......
197
0
0
2024-01-07
欢迎访问我的 GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):ffmpeg 、 java CPP、 JavaCV 的关系先简单的梳理一下FFmpeg、JavaCPP、JavaCV的关系: FFmpeg、 OpenCV 可以理解成C语言版的本地库(Native library), Java 应用无法直接使用JavaCPP将FFmpeg、OpenCV
......
258
0
0
2024-01-07
最近项目组安排了一个任务,项目中用到了全文搜索,基于全文搜索 Solr 但是该 Solr 搜索云项目不稳定,经常查询不出来数据,需要手动全量同步,而且是其他团队在维护,依赖性太强,导致 Solr 服务一出问题,我们的项目也基本瘫痪,因为所有的依赖查询都无结果数据了。所以考虑开发一个适配层,如果 Solr 搜索出问题,自动切换到新的搜索: Elasticsea
......
185
0
0
2024-01-07
干货长文预警!!! 从 Java 对象头说到即时编译优化说透synchronized底层原理,还怕不能吊打面试官吗?文章较长,建议收藏后观看。由于不支持目录索引,手动码上目录。一、两个好用却不被熟知的工具1.1、字节码查看插件(jclasslib Bytecode viewer)1.2、Java对象内存布局查看工具-JOL二、Java对象在内存中的存储布局2
......
197
0
0
2024-01-07
概述限流作为一种流量控制策略 (通常会和熔断、降级搭配在一起使用,来避免瞬时的大量请求对系统造成负荷,来达到保护服务平稳运行的目的)旨在维护系统的稳定性。然而,限流也带来了平衡用户满意度与系统稳定性之间的挑战。限流策略的核心意义: 限流是一种管理流量的方法,通过设置最大请求率或并发连接数,以防止系统被过多请求压垮。随着数字服务的普及,限流变得尤为重要,因为高
......
177
0
0
2024-01-07
1、背景Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片。Springboot更是封装了Spring,遵循约定大于配置,加上自动装配的机制。很多时候我们只要引用了一个依赖,几乎是零配置就能完成一个功能的装配。我非常喜欢这种自动装配的机制,所以在自己开发中间件和公共依赖工具的时候也会用到这个特性
......
178
0
0
2024-01-06
1、简介SpringBoot不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。在Spring-Boot项目开发中,存在着本模块的代码需要访问外面模块接口,或外部url链接的需求, 比如在apaas开发过程中需要封装接口在接口中调用apaas提供的接口(像发起流程接口submit等等)下面也是提供了
......
230
0
0
2024-01-06