自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

后台/ctf小白

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

原创 @RefreshScop原理整理

1、@controller 控制器(注入服务)用于标注控制层,相当于struts中的action层2、@service 服务(注入dao)用于标注服务层,主要用来进行业务的逻辑处理3、@repository(实现dao访问)用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件.4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的)泛指各...

2019-08-28 11:26:58 3505

原创 【音视频】服务编排--Conductor 文档翻译

介绍Conductor是一个微服务的编排引擎Conductor优点Conductor,帮助我们协调基于微服务的流程,具有以下功能:允许创建复杂的流程/业务流,其中由微服务实现单个任务。基于JSON DSL的定义执行流程。为这些流程提供可见性和可追溯性。在暂停,恢复,重启等周围公开控制语义,以获得更好的devops体验。允许更多地重用现有的微服务,为管理提供更容易的途径。用户界面可视化流程。能够在需要时同步处理所有任务。能够扩展数百万个并发运行的流程。由客户端提取的排队服务支持。能

2020-08-20 21:32:07 696

原创 【Docker】 docker知识点整理

在 Docker 体系里,有四个对象 ( Object ) 是我们不得不进行介绍的,因为几乎所有 Docker 以及周边生态的功能,都是围绕着它们所展开的。它们分别是:镜像 ( Image )、容器 ( Container )、网络 ( Network )、数据卷 ( Volume )容器基础运行交互式的容器我们通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:runoob@runoob:~$ docker run -i -t ubuntu:15.10 /b

2020-08-16 16:27:32 581

原创 【JAVA】Supplier

继续学习一个新的函数式接口–Supplier,它的中文意思为供应商、提供者而具体的方法也是相当的简单,就是不接受任何参数,返回一个结果:对它有了大概的了解之后,下面用代码来使用一下它:貌似这函数的使用相当简单呀,但是简单并非是它的用处少,那它到底可以应用在现实中的什么场合之下呢?工厂就是其一,因为工厂有时里面是不接收参数的,直接从工厂里面返回一个结果,当然如果工厂里面要接收参数且返回结果那Function函数式接口就可以派上用场了,下面还是看一下这种Supplier的场景:首先定义一个实体:

2020-08-04 10:35:14 16790 6

原创 【音视频】FFmpeg

FFmpeg 学习FFmpegFFmpeg简介FFmpeg的基本组成FFmpeg的可执行文件ffmpeg 常用命令FFmpeg转码MP4格式MP4概述音视频文件音视频流抽取H.264常见参数练手任务自己生成一些视频,使用scale、overlay等filter给视频加上快手logo视频画中画学会将视频抽帧成若干图片将视频转成动图(webp,gif)将视频某帧抽帧成图片并加上水印ffprobe命令1.简介常用参数FFmpegFFmpeg简介使用的版本4.3.1FFmpeg 是一个开放源代码的自由软件,

2020-07-21 16:40:31 1006

原创 【音视频】音视频中的帧,流。流媒体协议

以下内容部分来源于网络,自己还未读过相关的底层,所以可能会有错误,自己以后会回来再继续更改的。大家都会关注“在浏览器输入一个地址,然后回车,会发生什么”这样一个问题,但是有没有想过这样一个问题:主播开始直播,用户打开客户端观看,这个过程发生了什么?随着技术的发展,直播技术对人们生活的渗透日益加深。从最开始的游戏直播,到前几天爆出来的教育直播,甚至现在都有直播招聘。而我们喜欢的这些直播,他们用到的传输协议有一个通用名-流媒体传输协议。要认识流媒体协议,就离不开下面的三大系列名词。三大系列名词系列

2020-07-21 14:46:04 1812 1

原创 【java】希尔排序

