Java8 Lambda表达式 2021-01-10 店长 Java基础 收藏 评论 Lambda简介 从Java8开始,Java引入了另外一个语法糖-Lambda表达式,Lambda表达式可以由编译器推断并转换包装为常规的代码,因此我们可以使用更少的代码来实现同样的功能。 Lambda的基本语法表示如下: 基本语法: (parameters) -> expression 或 (parameters) ->{ statements; } Lambda表达式 [...] 阅读更多 »
浅谈Android IOC注解技术 2021-01-03 店长 Android综合 收藏 评论 引言 IOC这几个字符可能对于从事移动开发的同学比较陌生,但是如果熟悉服务端开发,或者对Spring了解一些,相信对于IOC一定有了不同程度的理解。相对于IOC而言,还有一个类似的名词AOP,AOP这里就不做延伸了,有兴趣的同学可以参考网上其它相关文章。本文主要介绍IOC注解技术,首先这里需要强调一点,IOC技术的实现并不一定都是依赖于注解技术实现的,使用配置文件的方式也可以,比如XML方式配置 [...] 阅读更多 »
Java注解进阶三 2020-12-20 店长 Java综合 收藏 评论 本文继续介绍编译时注解,不同于前面两篇偏向理论,本文通过仿写一个ButterKnife示例,辅助我们理解编译时注解是如何通过生成模板代码,达到简化代码,提升开发效率的目的。 除了编译时注解,还有一种注解方式-运行时注解,其实运行时注解也可以帮助我们简化代码提升开发效率,那么ButterKnife与其它框架相比优势在哪呢?我们希望通过注解的三篇进阶文章解决一下几个疑问。 我们经常谈论编译时注解, [...] 阅读更多 »
Java注解进阶二 2020-11-22 店长 Java综合 收藏 评论 本文继续介绍Java编译时注解的相关内容,仍然都是一些偏理论的梳理知识点。主要涉及到几个类,它们都是在处理自定义注解时会常到的,分别是RoundEnvironment、ProcessingEnvironment、Filer、ElementType、ElementKind、TypeKind、TypeMirror。 虽然说是编译时注解,不过在上面几个类的使用上面并不会涉及到编译时什么特殊格式要求,仍 [...] 阅读更多 »
Java注解进阶一 2020-11-15 店长 Java综合 收藏 评论 引言 在ServiceLoader一文中,可以了解到ServiceLoader解耦了服务的具体实现和使用,使得程序的扩展性大大增强,甚至可插拔。但是,在项目中如果每次使用SPI接口都需要手动在相对应的文件中注册一下,是不是有点违背程序员的宗旨,能代码实现的功能尽量不手动去实现。相信许多熟悉J2EE的开发人员,应该都在XML文件中配置过IOC或者AOP相关类,而目前的常规开发中一般使用注解代替了X [...] 阅读更多 »
浅谈ServiceLoader 2020-07-31 店长 Java综合 收藏 评论 本文主要介绍ServiceLoader类,首先介绍ServiceLoader的简单使用,以及它可以达到什么样的效果,然后介绍了ServiceLoader的实现原理,最后通过对ServiceLoader源码的理解,自定义实现一个简单的类似ServiceLoader的功能。 引言 ServiceLoader是JDK1.6基于SPI(Service Provider Interfaces)思想新引入 [...] 阅读更多 »
设计模式总结篇二 2020-07-05 店长 Java设计模式 收藏 评论 本文是设计模式阶段性总结的最后一篇,在上一篇中对设计模式做了简单的归类,并对创建型模式进行了梳理对比,接下来继续梳理结构型和行为型相关的设计模式,其中结构型设计模式7种,行为型模式11种。结构型设计模式是对类和对象的组织方式进行的介绍,行为型设计模式是对类和对象之间通信进行的介绍,结构和行为设计也是软件设计中非常最要的一个环节。 学习并理解设计模式是“做什么”的可能比较容易,但是“为什么”可能需 [...] 阅读更多 »
设计模式总结篇一 2020-06-28 店长 Java设计模式 收藏 评论 设计模式被推崇至浪潮之巅应该是在GOF设计模式一书发布后,其实这里并不是说在此之前设计模式并不存在。在设计模式一书还没发布之前,好的代码已经在按照某种固定的模式进行实现,只是没有人进行系统地梳理成册,直到GOF四人组出现,才终于开创了设计模式这一概念。 1995年,有四位作者:Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides发表了一本题为 [...] 阅读更多 »
Java设计模式-原型模式 2020-06-21 店长 Java设计模式 收藏 评论 原型(Prototype)模式,在23种设计模式中属于对象创建型模式。 原型模式就是用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 引言 初次接触原型模式,如果仅根据模式名称判断,可能并不确定这种设计模式究竟是做什么的。不过,因为由于以前有了解过Java服务端开发,所以有印象S2SH框架有使用过prototype关键字,估计现在很少用S2SH框架了,基本都是Spring全家 [...] 阅读更多 »
Java设计模式-迭代器模式 2020-06-14 店长 Java设计模式 收藏 评论 迭代器(Iterator)模式,有时也被称为游标(Cursor)模式,在23种设计模式中属于对象行为型模式。 迭代器模式提供了一种顺序方法用于访问聚合对象中的各个元素,而又不暴露该对象的内部表示。 引言 从接触设计模式以来,其实心中一直有一个疑问,为什么要把迭代器作为一种设计模式单独介绍呢?之所以有这个疑问,可能也与我接触的编程语言有关系。Java作为自己平常开发中最常使用的语言,它的JDK [...] 阅读更多 »
Java设计模式-解释器模式 2020-05-31 店长 Java设计模式 收藏 评论 解释器(Interpreter)模式,在23种设计模式中属于类行为型模式。 解释器模式:定义一个语言的文法,并建立一个解释器用于解释该文法表示的句子。 引言 在平常开发中解释器模式是一种使用频率低难度相对较大的设计模式,它用于描述如何使用面向对象的方式来构成一个简单的语言解释器。在某些场景下,为了更好地描述某些特定问题,有时会创建一门新的语言,这种语言拥有自己的表达式和结构,即文法规则,然后 [...] 阅读更多 »
Java设计模式-访问者模式 2020-05-24 店长 Java设计模式 收藏 评论 访问者(Visitor)模式,在23种设计模式中属于对象行为型模式,也是Java语言模拟双分派机制的一种实现方式。 访问者模式表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 引言 在GOF定义的23中设计模式中,除去本文所介绍的一种模式之外,还剩解释器模式、迭代器模式以及原型模式。其实,本来想整理一下其它方向的内容,但是后来想想,已 [...] 阅读更多 »
Java设计模式-组合模式 2020-05-10 店长 Java设计模式 收藏 评论 组合(Composite)模式,在23种设计模式中属于对象结构型模式。 组合模式将对象整理成树形结构以表示“部分-整体”的层次结构,它可以使用户对单个对象和组合对象的操作具有一致性。 模式介绍 从接触面向对象语言起,我们就被告知封装、继承和多态是面向对象的三大特性,其中继承和多态中的重写特性更是使用继承机制的直观体现。随着时间的推移,我们对面向对象语言的经验理解也不断增强,在各种编程实践书籍 [...] 阅读更多 »
Java设计模式-中介者模式 2020-05-03 店长 Java设计模式 收藏 评论 中介者(Mediator)模式,在23种设计模式中属于对象行为型模式。 用一个中介对象封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 模式介绍 在平常开发的业务场景中,可能会遇到多个对象交叉引用的情况,而且这些对象之间的行为还相互影响。各个对象之间的交互犹如一张蜘蛛网一样,一个对象的行为会影响其它一个或多个对象,同样的,自己也会 [...] 阅读更多 »
Java设计模式-享元模式 2020-04-25 店长 Java设计模式 收藏 评论 享元(Flyweight)模式,有时也被称为蝇量模式或者轻量级模式,在23种设计模式中属于对象结构型模式。 享元模式是运用共享技术有效地支持大量细粒度对象的复用。 模式介绍 在平常面向对象的软件开发中,偶尔会遇到这种场景,业务比较复杂,需要构建大量的对象,但是这些对象又很相似,状态变化比较小。比如设计一款围棋游戏、丛林探险类游戏或者常见的文本处理软件,在这些场景中棋子、树木或者字符都被设计为 [...] 阅读更多 »