摘要: 代理模式定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 来源《大话设计模式》 一:静态代理 扩展不方便,需要知道具体的目标类,下面例子实际就是母亲给儿子,儿子的eat方法之前或之后增加一些业务逻 阅读全文
posted @ 2019-08-06 15:07 Don'tYouSee 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 懒汉式式单例(Singleton) 优点:没有加锁,执行效率会提高。 缺点:类加载时就初始化,浪费内存。 不安全饿汉式(UnsafeLazySingleton ) 严格意义上它并不算单例模式。这种方式 lazy loading 很明显,不要求线程安全,在多线程不能正常工作。 安全饿汉式(SafeLa 阅读全文
posted @ 2019-08-01 17:48 Don'tYouSee 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 在集合框架里,想必都用过ArrayList和LinkedList,ArrayList和ArrayBlockingQueue一样,内部基于数组来存放元素,而LinkedBlockingQueue则和LinkedList一样,内部基于链表来存放元素。 队列常见的出队和入队方法 [ArrayBlockin 阅读全文
posted @ 2019-07-31 15:16 Don'tYouSee 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 自增(++):将变量的值加1,分前缀式(如++i)和后缀式(如i++)。前缀式是先加1再使用;后缀式是先使用再加1。 自减(--):将变量的值减1,分前缀式(如--i)和后缀式(如i--)。前缀式是先减1再使用;后缀式是先使用再减1。 我们先从问题入手: 代码运行后,i等于多少?j等于多少?k等于多 阅读全文
posted @ 2019-07-22 15:18 Don'tYouSee 阅读(2663) 评论(0) 推荐(0) 编辑
摘要: 什么是循环依赖?2个或以上bean 互相持有对方,最终形成闭环。 Spring容器怎么解决循环依赖的问题?之前看了一些相关文章,感觉还是一头雾水,最后还是在Spring源码中找到了答案,下面就来看下Spring解决循环依赖的大致流程。 DefaultSingletonBeanRegistry:单例b 阅读全文
posted @ 2019-07-17 14:46 Don'tYouSee 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 一: 红黑树(RB-Tree)概念 也是二叉查找树,我们知道,二叉查找树这一数据结构并不难,而红黑树之所以难是难在它是自平衡的二叉查找树,在进行插入和删除等可能会破坏树的平衡的操作时,需要重新自处理达到平衡状态。现在在脑海想下怎么实现?是不是太多情景需要考虑了?好吧,我们先来看下红黑树的定义和一些基 阅读全文
posted @ 2019-07-15 09:32 Don'tYouSee 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 服务限流 本文讨论的限流并非是网关层面的限流,而是业务代码中的逻辑限流。 常见的限流算法有:计数器、令牌桶、漏桶。 计数器算法 基于AtomicInteger 弊端:使用 AomicInteger 简单粗暴超过域值就拒绝请求,可能只是瞬时的请求量高,也会拒绝请求。 基于 Semaphore Sema 阅读全文
posted @ 2019-07-13 15:40 Don'tYouSee 阅读(925) 评论(0) 推荐(0) 编辑
摘要: @SpringBootApplication 本质上是由 3 个注解组成,分别是 1. @SpringbootConfiguration 它是 JavaConfig形式的基于 Spring IOC 容器的配置类使用的一种注解。因为 SpringBoot 本质上就是一个 spring 应用,所以通过这 阅读全文
posted @ 2019-07-04 14:37 Don'tYouSee 阅读(1044) 评论(0) 推荐(0) 编辑
摘要: 缓存:第一种是内存缓存 比如Map(简单的数据结构),以及EH Cache(Java第三方库),第二种是缓存组件比如Memached,Redis;Redis(remote dictionary server)是一个基于KEY-VALUE的高性能的存储系统,通过提供多种键值数据类型来适应不同场景下的缓 阅读全文
posted @ 2019-06-25 15:09 Don'tYouSee 阅读(235) 评论(0) 推荐(0) 编辑
摘要: Kafka的每个topic(主题)都可以分为多个Partition,并且多个 partition 会均匀分布在集群的各个节点下。虽然 这种方式能够有效的对数据进行分片,但是对于每个partition 来说,都是单点的,当其中一个 partition 不可用 的时候,那么这部分消息就没办法消费。所以 阅读全文
posted @ 2019-06-23 10:16 Don'tYouSee 阅读(1206) 评论(0) 推荐(0) 编辑