import java.util.*;public class Test { public static void main(String[] args){ int[] arr = new int[]{2,1,6,4,7,9}; shellsort(arr); System.out.println(Arrays.toString(arr)); } public static void shellsort(int[] nums){ .

2020-07-10 14:17:09 149

原创 【JAVA】JAVA实现归并排序

import java.util.*;public class Test { public static void main(String[] args){ int[] arr = new int[]{2,1,6,4,7,9}; resunion(arr,0,5); System.out.println(Arrays.toString(arr)); } public static void resunion(int[] nums

2020-07-10 13:55:33 283

原创 【JAVA】 JAVA实现堆排序

代码还是很好理解的,过两天 我加些动图import java.util.*;public class Test { public static void main(String[] args){ int[] arr = new int[]{2,1,6,4,7,9}; heapsort(arr); System.out.println(Arrays.toString(arr)); } public static void heaps

2020-07-10 09:33:53 168

原创 【JAVA】 try catch finally 中包含return的几种情况,及返回结果

第一种情况:在try和catch中有return,finally中没有return,且finally中没有对try或catch中要 return。这种情况,无论如何finally中的代码块都会执行,然后再执行try或者finally中的return。第二种情况:在try和catch中有return,finally中没有return,但finally中有对try或catch中要 return数据进行操作的代码返回的数据为基本数据类型,则finally中对要返回数据操作无影响。try或者catch要返回的值

2020-07-07 16:49:00 457

原创 【设计模式】观察者

目前这篇观察者是自己刚整理的,很多都来源于网上,自己目前没有设计模式的书,自己过一段时间买完书,重新理解完,会回来整理的。定义对象之间的一对多依赖,当一个对象状态改变时,它的所有依赖都会收到通知并且自动更新状态。主题(Subject)是被观察的对象,而其所有依赖者(Observer)称为观察者。观察者模式所涉及的角色有:●  抽象主题(Subject)角色:抽象主题角色把所有对观察者对象的引用保存在一个聚集(比如ArrayList对象)里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可

2020-06-28 20:53:25 162

原创 【MYSQL】 数据库实现分布式锁

下面我们来了解一下基于数据库(MySQL)的方案,一般分为3类:基于表记录、乐观锁和悲观锁。基于表记录,可以通过UNIQUE KEY实现锁我们可以创建这样一张表CREATE TABLE `database_lock` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `resource` int NOT NULL COMMENT '锁定的资源', `description` varchar(1024) NOT NULL DEFAULT "" COMMENT '描述',

2020-06-25 23:26:58 482

原创 【JAVA】 实现消费者生产者

通过wait()和 notifyAll()实现public class PublicQueue { public int putindex = 0; public int maxcount = 10; public synchronized void add(){ while(putindex >= maxcount){ try { System.out.println("没有东西可以加了");

2020-06-21 18:14:41 146

原创 【JAVA】线程 打印ABC

通过控制变量的方式public class Test { public static int num = 1; public static void main(String[] args) { Thread a = new Thread(new Runnable() { @Override public void run(){ while (true){

2020-06-20 12:19:18 231

原创 【JAVA】 JVM

https://www.cnblogs.com/czwbig/p/11127124.html

2020-06-07 23:03:51 169

原创 【JAVA】设计模式 单例模式的五种代码

单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3...

2020-05-03 19:05:50 669

原创 【算法】leetcode46全排列

Leetcode 全排列给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]这道题我们需要使用回溯的方法来进行求解。那我们回溯法的解体框架是什么呢,解决一个回溯问题,实际上就是一个决策树的遍历过程。一般来说,...

2020-04-23 09:28:10 210

原创 【算法】Java中的 && 与&

Java中&&和&都是表示与的逻辑运算符,都表示逻辑运输符and,当两边的表达式都为true的时候,整个运算结果才为true,否则为false。&&的短路功能,当第一个表达式的值为false的时候,则不再计算第二个表达式;&则两个表达式都执行。&可以用作位运算符,当&两边的表达式不是Boolean类型的时候,&表示按位操作...

2020-04-21 00:32:07 212

原创 【算法】n&(n-1) n&(-n)

n&(n-1) n&(-n)n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,先看一个简单的例子:n = 10100(二进制),则(n-1) = 10011 ==》n&(n-1) = 10000可以看到原本最低位为1的那位变为0。弄明白了n&(n-1)的作用,那它有哪些应用?求某一个数的二进制表示中1的个数while (n &...

2020-04-20 21:31:18 790

原创 【SQL】exists

exists 的作用形式:where exists ( 任何子查询 )含义:该子查询如果“有数据结果”, 则该exists()的结果为“true”该子查询如果“没有数据结果”,则该exists()的结果为“false”举例select * from employees wherenot exists(select * from dept_emp where employees....

2020-04-03 11:00:29 244

原创 【Python】Python的模块与包和pycharm 引入爆红

模块与包模块(moudle)用户从逻辑(实现一个功能)上组织Python代码(变量、函数、类),布置就是 *.py 。文件是无力上组织方式"module_name.py",模块是逻辑上组织方式"module_name"。包(package)定义了一个由模块和子包组成的Python应用程序执行环境,本质就是一个有层次的文件目录结构(python2要求必须带有一个__init__.py文件)。...

2020-03-06 13:44:33 3202 2

原创 【数据结构】LRU的实现

最近看到好多人的面试题都是要求手写LRU,自己也想整理下这方面的知识点页面置换算法:地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。LRU算法:最近最少使用,简单来说就是将数据块中,每次使用过的数据放在...

2019-12-26 18:58:12 1290

原创 【JAVA】Integer、new Integer() 和 int 比较的面试题

基本概念区分1、Integer 是 int 的包装类,int 则是 java 的一种基本数据类型2、Integer 变量必须实例化后才能使用,而int变量不需要3、Integer 实际是对象的引用,当new一个 Integer时,实际上是生成一个指针指向此对象;而 int 则是直接存储数据值4、Integer的默认值是null,int的默认值是0Integer、new Integer()...

2019-12-18 08:13:24 535 2

原创 【Http】URI 和 URN

首先给大家举个例子,有一家公司的总经理,某天,给了我一张名片,上面写了他的头衔,北京XXX公司总经理 张三,还有他的办公室地址,北京市海淀区长安街35号北京XXX公司总经理办公室,那么,我以后给我的朋友吹牛,我认识北京XXX公司的总经理张三,我的朋友都知道北京XXX公司的总经理是一个叫张三的人,那么,这个头衔就和张三对应起来了,只要一说到这个头衔,大家都知道说的是张三,反应到网络世界,这个头衔就...

2019-12-16 18:53:47 158

原创 【算法】红黑树的前世今生

最近有好多知识点没整理,忙完这一阵我就开始慢慢弄。因为我觉得网上大多数博客包括书(《算法导论》!!)上来就直接给个红黑树的五大定义,然后就开始旋转了,我看完是一点记不住,那么今天我就讲讲红黑树的前世今生。那么我也先把这五个定义给你,你可以先过下(不用记)1.每个节点或者是红色的,或者是黑色的 2.根节点是黑色的 3.每一个叶子节点(最后的空节点)是黑色的 4.如果一个节点是红色的,那...

2019-11-29 12:05:21 239 1

原创 Java 类初始化顺序

一个类中包含如下几类东西,他们前后是有顺序关系的1.静态熟悉 : static 开头定义的属性2.静态方法块 : static{} 圈起来的方法块3.普通属性 :未带static定义的属性4.普通方法块: {}圈起来的方法块5.构造函数:类名相同的方法6.方法 : 普通方法包含子类和接口类普通类静态变量静态代码块如果有main函数 main()普通变量普通代码块构造函数...

2019-09-17 19:45:54 131

原创 命令模式 自己理解

命令模式命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。以下的这个关键代码放在最上面的原因在于想要更好的理解命令模式,我们需要明确的区分这三部分关键代码定义三个角色:1、received 真正的命令执行对象 2、Command...

2019-09-17 17:25:15 656

原创 JMH的使用和代码

概述JMH 是一个由 OpenJDK/Oracle 里面那群开发了 Java 编译器的大牛们所开发的 Micro Benchmark Framework 。何谓 Micro Benchmark 呢?简单地说就是在 method 层面上的 benchmark,精度可以精确到微秒级。可以看出 JMH 主要使用在当你已经找出了热点函数,而需要对热点函数进行进一步的优化时,就可以使用 JMH 对优化的效...

2019-08-30 16:51:58 2364

原创 Git的使用

Git是什么?Git是目前世界上最先进的分布式版本控制系统(没有之一)。Git的诞生很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?事实是,在2002年以前,世界...

2019-08-24 20:55:26 105

原创 StringUtils里的isEmpty方法和isBlank方法的区别

isEmpty()public static boolean isEmpty(String str) { return str == null || str.length() == 0;}isBlank()public static boolean isBlank(String str) { int strLen; if (str ...

2019-08-24 10:53:04 215

转载 【java】HashMap 一遍就懂!!!!

摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介Java为数据结构中的映射定义了一个接口java.util.Map,...

2019-07-28 11:18:15 131837 31

原创 【java】 HelloWorld程序的执行流程

详细分析从编译到执行到输出结果的过程:public class HelloWorld { public static void main(String[] args) { String s ; s = “Hello World!”; //定义字符串s System.out.println(s); ...

2019-07-27 20:41:08 966

原创 【JAVA】 Hashmap!!!!!!

这篇文章特别特别好https://zhuanlan.zhihu.com/p/21673805

2019-07-25 19:10:02 149

原创 【操作系统】IO多路复用

面试题:说出 你所知道的IO多路复用模型,并解释为什么IO多路复用效率高?select poll,epoll都是IO多路复用的一种机制,就是通过一种机制可以监视多个文件描述符,一旦某个文件描述符就绪(一般是读就绪或者写就绪),就能够通知进程进行相应的读写操作,他们三个本质上都是同步IO,因为 它们都需要在读写事件就绪后自己负责读写操作,也就是读写过程中是阻塞的,而异步IO无需自己进行读写,它只负...

2019-07-24 16:18:47 806

原创 【接口和抽象类的区别】

1、抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。2、抽象类要被子类继承,接口要被类实现。3、接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现4、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。5、抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么...

2019-07-17 09:56:21 108

原创 【算法】不稳定排序 选择排序 快速排序

不稳定排序有 插入排序 快速排序#include<iostream>using namespace std;#define swap(a,b){\ __typeof(a) _temp = a; a = b; b = _temp;\}//插入排序void select_sort(int *num,int n){ for(int i = 0; i < n...

2019-07-10 10:43:42 206

原创 【算法】稳定排序

稳定排序有 插入排序哦O(n^2) 冒泡排序O(n ^2) 归并排序O(n log(n))#include<iostream>#include<stdlib.h>#include<string.h>using namespace std;#define swap(a,b){\ a^=b;b^=a;a^=b;\}//插入void inser...

2019-07-10 09:54:18 163

原创 [JAVA] Object的方法有哪些

protected Object clone()创建并返回此对象的一个副本。boolean equals(Object obj)指示某个其他对象是否与此对象“相等”。protected void finalize()当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。Class<? extends Object> getClass()返回一个对象的运...

2019-06-29 20:48:34 572

原创 [java]栈和堆的理解

栈:函数中定义的基本类型变量,对象的引用变量都在函数的栈内存中分配。栈内存特点,数数据一执行完毕,变量会立即释放,节约内存空间。栈内存中的数据,没有默认初始化值,需要手动设置。堆:堆内存用来存放new创建的对象和数组。堆内存中所有的实体都有内存地址值。堆内存中的实体是用来封装数据的,这些数据都有默认初始化值。堆内存中的实体不再被指向时,JVM启动垃圾回收机制,自动清除,这也是JAV...

2019-06-29 20:21:36 239

原创 [java] 线程的生命周期和各状态的转换

线程的状态转换图1、新建状态用new关键字和Thread类或其子类建立一个线程对象后,该线程对象就处于新生状态。处于新生状态的线程有自己的内存空间,通过调用start方法进入就绪状态(runnable)。注意:不能对已经启动的线程再次调用start()方法,否则会出现java.lang.IllegalThreadStateException异常。2、就绪状态处于就绪状态的线程已经具备了...

2019-06-29 19:13:51 548

空空如也

空空如也

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

TA关注的人

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