![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端
光阴不负卿
进击的程序员
展开
-
Java Calendar类用法详解
Calendar add方法和set方法:set(int field ,int value):用来设置“年/月/日/小时/分钟/秒/微妙”等值。add(int field,int amount):add可以对Calendar的字段进行计算。如果需要减去值,可以使用负数。实例:获取当前日期的前一天的18:00整,和当前日期的18:00整 /** * 获取开始时间 * @param date : 当前日期 * @return 前一天的18:00原创 2020-11-30 21:52:54 · 3149 阅读 · 0 评论 -
java设计模式之外观模式
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问的系统接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,改类提供了客户端请求的简化方法和对现有系统类方法的委托调用。模式介绍:意图:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。主要解决:降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。何时使用:客户端不需要原创 2020-11-16 14:27:37 · 88 阅读 · 0 评论 -
java设计模式之装饰器模式
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。模式介绍:意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。主要解决:一般的,为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。何时使用:在不原创 2020-11-13 20:18:16 · 100 阅读 · 0 评论 -
java设计模式之组合模式
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。模式介绍:意图:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。主要解决:它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可原创 2020-11-13 19:24:35 · 101 阅读 · 0 评论 -
java设计模式之桥接模式
桥接(Bridge)是用于把抽象化与现实化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。比如,可以使用相同的抽象类方法但是不同的桥接实现类,来画出不同颜色的圆。模式介绍:意图:将抽象部分与实现部分分离,使它们可以独立的变化。主要解决:在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。何时使用原创 2020-11-12 22:40:07 · 146 阅读 · 0 评论 -
java设计模式之适配器模式
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。比如,读卡器是作为内存卡和笔记本之间的适配器。将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。模式介绍:意图:将一个类的接口转换成客户系统的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要解决:主要解决在软件系统中,常常要将一些原创 2020-11-11 12:01:13 · 277 阅读 · 0 评论 -
java设计模式之原型模式
原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建了对象的最佳方式。这种模式是实现了一个原型接口,该接口是用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。模式介绍:意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。主要解原创 2020-11-10 21:18:02 · 85 阅读 · 0 评论 -
java设计模式之单例模式的几种实现方式
1、懒汉模式,线程不安全是否Lazy初始化:是 是否多线程安全:否 实现难度:易描述:这种方式是最基本的实现方式,这种实现最大的问题就是不支持多线程。因为没有加锁synchronized,所以严格意义上它并不算单例模式。这种方式lazy loading很明显,不要求线程安全,在多线程不能正常工作。public class Singleton{ private static Singleton instance; private Singleton(){} p原创 2020-11-04 20:23:35 · 175 阅读 · 0 评论 -
java设计模式之单例模式
单例模式是java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象方式,可以直接访问,不需要实例化该类的对象。注意:单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。模式介绍:意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决:一个全局使用的类频繁地创建于销毁。何时使原创 2020-11-04 17:05:48 · 85 阅读 · 0 评论 -
java设计模式之抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。模式介绍:意图:提供一个创建一些列相关或相互依赖对象的接口,而无需指定它们具体的类。主要解决:主要解决接口选择的问题。何时使用:系统的产品有多于一个的产品族,而系统之消费其中某一族的原创 2020-11-04 11:53:43 · 262 阅读 · 0 评论 -
java设计模式之工厂模式
工厂模式(Factory Pattern)是java中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露船舰逻辑,并且是通过使用一个共同的接口来指向新创建的对象。模式介绍:意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用:明确地计划不同条件下创建不同实例时。如何解决:让其子类实现工厂接口,返回的也是一个抽象原创 2020-11-03 22:02:32 · 125 阅读 · 0 评论 -
java设计模式之设计模式六大原则
1、设计模式简介设计模式代表了最佳的实践,是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的实验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码的可靠性。设计模式使代码编制真正工程化,设计模式使软件工程的基石,如同大厦的一块块砖石一样。项目中合理地运用设计模式可以完美第解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我原创 2020-11-03 20:31:12 · 95 阅读 · 0 评论 -
Java图片操作详解
1、读取图片常见的有两种方式读取图片://通过java.awt.Toolkit工具类读取Image image = Toolkit.getDefaultToolkit().getImage(String filename);Image image = Toolkit.getDefaultToolkit().getImage(URL url);Toolkit.getDefaultToolkit().createImage(byte[] imageData);//通过javax.imagei原创 2020-10-30 22:08:03 · 1629 阅读 · 0 评论 -
EasyExcel自定义样式生成Excel
EasyExcel是一个基于Java的简单、省内存的读写excel的开源项目。在尽可能节约内存的情况下支持读写百M的excel.官方文档地址为:https://www.yuque.com/easyexcel/doc/easyexcelEasyExcel生成excel1、定义实体类(模板)import com.alibaba.excel.annotation.ExcelProperty;import com.alibaba.excel.annotation.write.style.Col..原创 2020-10-27 10:15:13 · 1012 阅读 · 0 评论 -
Java 泛型用法详解
java 泛型是JDK 5中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质时参数化类型,也就是说所操作的数据类型被指定为一个参数。假定我们有这样一个需求:写一个排序算法,能够对整型数组、字符串数组甚至其他任何类型的数组进行排序,我们就可以使用Java泛型。使用Java泛型的概念,我们可以写一个泛型方法来对一个对象数组排序。然后,调用该泛型方法来对整型数组、浮点数数组、字符串数组等进行排序。我们可以写一个泛型方法,该方法在调用时可以接受原创 2020-09-07 15:17:52 · 247 阅读 · 0 评论 -
Java HashSet用法详解
HashSet基于HashMap来实现的,是一个不允许有重复元素的集合。HashSet允许有null值。它是无序的,即不会记录插入的顺序。它也不是线程安全,如果多个线程同时修改HashSet,则最终结果是不确定的。所以必须在多线程访问时显式同步对HashSet的并发访问。HashSet类位于java.util包中,使用前需要引入它,语法格式如下:import java.util.HashSet;//引入HashSet类HashSet的创建及常用操作如下://引入HashSet类im原创 2020-09-07 10:35:17 · 1483 阅读 · 0 评论 -
Java Map遍历详解
import java.util.*;public class Test{ public staitc void main(String[] args){ map.put("1","value1"); map.put("2","value2"); map.put("3","value3"); //第一种遍历:二次取值 System.out.println("通过Map.keySet遍历key和va.原创 2020-09-07 10:05:15 · 131 阅读 · 0 评论 -
Java HashMap用法详解
HashMap是一个散列表,它存储的内容是键值对(key-value)映射。HashMap实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步。HashMap不会记录插入的顺序,即它是无序的。HashMap继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。HashMap的key与value类型可以相同也可以不同,可以是字符串(String)类型的key和vaue,也可以原创 2020-09-07 09:44:49 · 2723 阅读 · 0 评论 -
Java LinkedList用法详解
链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。链表可分为单向链表和双向链表。ArrayList和LinkedList的区别:ArrayList是List接口的一种实现,它是使用数组来实现的。LinkedList也是List接口的一种实现,它是使用链表来实现的。ArrayList遍历和查找元素比较快,而LinkedList添加和删除元素比较快。ArrayList适用场景:1)频繁访问列表.原创 2020-09-05 22:01:05 · 1447 阅读 · 0 评论 -
Java ArrayList用法详解
ArrayList类是一个可以动态修改的数组,与普通数组的区别就是它没有固定大小的限制,我们可以添加或删除元素。ArrayList继承了AbstractList,并实现了List接口。ArrayList类位于java.util包中,使用前需要引入它,语法格式如下://引入ArrayList类import java.util.ArrayList;//初始化ArrayListArrayList<E> objectName = new ArrayList<>();上面的原创 2020-09-05 21:17:08 · 1951 阅读 · 0 评论