logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

设计模式结合场景(1)——支付场景(策略+工厂+模板)

面试官:你们项目的支付场景用了哪些设计模式,为什么要这么做?一、背景 二、方案三、UML类图 四、代码实现 4.1 Payment——支付接口 4.2 Alipay、WeChatPay——支付具体策略 4.3 PaymentFactory——支付工厂4.4 PaymentTemplate——抽象模板4.5 WeChat、AlipayTemplate——具体模板4.6 test 五、总结

文章图片
#设计模式#java#面试 +3
Redis第14讲——Redis实现分布式锁(Redission源码解析)

在多线程环境下,为了保证数据的线程安全,我们通常用加锁的方式,使同一时刻只有一个线程可以对这个共享资源进行操作,在单服务系统我们常用JVM锁——Synchronized、ReentrantLock等。然而在多台服务系统的情况下,JVM锁就无法在多个服务器之间生效了,这时候我们就需要用分布式锁来解决线程安全的问题。分布式锁的实现方式有很多,主流的就是基于数据库、zookeeper以及redis,当然

文章图片
#面试
八种分布式ID解决方案

在复杂的分布式系统中,往往需要对大量的数据进行唯一标识,如在金融、电商、支付等产品的系统中,随着数据的日益增长,数据库的自增ID显然不能作为某个订单的唯一标识。除此之外还有其他分布式场景对分布式ID有一些要求,本文针对多中方案进行介绍,包括UUID、数据库自增ID、号段模式、Reids INCR、Twitte(雪花算法)、滴滴(TinyID)、美团(Leaf)、百度(Uidgenerator)。

文章图片
#分布式#数据库#github +1
Java并发编程第5讲——volatile关键字(万字详解)

本篇文章从volatile的定义谈起,由于volatile与Java内存模型有较多的关联,所以接着介绍Java内存模型的相关概念、线程、主内存和工作内存之间的关系以及内存间的交互规则;随后详细介绍了volatile和synchronized在Java并发编程的三大特性——原子性、可见性和有序性中的表现(重点介绍volatile)。最后介绍了一下“重排序”、“内存屏障”和“先行发生原则(happen

文章图片
#java
Redis第17讲——Redis zset结构实现滑动窗口限流

滑动窗口限流是一种流量控制策略,用于控制在一定时间内允许执行的操作数量或请求频率。它的工作方式类似于一个滑动时间窗口,对每个时间窗口的请求数量进行计数,并根据预先设置的限流策略来限制或调节流量,通常包括以下几个要素:

文章图片
#redis#缓存#面试
Redis第3讲——跳跃表详解

在Redis中,跳跃表是有序集合(zSet)数据类型的实现之一,也在集群节点中用作内部数据结构,除此之外,跳跃表在Redis里面没有其它用途。跳跃表支持O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点,在大部分情况下,跳跃表的效率可以和红黑树、AVL树不相上下,但跳表原理更加简单、实现起来也更简单直观。

文章图片
#redis#面试
设计模式第11讲——外观模式(Facade)

外观模式(门面模式)是一种结构型设计模式。一、什么是外观模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现 5.0 UML类图 5.1 外观(Facade)——旅行社预定服务5.2 子系统(SubSystem)5.3 外观实现类5.4 TestFacade——客户端六、总结

文章图片
#设计模式#外观模式#java +1
设计模式第18讲——中介者模式(Mediator)

中介者模式是一种行为型设计模式,它主要用于减少对象之间互相通信的复杂性。一、什么是中介者模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景五、代码实现 5.0 UML类图 5.1抽象中介者(Mediator)——LogisticsCenter5.2抽象同事类(Colleague)——Participant5.3具体同事类(Concrete Colleague)Tr

文章图片
#设计模式#中介者模式#java +1
设计模式第22讲——访问者模式(Visitor)

访问者模式是一种行为型设计模式,它可以用于在不修改已有对象结构的情况下,定义新的操作方式。一、什么是访问者模式 二、角色组成 三、优缺点 四、 应用场景 4.1 生活场景4.2 Java场景 五、代码实现 5.0 UML类图5.1抽象访问者——Visitor5.2 具体访问者——Tourist5.3 抽象元素——Spot5.4 具体元素——View、Relic5.5 对象结构——SpotColle

文章图片
#设计模式#访问者模式#java +1
Redis第2讲——Java三种客户端(Jedis、Lettuce和Redisson)

上篇文章介绍了Redis的9种数据类型和常命令、7种数据结构和9种编码方式。但是如果想要把它应用到项目中,我们还需要一个redis的客户端。redis的Java客户端种类还是很多的,其中使用最广泛的有三种——Jedis、lettuce和redisson,下面我们一起来学习下。基于redis开放的通信协议,大神们纷纷开发出了各种语言的redis客户端,包括C、C++、C#、D、java、Python

文章图片
#redis#java#面试
    共 34 条
  • 1
  • 2
  • 3
  • 4
  • 请选择