03 2022 档案
摘要:基础 接触过编程的都应该知道,要想学习编程必须得了解语法,大致分成关键字,基本语法,基本数据类型。 关键字 关键字指的是,在编程中不能随意去定义的,应该这些字是具有特殊意义的。 基本语法 类,对象,方法,变量。 类可以理解为是模板;对象可以理解为通过模板做出来的成品,方法呢指的是这个成品的用途,也即
阅读全文
摘要:Java运行环境 在学习Java的时候老师说过一句话,“一次编译,到处运行”,现在看来,Java能在众多语言中脱颖而出,与创始人的远见是分不开的。后来接触的多了,也就明白了,到处运行是有多么方便了。 Java能实现这样的机制原因是在不同的操作环境下,之需要有jvm环境即可,也就是不管在Windows
阅读全文
摘要:介绍 用于把一组相似的对象当作一个单一的对象,通常以树形解构来组合对象,用于表示部分以及整体层次。 意图 将对象组合成树形解构表示“部分-整体”的结构层次。组合模式是的用于对单个对象和组合对象的使用具有一致性。 解决 它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元
阅读全文
摘要:介绍 适配器模式作为两个不兼容接口之间的桥梁。 意图 将一个类的接口转换成客户希望的另一个接口。适配器可以使不相兼容的接口一起工作。 解决 接口不兼容 优点 可以使两个没有关联的类一起运行; 提高了类的复用 缺点 过多的使用适配器会使系统非常凌乱; 使用场景 中国三角插头在台湾不能使用(只有两脚的插
阅读全文
摘要:介绍 主要用于减少创建对象得数量,以减少内存占用和提高性能。 意图 减少对象的创建,尽量共享同一元素。 解决 当jvm内存中对象太多时,可能会造成内存溢出情况,我们将其中共同的对象抽象出来(即不用一个个的都创建对象),之后有相同的业务请求过来时,返回一个内存中有得对象,避免重新创建。 优点 大大减少
阅读全文
摘要:介绍 创建已有对象的代理,添加相应的控制后便于向外界提供访问。 意图 为其他对象提供一种代理以控制原对象的访问。 解决 避免直接访问对象(安全问题,权限问题等),相当于为原对象添加访问控制层。 优点 扩展性 职责清晰 缺点 在原对象上添加一层访问控制,会使请求变慢 使用场景 接口调用权限 防火墙 前
阅读全文
摘要:介绍 将抽象与实现解耦合,使得二者可以独立变化。这中模式涉及到一个作为桥接的接口,使得实体类功能独立于接口实现类,这两种类型的类可被解构化改变而互不影响。 意图 将抽象部分与实现部分分离,使他们可以独立变化。 解决 有多种可能会变化的情况下,使用继承造成类爆炸,扩展不灵活。 优点 抽象与实现分离;
阅读全文
摘要:介绍 隐蔽系统复杂性,并向客户端提供一个可以访问系统的接口。该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。 意图 为一个子系统的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更方便使用。 解决 降低复杂系统内部子系统是的复杂度,简化客户端与之的接口。 优
阅读全文
摘要:介绍 原型模式用户创建复杂的对象,同时可以保证性能。 该模式实现一个原型接口,该接口用于创建当前对象的克隆,当直接创建对象(new)代价比较大时,提供了使用该模式。即先生成一个模型,再根据使用场景将该模型克隆成多个。 意图 使用原型实例创建对象,通过复制原型创建对象。 解决 创建对象需要消耗过多的内
阅读全文
摘要:介绍 建造者模式使多个简单的对象构建成一个复杂对象。属于创建对象的一种方式。 意图 将一个复杂的构建与其表现分离。 解决 一个复杂的对象通常由多个部分的子对象构成; 但是子对象常常回发生改变,但是组合方式比较稳定。 优点 创造者独立,易扩展; 便于控制细节风险。 缺点 产品必须有共同特点; 若内部变
阅读全文
摘要:介绍 向一个现有对象添加新功能,而又不改变原结构。 意图 动态的给一个对象添加一些额外的职责。 解决 一般的,为了扩展类常常使用继承去实现,由于继承为类进入静态特征,并且随着功能的增多,子类会很膨胀。 优点 装饰类与被装饰类可以独立发展,不会相互耦合; 装饰模式是继承的一个替代模式,可以动态扩展一个
阅读全文
摘要:介绍 单例(Singleton Pattern)是设计模式中最简单的一种。属于创建型模式。它提供了一种创建对象的最佳方式,即内存中只有一个实例。也就是不会有人使用 new Singleton()来生成一个新的对象。 意图 保证一个类仅有一个实例,并提供一个访问它的全局方法。 解决 一个全局使用的类频
阅读全文
摘要:介绍 工厂模式(Factory Pattern),在创建对象时不会对客户端暴露创建逻辑,而是通过一个共同的接口来指向对象的。(即不是通过new去创建对象)。 意图 定义一个创建对象的接口,让子类去决定实例化哪个对象。 解决 接口选择问题 优点 调用者想创建对象时只需要直到名称即可; 扩展性高,如果想
阅读全文
摘要:介绍 抽象工厂是对简单工厂的抽象。若将简单工厂理解成一维,那么抽象工厂即是多维的。 意图 创建一系列相关对象的接口 解决 接口选择问题 优点 当一个产品族中多个对象一起工作时,能保证始终围绕相同的对象(即 只操作特定的对象)。 缺点 产品族的扩展非常困难,既要在抽象类中新增接口,有需要在实现类添加接
阅读全文
摘要:之前写过Oracle定时任务的脚本,当时对于Windows server 服务器是将脚本添加到任务计划中,但是 我就在实际中遇到过无法将脚本添加到任务计划中(试过了各种方法就是无法添加),这是我想到了是不是可以写个定时任务来调用脚本呢? 确实可以。源码地址 GitHub 2019年6月2日21:51
阅读全文
摘要:前言 之前写过使用springboot操作mysql数据库,但有时候可能只想给某个服务写个小插件使用mysql或者Oracle会显得多余,这是就可以使用h2数据库。在此不做过多的介绍,想了解的直接去h2官网。 源码地址Github 使用前提 工具/jar包 版本 idea 2018.2.8 spri
阅读全文
摘要:jar包启动 不做任何修改,直接使用 package 打成的就是jar包。 使用 java -jar xxx.jar 启动。 若在Linux中可以使用 nohup java -jar xxx.jar & 方式启动。 nohup 为后台启动,通过查看日志文件 nohup.out 文件查询( tail
阅读全文
摘要:前言 上一节说到了操作数据库的方式有两种:jpa和nybatis,并且简单介绍了jpa的使用方式,这节介绍mybatis。 GitHub地址 使用前提 工具/jar包 版本 idea 2018.2.8 spring boot 2.1.4.RELEASE Maven 3.6.0 jdk 1.8 pom
阅读全文
摘要:操作数据库方式 jpa 与mybatis,分为两个章节介绍,这里先介绍jpa的方式。 GitHub地址 使用前提 工具/jar包 版本 idea 2018.2.8 spring boot 2.1.4.RELEASE Maven 3.6.0 jdk 1.8 pom.xml 使用依赖 <dependen
阅读全文
摘要:题目来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/container-with-most-water 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。
阅读全文