11 2018 档案

摘要:1.只是想开异步线程的功能, 非要用观察者模式,代码可读性差,找业务逻辑只能靠ide 的 find查找。 阅读全文
posted @ 2018-11-30 17:20 尘埃代码 阅读(176) 评论(0) 推荐(0) 编辑
摘要:事件监听模式更像是观察者模式的进阶。 观察者模式中,‘主题’会在特定逻辑下通知所有‘观察者’。如果这个通知不包含任何信息,那么这种实现就是通常的观察者模式。 如果‘主题’通知‘观察者’的过程带有一些<其他信息>。那么‘主题’本身已经上升成为了‘事件源’,而通知中带有的<其他信息>经过封装就成为了事件 阅读全文
posted @ 2018-11-30 16:02 尘埃代码 阅读(1738) 评论(0) 推荐(0) 编辑
摘要:策略模式是把策略(或者说是算法)从类中抽离出来 多个算法之前是兄弟关系,在要使用这些策略的类中组合这些策略的公共接口 可以选择在初始化时指定策略,也可以在运行时set不同的策略 策略模式的重心不是如何实现算法,而是如何组织、调用这些算法 策略模式在JDK中的应用: 在多线程编程中,我们经常使用线程池 阅读全文
posted @ 2018-11-25 17:55 尘埃代码 阅读(269) 评论(0) 推荐(0) 编辑
摘要:1.不要把程序中可能需要变化的部分和不需要变化的部分耦合在一起。 2.针对接口或者抽象类编程,而不是针对实现(接口可以有多个不同的实现,运行时选择正确的实现)。 3.多用组合,少用继承(组合比继承灵活性强很多很多)。 阅读全文
posted @ 2018-11-25 17:38 尘埃代码 阅读(176) 评论(0) 推荐(0) 编辑
摘要:默认方法允许接口方法定义默认实现,子类方法不必须实现此方法而就可以拥有该方法及实现。如下: 默认方法的优势 默认方法主要优势是提供了一种扩展接口的方法,而不破坏现有代码。如果一个已经投入使用的接口需要扩展一个新的方法,在JDK8以前,我们必须再该接口的所有实现类中都添加该方法的实现,否则编译会出错。 阅读全文
posted @ 2018-11-23 15:40 尘埃代码 阅读(1591) 评论(1) 推荐(0) 编辑
摘要:抽象类 抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。以JDK中的GenericServlet为例: public abstract class GenericServlet implements Servlet, ServletC 阅读全文
posted @ 2018-11-23 15:29 尘埃代码 阅读(593) 评论(0) 推荐(0) 编辑
摘要:Comparable Comparable可以认为是一个内比较器,实现了Comparable接口的类有一个特点,就是这些类是可以和自己比较的,至于具体和另一个实现了Comparable接口的类如何比较,则依赖compareTo方法的实现,compareTo方法也被称为自然比较方法。如果开发者add进 阅读全文
posted @ 2018-11-22 10:56 尘埃代码 阅读(200) 评论(0) 推荐(0) 编辑
摘要:结果: json转换 深拷贝 效率比序列化高些 使用cglib.beans.BeanCopier 代理实现 传说效率更高之后研究。 阅读全文
posted @ 2018-11-21 15:25 尘埃代码 阅读(3193) 评论(0) 推荐(0) 编辑
摘要:clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有几种方式可以创建对象呢? 1 使用new操作符创建一个对象 2 使用clone方法复制一个对象 那么 阅读全文
posted @ 2018-11-21 15:17 尘埃代码 阅读(803) 评论(0) 推荐(0) 编辑
摘要:1.用静态工厂代替构造器 有名字好理解 2.构造器多个参数的时候用builder 3.私有化构造器来强化单例和不可实例化的能力 4.计算的时候用long int 而不是 Long(包装类) 使用String = "123" 而不是 new String("123") 因为创建了无用对象 for循环时 阅读全文
posted @ 2018-11-21 10:35 尘埃代码 阅读(129) 评论(0) 推荐(0) 编辑
摘要:当符合以下条件时不需要重写equals方法: 1. 一个类的每一个实例本质上都是唯一的。 2. 不关心一个类是否提供了“逻辑相等”的测试功能 3. 超类已经改写了equals方法,并且从超类继承过来的行为对于子类也是合适的。 4. 一个类时私有的或者是package私有的,并且可以确定它的equal 阅读全文
posted @ 2018-11-20 16:27 尘埃代码 阅读(1575) 评论(0) 推荐(0) 编辑
摘要:drop table tb --tb表示数据表的名字,下同 删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。 truncate table tb 删除内容、释放空间但不删除定义。与drop不同的是,他只是清空表数据而已。 delete table tb 阅读全文
posted @ 2018-11-20 09:30 尘埃代码 阅读(873) 评论(0) 推荐(0) 编辑
摘要:/** * 构建失败结果 * * @param code 错误码,参见{@link ResultEnum} * @param message 错误描述 * @return */ public static Result buildFailResult(int code, String message) { ... 阅读全文
posted @ 2018-11-20 09:13 尘埃代码 阅读(3209) 评论(0) 推荐(0) 编辑
摘要:服务消费者:荻取一个服务, 并且该服务有两个实例。 当我们启动服务消费者的时候,它会发送 一 个REST请求给服务注册中心,来获取上面注册的服务清单 。为了性能考虑, EurekaServer会维护 一 份只读的服务清单来返回给客户端,同时该缓存清单会每隔30秒更新一次。获取服务是服务消费者的基础, 阅读全文
posted @ 2018-11-12 15:39 尘埃代码 阅读(169) 评论(0) 推荐(0) 编辑
摘要:https://start.spring.io/ 阅读全文
posted @ 2018-11-12 12:48 尘埃代码 阅读(164) 评论(0) 推荐(0) 编辑
摘要:log4j2配置文件模板(带详细注释) 阅读全文
posted @ 2018-11-06 22:06 尘埃代码 阅读(1621) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示