自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wo是球王的博客

一个被代码耽误的球王

  • 博客(20)
  • 收藏
  • 关注

原创 FFmpeg(5) -- 相关工具类

关于工具类中用到的一些自定义对象和方法就不贴出来了,相信大家看方法名或者对象名就能明白。public class FFmpegUtils { private static String ffmpegEXE = "ffmpeg"; static { String expression = ConfigUtils.getType("ffmpeg.expression"); ffm...

2019-10-17 14:04:45 450

原创 FFmpeg(4) -- 多路视频拼接

命令ffmpeg-y-i bg.png-stream_loop -1 -i 1.mp4-stream_loop -1 -i 2.mp4-filter_complex "[0:v] pad=1920:158[0];[1:v] scale=641:159 [temp1];[2:v] scale=1278:159 [temp2];[0][temp1] overla...

2019-10-17 12:01:32 1929

原创 FFmpeg(3) -- 读取文件信息

命令ffmpeg-i a.mp4参数说明ffmpeg:调用ffmpeg工具,安装ffmeg的时候需要配置此命令。-i a.mp4:指定输入文件,绝对路径和相对路径均可。支持文件ffmpeg支持的所有视频文件、gif、图片文件可以执行本命令。Java代码实现public class FFmpegUtils { private static String g...

2019-10-17 11:40:11 1141

原创 FFmpeg(2) -- 视频转码

命令ffmpeg -y -i a.gif -b 4000k -c:v mpeg4 -c:a aac -s 700x392 -r 25 out.mp4参数说明ffmpeg:调用ffmpeg工具,安装ffmeg的时候需要配置此命令。-y:覆盖已有文件。-i a.gif:指定输入文件,绝对路径和相对路径均可。-b 4000k:指定输出文件码率,缺省为默认的200kb/s.-c...

2019-10-17 11:18:41 306

原创 FFmpeg(1) -- 视频截图

命令ffmpeg-y -ss0 -i a.mp4-fimage2screen.png参数说明ffmpeg:调用ffmpeg工具,安装ffmeg的时候需要配置此命令。-y:覆盖已有文件。-ss:指定截图时间。格式1:hh:mm:ss(时分秒格式);格式2:.xxx(指定秒,精确到毫秒级别)。-i a.mp4:指定输入文件,绝对路径和相对路径均可。-f image...

2019-10-17 10:52:46 248

原创 Java设计模式(14) -- 建造者模式

前言距离上一篇博客的发布已经过去两个月了,这段时间一是工作比较忙,没什么时间写,二呢是因为国庆完成了一件人生大事,和对象完成了婚礼。今天终于有时间接着学习设计模式了。前面介绍的工厂模式主要专注于产品本身的创建,而现实中大部分产品都不是由几个简单的部件构成,而是一系列复杂的部件构成,这个时候就需要一个专门负责组装的部门来将一系列复杂的对象组合为一个产品,比如汽车需要的部件种类是一样的,但是每...

2019-10-16 14:40:30 104

原创 Java设计模式(13) -- 抽象工厂模式

前言我们将同一种类的产品成为同级,同一品牌的产品成为产品族。如下图:前面介绍的工厂方法模式中考虑的一个产品等级下产品的生产,某代工厂,既能生产华为手机,也能生产小米手机。但现但现实中工厂大多都是综合型的工厂,可以按照一个产品族生产产品。这个时候使用工厂方法模式就不合适了。定义抽象工厂(AbstractFactory),是一种为客户提供一个创建一组相关或相互依赖对象的接口,且客户...

2019-08-13 13:09:54 110

原创 Java设计模式(12) -- 工厂方法模式

定义工厂方法(FactoryMethod)模式,定义创建对象的工厂接口,创建的具体过程在字类中实现。工厂方法模式满足创建型模式的“创建与使用分离”要求。用户只需要知道工厂提供的接口,不用关心工厂具体具体的创建过程。新增产品时只需要增加具体的产品类和对应的工厂类即可,不会对原有的工厂产生影响。满足“开闭原则”。实现工厂方法模式由抽象工厂、具体工厂、抽象产品和具体产品等4个要素构成。抽...

2019-08-13 10:59:14 117

原创 Java设计模式(11) -- 原型模式

定义原型(Prototype)模式,使用一个已经实例化的对象作为原型,通过拷贝该对象来创建一个和原型相同或相似的新对象。实现实现Cloneable接口。只有实现了Cloneable接口的类才能使用clone()方法; 重写Object类中的clone方法。Object类下的clone()方法是protected修饰的,重写为public修饰。 ...

2019-08-12 16:15:21 86

原创 Java设计模式(10) -- 单例模式

定义单例(Singleton)模式,是指在程序运行过程中,一个类至多只有一个实例化对象。单例类的特点是: 至多只有一个实例化对象; 私有化的构造方法; 对外提供一个public的访问该对象的方法。 实现单例类的UML类图如下:单例模式通常有两种实现方式,懒汉式和饿汉式。1. 懒汉式懒汉式的特点是在程序第一次调用该类时创建对象。代码实现:...

2019-08-12 15:07:03 131

原创 Java设计模式(9) -- 合成复用原则

定义合成复用原则(Composite Reuse Principle,CRP)又叫组合/聚合复用原则(Composition/Aggregate Reuse Principle,CARP)。它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。作用优先使用组合和聚合,尽量少使用继承,可以保证类的封装性,降低类之间的耦合度。实现方式合成复用原...

2019-08-09 16:48:43 338 1

原创 Java设计模式(8) -- 迪米特法则

定义迪米特法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。作用迪米特法则要求限制软件实体之间通信的宽度和深度,正确使用迪米特法则将有以下两个优点。降低耦合度,提高模块的相对独立性。 降低耦合度,提高类的可复用性和系统的扩展性。实现方式从迪米...

2019-08-09 16:19:56 109

原创 Java设计模式(7) -- 接口隔离原则

定义接口隔离原则(Interface Segregation Principle,ISP)客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。作用接口隔离原则是为了约束接口、降低类对接口的依赖性,遵循接口隔离原则有以下 5 个优点。将臃肿庞大的接口分解为多个粒度小的接口,可以预防外来变更的扩散,提高系统的灵活性和可维护性。 接口隔离提高了系统的内聚性,减...

2019-08-09 16:15:38 119

原创 Java设计模式(6) -- 单一职责原则

定义单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则,规定一个类应该有且仅有一个引起它变化的原因。作用单一职责原则的核心就是控制类的粒度大小、将对象解耦、提高其内聚性。如果遵循单一职责原则将有以下优点。降低类的复杂度。一个类只负责一项职责,其逻辑肯定要比负责多项职责简单得多。 提高类的可读性。复杂性降低,自然其可读性会提高。...

2019-08-09 16:05:30 114

原创 Java设计模式(5) -- 依赖倒置原则

定义依赖倒置原则(Dependence Inversion Principle,DIP)高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。作用依赖倒置原则可以降低类间的耦合性; 依赖倒置原则可以提高系统的稳定性; 依赖倒置原则可以减少并行开发引起的风险; 依赖倒置原则可以提高代码的可读性和可维护性。实现方式依赖倒置原则实际上就是面向接口...

2019-08-09 15:29:25 105

原创 Java设计模式(4) -- 里氏替换原则

定义里氏替换原则(Liskov Substitution Principle,LSP)面向对象设计的基本原则之一。 里氏替换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。-- 摘抄百度百科。作用里氏替换原则是实现开闭原则的重要方式之一;...

2019-08-09 15:01:29 112

原创 Java设计模式(3) -- 开闭原则

定义软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的。-- 摘抄百度百科作用遵循开闭原则的软件,在保持灵活性时兼备扩展性和延续性。优点包括:便于测试。每次只需要测试扩展部分即可; 提高代码复用性; 提高代码可维护性。实现方法开闭原则是其它原则的基础,核心就是抽象。个人理解就是用抽象构建框架,用实现扩展细节。举个栗子,人写字的UML类图:...

2019-08-09 14:17:56 167

原创 Java设计模式(2) -- UML

简介统一建模语言(英语:Unified Modeling Language,缩写:UML)是用来表达软件设计的可视化建模语言。特点是简单、统一、图形化。能表达软件设计中的动态和静态信息。类、接口、类图类在UML中,类使用包含类名、属性和方法的矩形表示。其中属性和方法可以选择隐藏。例如Student类。 类名(Name),名称。例如:Student,字符串说明:...

2019-08-08 16:36:43 387

原创 Java设计模式(1) -- 概述

设计模式的概念与意义概念软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代...

2019-08-08 11:36:20 118

原创 开启博客之路

从事Java开发也已经三年了,期间在博客园写过几篇,但就像小时候写日记一样,总是坚持不下来。今天开始在CSDN开启博主的第一篇博客,希望能坚持更长久一点。入行三年,最近愈发明显的感到自己的不足,想学的技术很多,但是却无从下手。曾看见过一篇文章,描述了程序员的四个阶段。不知道自己不知道,知道自己不知道,知道自己知道,不知道自己知道。目前博主就处于第二个阶段。路漫漫其修远兮,吾将上下而求索。...

2019-04-10 14:49:00 128

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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