自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码路编

欢迎访问我的个人博客:https://www.liuyao.site

原创 海康威视社招内推,填写问卷即可内推,可查询内推进度,此文长期有效

招聘官网: https://talent.hikvision.com/ 简历信息填写:https://www.wjx.cn/jq/64189588.aspx 公司介绍: 海康威视是以视频为核心的智能物联网解决方案和大数据服务提供商。 海康威视...

2020-03-14 11:17:45 193 0

原创 利用JSR303来完成对象参数校验

JSR 303 在任何时候,当你要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情。应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的。在通常的情况下,应用程序是分层的,不同的层由不同的开发人员来完成。很多时候同样的数据验证逻辑会出现在不同的层,这样就会导致代码冗余和...

2020-01-05 18:31:51 47 0

原创 Java如何预防NullPointerException

1. 问题引入 之前写过一篇文章 利用JSR303来完成对象参数校验,我们可以很好的对对象进行参数校验。采用这种方法,我们可以对某个对象被使用之前进行必要的参数校验,如果出现异常,我们可以跑出异常也可以返回结果。但是如果我们想对一个方法的参数进行一些类似非空校验的操作,可否有更好的方法来避免产生j...

2020-01-05 18:29:44 29 0

原创 日期格式‘YYYY-MM-DD’中的BUG

1. 日期格式 先来看一下日期格式主要有下面三种,US style,Euro style,RFC 3389。 Layout Format string Example ------------------------ -------------...

2020-01-05 18:27:00 336 0

原创 Java字符编码的那些事

1. 问题引入 1.1 GBK、UTF8、ISO-8859-1 由于GBK中采用的中文是2个字节的,而UTF8中的中文是3个字节的,特殊生僻字采用的是4个字节,这就导致我们在将GBK编码的中文转为UTF8的中文需要补充字节数,才能进行编码的转换。如果直接强行转换的话,那么将会导致自动补充编码的情况...

2020-01-04 23:39:54 21 0

原创 自动爬取LeetCode并通过网页按照分类、标签、时间轴详情展示

LeetCode-Viewer 简介: LeetCode-Viewer是一个利用Python爬取LeetCode-CN的做题信息,并通过Vuepress构建网页展示出来的一个项目,具体可以参考Demo:LeetCode-Viewer 下面给先看一下吧: 使用方式 fork该工程,然后clone到...

2019-12-29 22:58:41 168 1

原创 如何对HashMap进行排序

