请允许在我们的网站上展示广告
您似乎使用了广告拦截器,请关闭广告拦截器。我们的网站依靠广告获取资金。
我已知悉
文章发布订阅~
通过邮箱订阅文章更新,您将在文章发布时收到及时的邮件提醒~
邮箱
昵称
订阅
关闭
首页
专栏
橙Bot
动态
图库
留言板
友链
1
Java如何优雅地创建不可变集合?
2
为什么IDEA不建议使用append拼接字符串?
3
Java为啥不用UTF-8解析properties文件?
4
为什么反射不再是java的最佳选择?
5
全面解析 JDK 9 新特性:模块化、性能优化与全新 API
橙序员
累计撰写
217
篇文章
累计创建
70
个标签
累计收到
4
条评论
栏目
首页
专栏
橙Bot
动态
图库
留言板
友链
搜索
标签搜索
JDK
响应式编程
R2DBC
小说
成长
公众号
事务
流处理
大数据
旅行
mongo db
SUNO
github
IDEA
安全
注解
总结
求职
分布式事务
CAP
分布式系统
loadbalancer
装修
买房
前端
方案设计
AIGC
JVM
资讯
Netty
NIO
BIO
zookeeper
RocketMQ
MySQL
stable diffusion
spring MVC
spring AOP
JDBC
mybatis
logback
docker
consul
spring event
新冠
连接池
redis
运维
nginx
hiper-v
DDD
搞笑
数据库
团建
游戏
Gradle
心情
好物
eureka
spring framework
spring boot
设计模式
apache common
ShardingSphere
KAFKA
leetcode
spring cloud
feign
ES
起点
目 录
CONTENT
以下是
开发技巧
相关的文章
2022-09-04
行为型设计模式实战【四】-模板、访问者
模板方法模式是一种定义一个算法的骨架,让子类可以重新定义算法的某些步骤的设计模式。优点包括封装不变部分、扩展可变部分、提取公共代码、行为由父类控制等,适用于多个子类有公共方法且逻辑相近、重要复杂的算法等场景。但是模板方法模式也存在缺点,如子类影响父类结果、代码阅读难度等。角色包括抽象类和具体类,父类调用子类方法的方法有限制,推荐曲线救国的方式实现父类依赖于子类的场景。以一个简单的展示程序为例,展示了模板方法模式的实现过程。
2022-09-04
747
0
0
开发技巧
2022-09-03
行为型设计模式实战【三】-观察者、策略、状态
观察者模式是定义对象间一种一对多的依赖关系,当一个对象状态改变时,所有依赖它的对象都得到通知并更新。优点是抽象耦合易于扩展,缺点是开发效率、运行效率可能受影响。常见场景包括文件系统、猫鼠游戏、ATM取钱、广播收音机等。角色包括观察对象、具体观察对象、观察者、具体观察者。Spring实现中可以通过抽象类和接口实现观察者模式,示例程序展示了观察者会生成数值对象,并以不同方式显示数值。如DigitObserver以数字形式显示,GraphObserver以图示形式显示。观察者模式在实际项目中应用广泛。
2022-09-03
793
0
0
开发技巧
2022-08-28
行为型设计模式实战【二】-迭代器、中介者、备忘录
迭代器模式是一种可以顺序访问集合元素的设计模式,在该模式中包含了迭代器、具体迭代器、集合和具体集合等角色。迭代器模式已经融入到Java的基本API中,使得程序设计更加轻松便捷。使用迭代器模式可以避免自己编写迭代器,而直接使用Java提供的Iterator接口来满足需求。在一个示例程序中,通过实现迭代器模式,将书放入书架并按顺序显示书的名字。通过Iterator接口、BookShelf、BookShelfIterator、Book等组件的实现,实现了迭代器模式的具体功能。迭代器模式在各个聚集类中得到了广泛的应用,包括List、Queue、Set等。通过迭代器模式的应用,实现了集合元素的顺序访问和展示。
2022-08-28
770
0
0
开发技巧
2022-08-27
行为型设计模式实战【一】-责任链、命令、解释器
本文介绍了行为型设计模式中的责任链模式,该模式定义了多个对象有机会处理请求,从而避免了请求发送者和接收者之间的耦合关系。文章详细介绍了责任链模式的优缺点和注意事项,并给出了在Spring框架中的实现示例。通过具体的代码示例,展示了如何使用责任链模式来处理不同类型的问题,通过规定不同的处理者针对不同类型的问题进行处理。在实现过程中,定义了处理者、具体处理者和请求者三种角色,并给出了相应的代码实现。通过责任链模式,实现了对问题的解决过程进行屏蔽,请求者只需要将请求发送给责任链的第一个处理者,最终会得到处理结果。责任链模式的核心是解耦请求发送者和接收者,同时也可以作为一种补救模式来使用。
2022-08-27
711
0
0
开发技巧
2022-08-21
结构型设计模式实战【二】-外观、享元、代理、装饰器
外观/门面模式提供了一个统一的高层次接口,使得子系统更易于使用,减少了系统的相互依赖,提高了灵活性和安全性。然而,其缺点是不符合开闭原则,对系统修改比较困难。使用场景包括复杂模块或子系统的外界访问、预防低水平人员带来的风险等。最佳实践是将复杂系统封装为一个门面,提高项目结构简单性和扩展性。在示例中,通过多个角色完成从邮件中获取用户名字的数据库类、编写html文件的类以及提供高层接口的窗口类,展示了门面模式在实际应用中的作用。通过门面模式的使用,可以约束项目成员的代码质量,提升整体项目质量。
2022-08-21
735
0
0
开发技巧
2022-08-21
spring cloud组件介绍
spring-cloud是一个用于构建和管理分布式系统的常用实用程序项目,其中包括了各种组件和工具。其中涵盖了插件和依赖管理的spring-cloud-build、节点与消息代理连接的spring-cloud-bus、断路器防止服务雪崩的spring-cloud-circuitbreaker等等。这些组件提供了一致的开发人员体验,可以轻松构建连接外部系统的应用程序。同时,还提供了任务调度功能、外部化配置支持等,可以帮助开发人员更好地管理和运行分布式系统。总体而言,spring-cloud为开发人员提供了丰富的功能和工具,使他们能够更加高效地构建和管理分布式系统。
2022-08-21
772
0
0
开发技巧
2022-08-20
结构型设计模式实战【一】-适配器, 桥接与组合
结构型设计模式包括适配器模式、桥接模式、组合模式、外观模式、享元模式、代理模式、装饰器模式。适配器模式用于转换类的接口,使得原本不兼容的接口可以协同工作。适配器模式的优点在于增加类的透明性、提高复用度和灵活性。适配器模式适用于修改已投产接口、系统扩展使用新类等情况。桥接模式将类的抽象部分和实现分离,实现了抽象和实现的解耦及扩展能力。桥接模式适用于不适用继承、接口或抽象类不稳定的场景。总体而言,结构型设计模式可以有效提高系统的灵活性和扩展性,在实际应用中能解决接口不兼容、需求变更等问题。
2022-08-20
788
0
0
开发技巧
2022-08-14
创建型设计模式实战-工厂、单例、建造者
创建型设计模式包括工厂模式、抽象工厂模式、单例模式、建造者模式和原型模式,其中使用Spring实现创建型模式时需要了解bean的作用域。在Spring中,singleton指的是每次从同一个IOC容器中返回同一个bean对象,而prototype每次返回一个新的实例。另外,session作用范围更长,application作用范围更广,websocket在整个WebSocket中有效。单例模式的优点是减少内存开支和系统性能开销,但扩展困难、对测试不利,与单一职责原则冲突。适用场景包括需要唯一对象的环境、共享访问点或数据、资源消耗过多等。在Spring中,默认情况下bean是单例的,也可以通过@Configuration注解指定单例生成器。通过单例控制器示例,验证两个bean是否为同一实例。最佳实践是在需要唯一实例的情况下采用单例模式,如在Spring中每个Bean默认都是单例。
2022-08-14
794
0
0
开发技巧
2022-08-06
Apache Common 的简单介绍
Apache Commons组件是一个提供可重用Java组件列表的开源项目,旨在为Java开发者提供丰富实用的组件库。其中包括众多常用组件,如BCEL、BeanUtils、BSF、CLI、Collections、Compress等,涵盖了字节码处理、反射、命令行解析、集合框架、文件处理、加密库、数据库连接池等功能。这些组件不仅提供了易于使用的API和丰富的功能实现,还大大简化了Java开发过程中的常见任务。通过Apache Commons组件,开发者可以更高效地实现各种功能,提高代码重用性和开发效率。Apache Commons组件的涵盖面广泛,涉及到了各个方面的Java开发需求,为Java开发者提供了丰富的选择和强大的支持。
2022-08-06
1022
0
0
开发技巧
2022-08-02
ShardingSphere简单介绍
Apache ShardingSphere是一个由JDBC、Proxy和Sidecar组成的产品,支持独立部署和混合部署。ShardingSphere-JDBC是一个轻量级Java框架,提供额外服务,适用于任何基于JDBC的ORM框架。ShardingSphere-Proxy是一个数据库代理端,透明化提供服务,支持MySQL/PostgreSQL协议的客户端。ShardingSphere-Scaling是一个通用数据接入迁移和弹性伸缩解决方案。ShardingSphere-Sidecar是一个云原生数据库代理。ShardingSphere提供多种功能点,兼容多种数据库,支持熔断和限流等。数据分片提供标准分片算法、复合分片算法和Hint分片算法等。支持本地事务、XA事务和柔性事务,以及读写分离和高可用等特性。ShardingSphere-Scaling支持数据迁移和扩缩容,但不支持无主键表扩缩容。数据加密、影子库、可观察性等功能也得到支持。Sharding Proxy提供数据分片策略和分片操作支持。
2022-08-02
862
0
0
开发技巧
2022-07-27
KAFKA 简单介绍
Kafka是一个消息队列系统,提供了发布和订阅、容错存储和消息处理功能。核心API包括producer API、consumer API、streams API和connector API。消息以topic的形式发布,并在不同的分区中保存,每个分区都有唯一的偏移量。消费者通过消费者组来订阅消息,可以实现队列和发布-订阅两种模型。Kafka集群由多个代理(Broker)组成,消费者可以从Broker拉取消息。与传统消息系统相比,Kafka具有更强的顺序保证和负载均衡功能,可以实现并行处理和顺序消费数据,提高系统性能和可靠性。
2022-07-27
778
0
0
开发技巧
2022-07-27
KAFKA 生产者&消费者配置详解
本文详细介绍了Kafka生产者的配置属性,包括配置名称、描述、类型、默认值、有效值和重要性。其中包括了连接属性、序列化器、消息确认数、内存大小、数据压缩类型、重试次数、SSL相关配置、批量大小、客户端id等。通过配置这些属性,可以控制生产者与Kafka集群的连接、消息发送的可靠性、性能优化以及安全性等方面。建议用户在使用Kafka生产者时根据实际需求配置这些属性,以达到最佳的生产者性能和消息传递效果。
2022-07-27
849
0
0
开发技巧
2022-07-20
【leetcode】刷题笔记-数据结构篇
数据结构两数之和问题是一个经典的哈希表应用案例,通过使用哈希表可以将寻找目标值的时间复杂度从O(N)优化为O(1),在给定整数数组和目标值后,可以快速找到和为目标值的两个整数的数组下标。罗马数字转整数涉及罗马数字的规则和映射,通过哈希表存储罗马字符和对应数值的映射关系,实现将罗马数字转换为整数的功能。存在重复元素问题通过哈希表判断数组中是否存在重复元素,将每个元素插入哈希表,并在插入时检查是否已存在,来确定是否有重复元素。两数相加问题则是链表的数值相加运算,需要逆序存储每位数字,并考虑进位的情况,最终返回表示和的链表。这些问题都充分展示了哈希表在解决数据结构问题中的灵活应用。
2022-07-20
744
0
0
开发技巧
2022-07-19
ELASTIC SEARCH分页查询探究
本文总结了在使用Elasticsearch进行分页查询时的三种方式:from + size分页、scroll分页和search after分页。其中,from + size适合数据量不大的情况,但在深度分页时效率低下,可能导致集群崩溃;scroll分页适用于全量读取数据的后台任务,不适合实时场景;search after方式在es5.x版本后出现,更好地解决了scroll的缺点,适合实时请求和高并发场景。作者建议根据实际情况选择合适的分页方式,同时指出在使用from + size分页时需要注意使用collapse和aggregation函数来优化查询效率,并指出了具体的代码示例。文章还介绍了如何根据时间范围截取索引和获取索引分片等技巧。
2022-07-19
1010
0
0
开发技巧
2022-07-19
ELASTIC SEARCH的简单介绍和使用
Elasticsearch是一个分布式、可扩展、近实时的搜索与数据分析引擎,底层使用了Lucene。ES集群由数据节点和主节点构成,数据节点负责存储数据,主节点负责管理集群。ES支持分片和副本,倒排索引提高了搜索速度。ES客户端包括Jest client、Rest client、Transport client、Node client,各有优缺点。Spring Boot集成ES需要根据版本匹配,spring data elastic search提供了方便的查询模块。总的来说,ES是一种强大的全文搜索引擎,适用于处理大规模数据的搜索和分析工作。
2022-07-19
1127
0
4
开发技巧
1
2
3
4
5