摘要: 静态代理是一种编译期增强,还没运行就已经知道增强的目标对象。 装饰者是运行时增强,只有运行时才知道具体增强的目标。 Code show time 静态代理: package com.zjt.test; interface Duck { void swim(); } class DuckImpl im 阅读全文
posted @ 2020-03-22 17:18 留一抹清风 阅读(1312) 评论(0) 推荐(0) 编辑
摘要: 众所周知,AspectJ可以通过@Before,@After,@Around等注解对连接点进行增强,今天我们来玩一个新注解@DeclareParents。对目标对象增强一个新方法。 场景引入: 现在我们有一个动物鸭子类,它有个游泳的函数,但是突然有一天我们需要给动物鸭子实现一个很好吃的食材属性。我们 阅读全文
posted @ 2020-03-21 17:42 留一抹清风 阅读(672) 评论(0) 推荐(0) 编辑
摘要: 一、对象何时能够进入老年代 GC年龄判定 每进行一次GC过程,存活的对象的GC年龄都会+1;当对象逃过15次GC,年龄达到15岁时,即可进入老年代 可以通过-XX:MaxTenuringThreshld来设置岁数,默认是15,一般不需要修改。 2. 动态对象年龄判定 当前使用的Survivor区存活 阅读全文
posted @ 2020-03-06 22:08 留一抹清风 阅读(715) 评论(0) 推荐(0) 编辑
摘要: 1.选择唯一性索引 唯一性索引的数据是唯一的,可以更快的通过该索引查询某条数据。 2.为经常需要排序,分组和联合操作的字段建立索引 order by,group by的字段在排序操作时很是耗时,可以对其加索引。 3.为经常作为查询条件的字段建立索引 4.限制索引的数量 过多的索引很是消耗数据库的性能 阅读全文
posted @ 2020-03-06 22:07 留一抹清风 阅读(690) 评论(0) 推荐(0) 编辑
摘要: 由于hystrix的停止更新,以及阿里Sentinel在历年双十一的贡献。项目中使用了Sentinel,今天我们来讲讲Sentinel的入门教程,本文使用1.6.3版本进行讲解 本文通过Sentinel_dashBoard进行讲解,当然不引入监控看板也能实现限流熔断降级功能,但是监控看板能够直观的看 阅读全文
posted @ 2019-08-25 15:38 留一抹清风 阅读(22979) 评论(2) 推荐(0) 编辑
摘要: 场景引入: 一个类,如果有多个属性时,在创建对象,如何对属性进行赋值呢? 1.通过构造器赋值,这种方案优点时一次性赋值完成,但是多种属性的组合,导致构造器会非常多。 2.通过setter方法赋值,方案优点代码直观简洁,缺点会出现javabean难一致的情况(多线程情况下); 今天,我们学习建造者模式 阅读全文
posted @ 2019-08-22 15:01 留一抹清风 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 场景引入: 小镇的咖啡馆生意越来越好了,但是来自不同地方的顾客也越来越多,有的人喜欢咖啡加糖,有的人喜欢咖啡加牛奶,有的喜欢加炼乳。。。 咖啡伪代码: 每次出一种新品种,都要在if..else if..后添加,违反了对开闭原则的,对修改关闭的原则。 我们可以尝试以下策略模式来解决这个问题。 1.声明 阅读全文
posted @ 2019-08-22 13:56 留一抹清风 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 场景引入 小镇上新凯乐一家咖啡厅,咖啡师的逻辑:烧水 -> 冲咖啡 ->将饮品倒进杯子里 -> 加糖或者牛奶等。 后来,店家发现人们还有一部分热衷于喝茶,这时客串的咖啡师:烧水 -> 泡茶叶 ->将饮品倒进杯子里 -> 加辅料等。 我们可以清晰的发现:烧水、将饮品倒进杯子的实现是一样的,并且操作的顺 阅读全文
posted @ 2019-08-22 10:00 留一抹清风 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 一 . 引入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc 阅读全文
posted @ 2019-08-16 22:51 留一抹清风 阅读(603) 评论(0) 推荐(0) 编辑
摘要: 众所周知,.java文件需要经过编译生成.class文件才能被JVM执行。 其中,JVM是如何加载.class文件,又做了些什么呢? .class文件通过 加载-》验证-》准备-》解析 等过程,加载到方法区中,等待代码的调用,下面讲讲每个步骤都干了些什么吧 一、加载 将.class文件加载到jvm中 阅读全文
posted @ 2019-08-05 11:21 留一抹清风 阅读(1611) 评论(0) 推荐(0) 编辑