如何对HashMap进行排序 在这篇文章中,我们将介绍如何对HashMap进行排序,我们将讨论如何通过键或者值对HashMap进行排序。 为了下面文章的演示,我们先构造一个HashMap @Data @AllArgsConstructor class Student{ private ...

2019-04-12 10:50:11 387 0

原创 StringUtils使用介绍

StringUtils使用介绍 在本文章中,我们将介绍StringUtils的使用方法,正如它的名字一样,它是Apache Commons Lang中的一员,被用来处理字符串的常用操作,它对我们一些常用的操作进行了包装,相比于我们自己写的代码,使用它会显得更加小巧,简介和易读。 1. 简介 在...

2019-04-12 10:49:26 2291 0

原创 FileUtils使用介绍

FileUtils使用介绍 这篇文章我们会介绍FileUtils类相关的功能,它也是Apache Commons IO的一部分。它所提供的方法将我们常用的任务进行了包装,使我们写的代码更简洁易读。 1. FileUtils方法 我将介绍FileUtils类中一些重要的方法,并详细说明它们如何使...

2019-04-12 10:48:46 238 0

原创 IOUtils使用介绍

IOUtils使用介绍 在下面的例子,我们将详细说明如何使用 org.apache.commons.io 包中的 IOUtils类如何使用,通过包名我们可以知道它是 Apache Commons IO 的一部分 。该类的所有成员函数都被用来处理输入 - 输出流,它的确非常利于来编写处理此类事务的程...

2019-04-12 10:48:02 5816 0

原创 HTTPClient使用方法总结

1. 简介 超文本传输协议(HTTP)可能是当今Internet上使用的最重要的协议。Web服务、支持网络的设备和网络计算的增长继续扩展HTTP协议在用户驱动的Web浏览器之外的作用,同时增加了需要HTTP支持的应用程序的数量。 虽然java.net包提供了通过HTTP访问资源的基本功能,但它没有...

2019-03-25 14:25:05 450 0

转载 Windows安装MySQL

1. 下载: 我下载的是64位系统的zip包: 下载地址:https://dev.mysql.com/downloads/file/?id=482487 下载zip的包 下载后解压:D:\软件安装包\mysql-5.7.20-winx64 2. 配置环境变量: 变量名:MYSQL_HOME 变量值...

2019-03-17 11:41:33 39 0

原创 Git学习

Git 1. Git结构 2. 命令行操作 2.1 本地仓库初始化 git init 2.2 设置签名 项目级别/仓库级别: 仅在当前本地库范围内有效 ,信息保存位置: ./.git/config 文件 git config user.name liuyao git config user...

2019-03-17 11:37:49 26 0

原创 Intellij Idea Tomcat控制台乱码问题

解决Tomcat发布乱码问题 第一步:修改intellij idea配置文件: 找到intellij idea安装目录,bin文件夹下面idea64.exe.vmoptions和idea.exe.vmoptions这两个文件,分别在这两个文件中添加:-Dfile.encoding=UTF-8 ...

2019-03-15 14:25:49 56 0

原创 Docker的镜像和容器

Docker的镜像和容器 1. 架构与底层技术支持 Docker的总体架构: 底层技术支持: Namespaces:做隔离pid,net,ipc,mnt,uts Control Groups:做资源限制 Union File System:Container和Image的分层 2. Imag...

2019-03-13 22:58:14 112 0

原创 Docker安装

Docker安装 在Mac下先安装好Virtual Box和Vagrant,我们通过Vagrant来安装Centos,可以快速的复制相关的环境,具体的Vagrant的相关使用方式可以查看:vagrant系列(1):使用vagrant在线/离线安装centos7,按照这个链接里面的步骤把相关的box...

2019-03-13 22:56:35 35 0

原创 Java时间计算

Java在给定的时间的基础上加减多少小时分钟 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class MyTime { private ...

2019-03-12 16:19:38 363 0

转载 PostgreSQ 连接问题 FATAL: no pg_hba.conf entry for host

原因 PostgreSQ数据库为了安全,它不会监听除本地以外的所有连接请求,当用户通过JDBC访问是,会报一些如下的异常: org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host 解决方案 要解决这个问题,...

2019-03-11 14:04:34 1329 0

原创 利用Python3实现终端百度和谷歌翻译

利用Python3实现终端百度和谷歌翻译 1. Python调用Google翻译 最开始发现Google翻译居然用的Get方式请求的翻译数据,还暗自高兴了一波,这不简单吗?直接拼字符串就可以翻译了,还是我太天真

2018-11-30 23:19:43 566 1

原创 Mac安装virtualenv和virtualenvwrapper

我们常常要在不同的Python程序中使用不同的Python依赖包,如果我们都将这些依赖包安装到电脑默认的位置下,将导致环境混乱,这个时候,我们可以安装一个Python的VirtualEnv来解决开发环境隔离等问题。 1.安装virtualenv 直接通过pip安装 python3 -m pip i...

2018-11-29 21:00:29 1176 0

原创 命令模式

命令模式(Command) 命令模式是行为模式之一,Command模式通过被称为Command的类封装了对目标对象的调用行为以及调用参数 1. 命令模式中的角色及其职责 1.1 Command 是一个抽象类,类中对需要执行的命令进行声明,一般来说要对外公布一个execute方法用来执行命令。 ...

2018-11-10 20:20:33 41 0

原创 访问者模式

访问者模式(Visitor) 访问者模式是行为模式之一,它分离对象的数据和行为,使用Visitor模式,可以不修改已有类的情况下,增加新的操作。 1. 访问者模式中的角色及其职责 1.1 访问者角色(Visitor) 为该对象结构中具体元素角色声明一个访问操作接口。该操作接口的名字和参数标识...

2018-11-10 20:20:04 36 0

原创 状态模式

状态模式(State) 状态模式是行为模式之一,状态模式允许通过改变对象的内部状态而改变对象的行为,这个对象表现得就好像修改了它的类一样。 1. 状态模式中角色及其职责 1.1 用户对象(Context) 拥有一个State类型的成员,以标识对象的当前状态 Main package com....

2018-11-10 20:19:29 31 0

原创 模板方法模式

模板方法模式(Template Method) 模板方法模式是行为模式之一,它把具体特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为。 1. 模板方法中的角色及其职责 1.1 Abstract Class 抽象类 MakeCar package...

2018-11-10 20:18:58 40 0

原创 备忘录模式

备忘录模式(Memento) 备忘录模式是行为模式之一,它的作用是保存对象的内部状态,并在需要的时候(undo/rollback)恢复对象以前的状态。 1. 备忘录模式中的角色及其职责 1.1 原生者(Originator) 需要被保存状态以便恢复的那个对象 Person package c...

2018-11-10 20:18:19 40 0

原创 中介者模式

中介者模式(Mediator) 中介者模式是行为模式之一,在中介者模式中,类之间的交互行为被统一放在中介者的对象中,对象通过中介者对象同其他对象交互,中介者对象起着控制器的作用。 1. 中介者模式中的角色及其职责 1.1 Mediator 中介者类的抽象父类 AbstractMediator...

2018-11-09 09:47:05 48 0

原创 责任链模式

责任链模式(Chain of Responsibility) 责任链模式是行为模式之一,该模式构造一系列分别担当不同的职责的类的对象来共同完成一个任务,这些累的额对象之间像链条一样紧密相连,所以称为责任链模式。 1. 责任链模式的基本条件 对象链的组织。需要将某任务的所有职责执行对象以链的形...

2018-11-09 09:46:30 70 0

原创 迭代模式

迭代模式(Iterator) 迭代模式是行为模式之一,他把对容器中包含的内部对象的访问委让给外部类,使用Iterator按顺序进行遍历访问的设计模式。 不使用迭代模式存在的问题: 由容器自己实现顺序遍历。直接在容器类里直接添加顺序遍历方法。(容器类承担了太多功能:一方面需要提供添加删除等本身应...

2018-11-09 09:45:53 38 0

原创 解释器模式

解释器模式(Interpreter) 解释器模式行为模式之一,它是一种特殊的设计模式,它建立一个解释器,对于特定的计算机程序设计语言,用来解释预先定义的文法。即解释器模式是一种简单的语法解释器构架。 1. 解释器模式中的角色及其职责 1.1 Context 解释器上下文环境类,用来存储解释器的...

2018-11-09 09:45:27 125 0

原创 组合模式

组合模式(Composite) 组合模式是构造型的设计模式之一。通过递归手段来构造树形的对象结构,并可以通过一个对象来访问整个对象树。 1. 组合模式中的角色及其职责 1.1 树型结构的节点抽象(Component) 为所有的对象定义统一的接口(公共属性,行为等的定义) 提供管理子节点对象的...

2018-11-09 09:44:50 52 0

原创 外观模式

外观模式(Facade) 外观模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面称作外观(facade) 1. 外观模式的角色及其职责 1.1 外观(Facade) 为调用方定义简单的调用接口 Facade package com.liuyao;...

2018-11-09 09:44:12 38 0

原创 适配器模式

适配器模式(Adapter) 适配器模式是构造型模式之一,通过适配器模式可以改变已有类(或外部类)的接口形式 1. 适配器模式中的角色及其职责 1.1 目标接口 客户端使用的接口 Target package com.liuyao; /** * @author liuyao * @dat...

2018-11-09 09:43:34 31 0

原创 桥接模式

桥接模式 桥接模式是构造型的设计模式之一,基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是抽象与行为实现分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。 1. 桥接模式中的角色及其职责 1.1 Client 桥接模式的使用者 就是后...

2018-11-09 09:43:05 36 0

原创 享元模式

享元模式(Flyweight) 享元模式是构造型模式之一,它通过与其他类似对象共享数据来减小内存占用 1. 享元模式的角色及其职责 1.1 抽象享元角色 所有具体享元类的父类,规定一些需要实现的公共接口 Person package com.liuyao; /** * @author li...

2018-11-09 09:42:31 46 0

原创 代理模式

代理模式(Proxy) 代理模式是构造型的设计模式之一。他可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问。 所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。 1. 代...

2018-11-09 09:41:56 41 0

原创 观察者模式

观察者模式(Observer) 观察者模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。 观察者模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保存状态同步。 1. 观察者模式的角色及其职责 1.1 被观察者(Subje...

2018-11-06 17:01:42 40 0

原创 装饰器模式

装饰器模式(Decorator) 装饰模式又叫做包装模式。通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。 1. 装饰模式中的角色和及其职责 1.1 抽象组件角色 一个抽象接口,是**被装饰类(RunCar)和装饰类(CarDecorator)**的父接口 Car pac...

2018-11-06 17:01:12 35 0

原创 策略模式

策略模式(Strategy) 策略模式是行为模式之一,它对一系列的算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口对所有算法加以封装和实现,具体的算法选择交给客户端决定。策略模式主要用来平滑地处理算法的切换。 1. 策略模式的角色及其职责 1.1 策略(Strategy...

2018-11-06 16:59:58 40 0

原创 建造者模式

建造者模式(Builder) Builder模式是一种对象创建型模式,又叫生成器模式,用来隐藏符合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态的创建具有符合属性的对象。 1. 模式中包含的角色及其职责 1.1 产品(Product) 最后客户端需要获得的产品...

2018-11-06 16:59:18 40 0

原创 原型模式

原型模式 原型模式是一种对象创建型模式,它采用复制原型对象的方法来创建对象的实例。使用Prototype模式创建的实例,具有与原型一样的数据。 1. 原型模式的特点 由原型对象自身创建目标对象。也就是对象创建这一动作发自原型对象本身。 目标对象是原型对象的一个克隆。也就是说,通过protot...

2018-11-06 16:58:39 38 0

提示
确定要删除当前文章?
取消 删除