javase
_小尾寒羊
梦想要有,放在心里,现实需要面对,行动起来!
展开
-
java中为final变量赋值的几种方式
java中为final变量赋值的几种方式前言使用final修饰变量,很多人第一时间想到的就是不可变。然后以为变量必须得在声明的时候就为其赋初始值,其实不然,本文将详细讲解java中使用final修改的变量的赋值问题。被final修饰的变量的几种赋值方式1、被final修饰的变量有三种赋值方式。2、被final static修饰的变量有两种赋值方式。储备知识:在类的加载中,类的加载顺...原创 2019-04-09 18:48:46 · 9071 阅读 · 1 评论 -
经典设计模式之状态模式
一、什么是状态模式状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。二、状态模式应用场景1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。2.操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。这个状态通常用一个或多个枚举常量表示。 通常,有多个操作包含这一相同的条件结构。State模式将每一个条件分支放...原创 2019-06-11 20:19:20 · 155 阅读 · 0 评论 -
经典设计模式之适配器模式【Mybatis日志框架源码分析】
一、什么是适配器模式适配器模式就是将一个系统的接口转换成另外一种形式,从而使原来不能直接调用的接口变得可以调用。二、设计模式角色划分设计模式涉及三个角色:源(Adaptee):需要被适配的对象或类型,这里相当于插头。适配器(Adapter):连接目标和源的中间对象,相当于插头转换器,新版本与老版本能够实现兼容。这里相当于插头转换器。目标(Target):期待得到的目标。这里相当于...原创 2019-06-16 23:02:21 · 284 阅读 · 0 评论 -
经典设计模式之观察者模式
一、什么是观察者模式原创 2019-06-04 13:47:25 · 215 阅读 · 0 评论 -
经典设计模式之外观设计模式【门面模式】
一、什么是外观设计模式外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。二、外观设计模式原理图简单来说,该模式就是把一些复杂的流程封装成一个接口供给外部用户更简单的使用。这个模式中,设计到3个角色。1)门面角色:外观模式的核心...原创 2019-06-09 17:29:52 · 183 阅读 · 0 评论 -
经典设计模式之单例模式
一、什么是单例模式单例模式确保一个类只有一个实例,并提供一个全局访问点,实现单例模式的方法是私有化构造函数,通过getInstance()方法实例化对象,并返回这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。二、单例模式的特点单例类只能有一个实例。单例类必须自己创建自己唯一的实例。单例类必须给所有其它对象提供这一实例。三、单例...原创 2019-06-18 22:09:19 · 185 阅读 · 0 评论 -
纯手写JDK动态代理【深入了解Proxy类底层实现】
一、JDK动态代理原理分析1、在使用jdk动态代理的时候,必须要实现InvocationHandler接口public class JdkInvocationHandler implements InvocationHandler { /** * 被代理对象,目标对象 */ private Object target; public JdkIn...原创 2019-05-26 17:17:05 · 402 阅读 · 0 评论 -
经典设计模式之代理模式【买房找中介】
一、什么是代理模式为其他对象提供一种代理以控制对这个对象对访问。二、为什么要使用代理模式中介隔离:在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口。开闭原则,增加功能代理类除了是客户类和委托类的中介之外,我们还可以通过给代理类增加额外的功能来扩展委托类的功能,这样做我们只需要修改代理类...原创 2019-05-26 14:45:54 · 606 阅读 · 0 评论 -
经典设计模式之装饰者模式【万丈高楼平地起,从建筑师角度去说明】
1、什么是装饰者模式 装饰者模式就是在不改变原有对象的基础上附加功能,相比生成子类更灵活。原创 2019-05-21 20:19:29 · 220 阅读 · 0 评论 -
经典设计模式之责任链模式【给网关设计一款专属的权限控制】
1、什么是责任链设计模式 客户端发出一个请求,链上的对象都有机会来处理这一请求,而客户端不需要知道谁是具体的处理对象。这样就实现了请求者和接受者之间的解耦,并且在客户端可以实现动态的组合职责链,使编程更有灵活性。 定义:使多个对象都有机会处理请求,从而避免...原创 2019-05-15 22:46:25 · 486 阅读 · 0 评论 -
经典设计模式之模板方法模式【聚合支付平台使用模板+工厂实现异步回调】
1、什么是模板方法设计模式 1.定义了一个操作中的算法的骨架,而将部分步骤的实现在子类中完成。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 2.模板方法模式是所有模式中最为常见...原创 2019-05-20 20:26:30 · 668 阅读 · 0 评论 -
经典设计模式之策略模式【重构聚合支付平台,对接 (支付宝、微信、银联支付) 】
1、为什么要使用设计模式使用设计模式可以重构整体架构代码、提交代码复用性、扩展性、减少代码冗余问题。Java高级工程师必备的技能!2、什么是策略模式 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理,最终可以实现解决多重if判断问题。1、环境(Context)角色:持有一个Strategy的引用。2、抽象策略(Strateg...原创 2019-05-14 23:22:54 · 3317 阅读 · 2 评论 -
Java中的final关键字
一、java中final关键字的基本用法根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以用来修饰类、方法和变量(成员变量和局部变量)。你可能出于两种理解而需要阻止改变:设计或效率。1.修饰类当用final修饰一个类时,表明这个类不能被继承,没有子类。final类中的成员变量可以根据需要设置成final,但是成员方法默认都是final的。publi...原创 2019-04-16 21:29:52 · 157 阅读 · 0 评论 -
设计模式总结
一、设计模式六大原则1、开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。2、里氏代换原则(Liskov Substitution Princi...原创 2019-07-26 19:05:46 · 146 阅读 · 0 评论