java
melody_wkx
这个作者很懒,什么都没留下…
展开
-
PriorityQueue优先级队列使用过程中数据变更问题
在一次开发过程中,由于业务查询返回数据为一个list,需要根据每个list中内容某些字段进行排序后返回给业务使用,而业务使用过程中需要一个遍历list一个个去尝试发送消息,直到发送成功。这里首先想到的是用到Queue的数据结构,这样业务使用时每次都直接poll()取头数据即可,直到取不到数据为止。之所以想到Queue结构,是认为这样业务处理简单,每次取完数据,均不需要记录当前的次数,因为队列的结...原创 2020-03-05 20:05:37 · 2375 阅读 · 1 评论 -
java性能分析指南
原创 2019-11-04 10:32:41 · 172 阅读 · 0 评论 -
责任链模式
为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。在责任链模式中,客户只需要将请求发送到责任链上即可,无须关心请求的处理细节和请求的传递过程,所以责任链将请求的发送者和请求的处理者解耦了优缺...原创 2019-09-12 15:58:06 · 232 阅读 · 0 评论 -
代理模式
为其他对象提供了一种代理以控制对这个对象的访问.代理对象在客户端和目标对象之间起到中介作用,属于结构性模式。目的保护对象增强目标对象Subject是顶层接口;RealSubject是真实对象(被代理对象)Proxy是的代理对象,代理对象持有被代理对象的引用,客户端调用代理对象的方法,同时也调用被代理对象的方法,但是会在代理对象前后增加一些处理逻辑.一般分为静态代理和动态代...原创 2019-09-10 22:07:21 · 242 阅读 · 0 评论 -
享元模式
又称为 轻量级模式,它是一种对象结构型模式面向对象技术可以很好地解决一些灵活性或可扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。享元模式 正是为解决这一类问题而诞生的。享元模式 是对象池的一种实现。类似于线程池,线程池可以避免不停的创建和销毁多个对象,消耗性能。享元模式 也是为了减少内存的使用,避免出现大量重复的创建销毁对象...原创 2019-09-10 19:58:32 · 577 阅读 · 0 评论 -
门面模式
门面模式也叫外观(Facade)模式,外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用客户端不与系统耦合,外观类与系统耦合实现细节Shape:系统角色...原创 2019-08-02 19:08:57 · 162 阅读 · 0 评论 -
适配器模式
适配器模式作为两个不兼容的接口之间的桥梁。结构性模式,结合了两个独立接口的功能。有一个电器的插头是三脚的,而现有的插座是两孔的,要使插头插上插座,我们需要一个插头转换器,这个转换器即是适配器。适配器模式分为三类:类适配器、对象适配器、接口适配器(或又称作缺省适配器模式)把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作实现细节源(A...原创 2019-08-02 19:03:07 · 132 阅读 · 0 评论 -
装饰器模式
装饰器模式也叫包装器模式,降低系统的耦合度,可以动态的增加或者删除对象的职责,并使得需要装饰的具体构建类和具体装饰器类可以独立变化,以便增加新的具体构建类和具体的装饰器类链接动态的为一个对象增加新的功能装饰器模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀实现细节Component抽象构件角...原创 2019-08-02 18:51:16 · 144 阅读 · 0 评论 -
Spring cloud config配置中心
文章目录mq实现配置下发原理git hook配置服务端实现依赖application配置启动类实现客户端实现依赖bootstrap配置mq实现配置下发原理spring-cloud-config-server本身不包含自动刷新的功能,这里借助spring-bus消息总线结合rabbitmq的方法实现。其中bus中提供了/bus/refresh接口,调用该接口可以配置下发的功能(其原理就是借助...原创 2019-07-23 16:13:46 · 299 阅读 · 0 评论 -
springboot详解--自定义配置文件
文章目录1.5.x之前的版本1.5.x之前的版本在此之前的版本中,spring-boot的locations属性可以正常使用,即可以使用其指定配置文件的路径。配置类需要与配置文件中的属性相同:我们可以使用如下配置类接收配置文件中的数据。/** * 加载yaml配置文件的方法,生成 * spring-boot更新到1.5.2版本后locations属性无法使用 * @Property...原创 2019-05-13 10:31:50 · 338 阅读 · 0 评论 -
springboot详解--配置类与自动配置
文章目录xml配置与javaconfig的对比1. 基于表达成面:2. 注册bean定义成面3. 表达依赖注入关系层面javaconfig配置类的几种实现方式自动配置FAQxml配置与javaconfig的对比1. 基于表达成面:基于xml的配置:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://w...原创 2019-05-13 00:16:49 · 3703 阅读 · 1 评论 -
springboot详解--自定义注解
新增注解接口与新建class、interface一样,新建@interface即可。形如下:@Retention(RetentionPolicy.RUNTIME)@Documented@Target(ElementType.TYPE)@Import(MmmAutoConfiguration.class)public @interface EnableMmmClient {}@Re...原创 2019-05-12 17:29:11 · 522 阅读 · 0 评论 -
springboot详解--常用注解
1. @SpringBootApplication申明让spring boot自动给程序进行必要的配置,等价于以默认属性使用@Configuration、@EnableAutoConfiguration、@ComponentScan2. @RestController返回json字符串的数据,直接可以编写RESTFul的接口3. @ComponentScan告诉Spring 哪个pac...原创 2019-05-12 16:40:17 · 217 阅读 · 0 评论 -
spring-boot-redis-starter源码分析
spring-boot-redis-starter源码分析文章目录spring-boot-redis-starter源码分析RedisAutoConfiguration自动配置类,redis链接工厂以及哨兵等监听RedisTemplate执行操作时的链接建立过程commons-pool2池化技术GenericObjectPool.borrowObject()大体思路如下Redis链接释放过程R...原创 2019-05-07 16:58:36 · 1045 阅读 · 0 评论 -
Tomcat日志
TOMCAT 日志配置说明 Tomcat日志信息分为两类 1) 运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息。 2)访问日志信息,它记录的访问的时间,IP,访问的资料等相关信息。Tomcat运行日志的等级 1)日志类型与级别 Tomcat日志分为下面5类: catalina、localhost、manage、admin、host-manage 2) 每类日志原创 2017-10-11 09:06:35 · 461 阅读 · 0 评论 -
java读取xml和property配置文件的方法
在软件开发过程中,有很多时候会有配置项的设置,通常配置项均是以key-value键值对的形式出现的,而比较常用的配置文件为Property和XML两种。XML配置文件解析-DOM有以下配置文件config.xml,里面配置了不同的系统参数,类似于key-value的形式。<?xml version = "1.0" encoding="UTF-8"?><switch> <config ke原创 2017-06-14 11:46:05 · 7385 阅读 · 0 评论 -
多态
向上类型转换 对象既可以作为它自己本身的类型使用,也可以作为它的基本类型使用。这种吧对某个对象的引用视为对其基类型的引用的做法被称为向上类型转换—因为在继承树的画法中,基类放置在上方。看下面的例子:enum Note{ MIDDLE_C,C_SHARP,B_FLAT;}class Instrument{ public void Play(Note n) {原创 2017-05-23 19:52:53 · 917 阅读 · 0 评论 -
简单工厂模式
下班了,我们去食堂吃饭,食堂中有各色各样的菜色供大家选择,大家可以根据自己的口味选择不同的菜,而无论你选什么菜都是在这一个食堂被做出来的,这时候,“食堂”就是一个简单工厂。UML图从上图可以看出,工厂是具体的,Product是抽象的,里面的方法operation是virtual的,它的三个子类是具体的,子类中的operation覆盖父类的方法operation。 Factory能够根据客户的请求原创 2017-05-25 18:45:30 · 287 阅读 · 0 评论 -
java复用类
复用类fianl关键字三种情况:数据、方法和类final数据 1 、一个永不改变的编译是变量。 2、一个在运行时被初始化的值,该值不希望被改变。在java中,这类变量必须是基本数据类型,并且是以关键字final表示,定义的时候必须对其进行赋值。 一个既是static又是final的域只很真哪句一段不能改变的存储空间。 对于基本类型,final使数值恒定不变;而对于对象引用,final原创 2017-05-20 15:36:16 · 431 阅读 · 0 评论