自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 海康视频转码 - 标准mp4格式(java)

使用CPU进行转码 File source = new File(oldPath); File target = new File(newPath); AudioAttributes audio = new AudioAttributes(); audio.setCodec("libmp3lame"); //音频编码格式 audio.setBitRate(new Integer(800000)); audio.setC

2021-05-27 11:42:54 3123

原创 SpringBoot使用ProxyServlet进行接口转发

需求实现通过代理服务器进行接口转发功能.思路是,客户端发送请求,由代理服务端通过端口监听到请求,然后在作为代理去访问真实的服务器,最后由真实的服务器将响应返回给代理,代理再返回给浏览器。依赖 <!-- https://mvnrepository.com/artifact/org.mitre.dsmiley.httpproxy/smiley-http-proxy-servlet --> <dependency> <groupId>org.mitre.dsmile

2021-05-20 18:14:44 1917

原创 海康摄像头二次开发动态配置.dll与.so文件

需求再对海康摄像头进行二次开发时,需要将海康提供的.dll(window)文件或.so(linux)文件通过路径的方式进行配置,项目在window上开发.在linux上进行部署,另一方面在linux上是通过jar包部署,无法直接获取到jar中.dll与.so文件的路径,需做成自动获取问题1.获取jar包中的指定的文件2.如何填写有效的文件路径解决获取jar包的路径,通过JarFile解析jar包,获取到想要的数据.复制到对应的文件夹下,将路径返回代码 //通过jar包启动 public

2021-05-12 16:55:01 1126 1

原创 复制文件/文件夹的方法

public class FileUtils { //复制方法 public static void copy(String src, String des) throws Exception { //初始化文件复制 File file1=new File(src); //把文件里面内容放进数组 File[] fs=file1.listFiles(); //初始化文件粘贴 File file2=n

2021-01-28 19:09:41 957

原创 线程的一些积累

使用run和start的区别随后补充isAlive()判断线程是否运行final boolean isAlive( )Thread t = new Thread(() -> { //子线程进行字符串连接操作 int num = 1000; String s = ""; for (int i = 0; i < num; i++) { s += "Java";

2021-01-28 19:07:32 74 1

原创 mybatis-plus中的那些配置

主键ID从很大的数字开始数据库新增实例,主键ID一般都是自增长的,不用人工给它赋值。那么mybatis-plus在新增的时候,会出现主键ID从很大的数字开始(example ‘17629802347414’),而不是从1开始的。原因就在于,mybatis-plus在新增的时候,会给一个主键ID,并且这个数字不规范,还不连续。这时候我们需要忽略掉这一点,不需要mybatis-plus给我们ID。主键字段添加@TableId(type = IdType.AUTO)private Long id;配置

2020-12-23 08:58:26 226

原创 java海康sdk启动成功的经历

下载解压,避免中文带来不必要的麻烦,我把项目文件单独拿了出来使用idea启动项目,加载jdk项目导入jna.jar启动如果Intellij idea出现错误 error:java: 无效的源发行版: 11解决方法 – >改成8后就好了启动会报这样的错,仔细阅读注意事项注意事项请到海康威视官网下载最新版本设备网络SDK:http://www.hikvision.com/Cn/download_more_401.html请修改程序代码,其中HCNetSDK.java文件自

2020-12-18 15:26:10 235 1

原创 海康摄像头-java通过opencv实现

下载opencv4.3链接:https://pan.baidu.com/s/1XJQRYnNYYFpb447HC3rxEQ提取码:r7zg复制这段内容后打开百度网盘手机App,操作更方便哦打开安装包,选择一个路径后点击“Extract”连接海康摄像头使用网线连接摄像头与电脑,需要去海康官网下载SADPTool,安装路径默认,打开应用,有时会提示msvcr120.dll文件,需要去百度下载,然后放入到...

2020-12-18 08:59:56 847 1

原创 软件设计师-知识产权与标准化

保护范围和对象保护期限知识产权人确定侵权判定标准化基础知识

2020-09-14 20:01:18 159

原创 软件设计师-多媒体基础知识(简单了解)

音频的相关概念多媒体技术相关概念图形和图像的相关概念媒体的种类数据压缩基础有损压缩(图片的压缩/不可还原),无损压缩(好压工具/可还原).空间冗余(几何冗余)时间冗余(视频缓存)视觉冗余(图片另存为)信息熵冗余结构冗余知识冗余常见的多媒体标准...

2020-09-14 19:23:45 149

原创 软件设计师-程序设计语言与语言处理程序基础

编译过程(编译原理)文法定义语法推导树有限自动机正规式数据类型和程序控制结构程序语言基础函数调用-传值和传址程序语言基础-各种程序语言的特点

2020-09-14 17:22:18 104

原创 软件设计师-数据结构和算法

数组稀疏矩阵线性表广义表树与二叉树基本概念二叉树遍历反向构造二叉树树转二叉树查找二叉树(二叉排序树)最优二叉树(哈夫曼树)特殊二叉树图拓扑排序最小生成树算法基础基础查找顺序查找:将待查找的关键字为key的元素从头到尾与表中元素进行比较,如果中间存在关键字为key的元素,则返回成功,否则返回失败二分查找:查找中间数(1+n)/2,向下取整,比较,然后缩小范围,如果找到,返回成功.如果尾坐标小

2020-09-10 21:19:55 165

原创 软件设计师-面向对象技术

面向对象的基本概念UML类图设计模式

2020-09-07 20:42:12 106

原创 软件设计师-系统开发基础

软件开发模型原型化方法用户无法表达自己想象的图形,项目经理通过和用户沟通产生原型(PPT,flash,动画,UI图等),达到用户想要的雏形,摒弃型原型:原型化模型的产物,不作为开发中的一部分,只做来演示非摒弃型原型:逐渐称为开发中的一部分敏捷开发方法XP极限编程:对费用控制严格的公司使用是有效的Cockburn水晶方法:以人为中心,用最少纪律约束而能成功的方法,从而在产出效率与易于运作上达到一种平衡开放式原码:开源,程序开发人员在地域上分布很广,协同办公(一般是对团队内部的开源)S

2020-09-05 17:32:38 195

原创 软考设计师-计算机网络与信息安全

七层模型TCP/IP协议族IP地址(重点)网络规划与设计计算机网络分类网络接入技术HTML

2020-09-03 20:30:57 129

原创 软考设计师-数据库系统

三级模式-两层映射三级模式:外模式(视图级),概念模式(表级),内模式(文件级)两种映射:外模式-概念模式的映射,概念模式与内模式的映射数据库设计过程E-R模型关系代数关系代数符号特点并S1 ∪ S2去掉重复交S1 ∩ S2共同元素差S1 - S2在S1中去掉S2中有的部分S2 - S1在S2中去掉S1中有的部分笛卡尔积S1 × S2两表相乘,每一条数据对应另一表的所有元素投影π1,2(S1)选出S1表中第一第二列

2020-09-03 12:24:36 210 2

原创 软考设计师-操作系统

进程的概念进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位,它是程序块进程,控制块(PCB)和数据块三部分组成进程:动态的 程序: 静态的进程和程序的区别:进程是程序的一次执行过程,没有程序就没有进程进程是系统进行资源分配和调度的独立单元,而程序不是.进程的状态同步和互斥(直接制约) 同步:速度有差异,在一定情况下停下等待(间接制约) 互斥:千军万马过独木桥 独木桥是临界资源PV操作临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机.磁带等

2020-08-31 23:42:04 193

原创 软考设计师-计算机组成和体系结构

数据的表示二进制0 ~ 1 十进制0 ~ 9 十六进制:0 ~ 9 A ~ F后面跟H来与十进制区分按权展开法100 = 1* 10的平方 + 0 * 10的一次方 + 0 * 10的0次方数值的表示范围浮点数的运算N = 尾数 * 基数 ^ 指数(阶码)运算过程:对阶 = > 尾数计算 = > 结果格式化对阶(小数向大数看齐) :通过较小数的尾数右移实现阶码的位数表示范围 尾数的位数表示精度例子:3.14 * 10^3 + 1.2 * 10 ^5 = 0.0314 * 10

2020-08-28 16:22:00 287

原创 学习笔记-排序算法(基数排序)

介绍基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法基数排序(Radix Sort)是桶排序的扩展基数排序是1887年赫尔曼·何乐礼发明的.它是这样实现的:将整数按位数切割成不同的数字,然后按每个位数分别比较.基本思想将所有待比较数值统一为同样的

2020-08-24 08:49:24 152

原创 学习笔记-排序算法(归并排序)

介绍归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之).基本思想再来看看治阶段,我们需要将两个已经有序的子序列合并成一个有序序列,比如上图中的最后一次合并,要将[4,5,7,8]和[1,2,3,6]两个已经有序的子序列,合并为最终序列[1,2,3,4,5,6,7,8],来看下实现步骤

2020-08-23 14:39:39 147

原创 学习笔记-排序算法(快速排序)

介绍快速排序(Quicksort)是对冒泡排序的一种改进.基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列示意图代码实现public class QuickSort { public static void main(String[] args) { int[] arr = {8,9,7,1,2,3,5,4,6,

2020-08-23 09:05:19 80

原创 学习笔记-排序算法(希尔排序)

介绍希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法.希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序.基本思想希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止示意图实现逻辑希尔排序第一轮排序 int temp = 0; //将十个数据分成了5组,循环5次(次数) for (in

2020-08-19 18:52:18 189

原创 学习笔记-排序算法(插入排序)

介绍插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的.插入排序法思想插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表.插入排序思路图实现逻辑以数组int[] arr = {101,34,119,1}为

2020-08-18 19:40:11 177

原创 学习笔记-排序算法(选择排序)

基本介绍选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的.选择排序思想选择排序(select sorting)也是一种简单的排序方法.它的基本思想是:第一次从arr[0] ~ arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1] ~ arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2] ~ arr[n-1]中选取最小值,与arr[2]交换,…,第i次从arr[i-1] ~ arr[n-1]中选取最小值,与ar

2020-08-17 18:50:09 127

原创 sql通过经纬度获取几公里范围内的数据

创建表,存储经纬度信息项目中使用了高德地图,新增时将经度,纬度存入到数据库,数据库中我保留了6位小数.实现需求:通过给定的一个位置(坐标)和距离,查询到已这个距离为半径内所有的店铺.前台需要传(经度,纬度,距离)三个参数, String latitude = (String) params.get("latitude");//纬度 String longitude = (String) params.get("longitude");//经度 String distance = (String

2020-08-17 10:52:55 1694

原创 sql查询当天,本周,本月数据

获取一周,一月,一年的数据一开始只想着使用between来实现,最后发现可以直接使用sql语句实现.今天select * from 表名 where to_days(时间字段名) = to_days(now());本周SELECT * FROM 表名 WHERE YEARWEEK(date_format(时间字段名,'%Y-%m-%d')) = YEARWEEK(now());本月SELECT * FROM 表名 WHERE DATE_FORMAT(时间字段名, '%Y%m' ) = DA

2020-08-14 16:50:55 1819 1

原创 学习笔记-排序算法(冒泡排序)

基本介绍冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒.因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag判断元素是否进行过交换.从而减少不必要的比较.(这里说的优化,可以在冒泡排序写好后,在进行)图解我们将五个无序的数:3, 9, -1, 10, 20 使用冒泡

2020-08-13 19:43:15 133

原创 学习笔记-排序算法(简单介绍)

介绍排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列过程分类内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储行序。常见的排序算法分类算法的时间复杂度1)事后统计的方法:这种方法可行,但是有两个问题:一是要想对设计的算法的运行性能进行评测,需要实际运行该程序;二是所得时间的统计量依赖于计算机的硬件.软件等环境因素,这种方式,要在同一台计算机的相同状态下运行,才能比较那个算法速度更快

2020-08-13 16:28:45 140

原创 学习笔记-递归(八皇后)

八皇后问题介绍八皇后问题:是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法。思路分析1)第一个皇后先放第一行第一列2)第二个皇后放在第二行第一列,然后判断是否OK,如果不OK,继续放在第二列.第三列,依次把所有列都放完,找到一个合适3)继续第三个皇后,还是第一列.第二列……直到第8个皇后也能放在一个不冲突的位置,算是找到了一

2020-08-07 16:29:22 138

原创 学习笔记-递归(迷宫回溯)

求迷宫的最短路径创建二维数组public static void main(String[] args) { //先创建一个二维数组,模拟迷宫 int[][] map = new int[8][7]; //使用1标识墙 //上下左右置为1 for (int i = 0; i < 7; i++) { map[0][i] = 1; map[7][i] = 1;

2020-08-03 19:26:48 109

原创 学习笔记-递归(简单介绍)

概念简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。案例public class digui { public static void main(String[] args) { test(4); } public static void test(int n) { if (n > 2) { test(n-1); }

2020-07-30 19:55:40 108

原创 学习笔记-中缀表达式转后缀表达式

思路分析1)初始化两个栈:运算符栈s1和储存中间结果的栈s2;2)从左至右扫描中缀表达式;3)遇到操作数时,将其压s2;4)遇到运算符时,比较其与s1栈顶运算符的优先级: a.如果s1为空,或栈顶运算符为左括号“(”,则直接将此运算符入栈; b.否则,若优先级比栈顶运算符的高,也将运算符压入s1; c.否则,将s1栈顶的运算符弹出并压入到s2中,再次转到(4-1)与s1中新的栈顶运算符相比较;5)遇到括号时: a.如果是左括号“(”,则直接压入s1 b.如果是右括号“)”,则依次弹出s1

2020-07-29 20:59:04 138

原创 学习笔记-前缀,中缀,后缀(后缀实现综合计算器)

①前缀表达式1)前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前 (3+4)×5-6 对应的前缀表达式就是 - × + 3 4 5 62)前缀表达式的计算机求值:从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素和次顶元素),并将结果入栈.重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果 减法是栈顶减次顶3)例如: (3+4)×5-6 对应的前缀表达式就是 - × + 3 4 5 6,针对前缀表达式求值步骤如

2020-07-27 19:49:45 378

原创 学习笔记-栈(实现综合计算器)

①思路分析1)通过一个index值(索引),来遍历我们的表达式2)如果我们发现是一个数字,,就直接入数栈3)如果发现扫描到是一个符号, 就分如下情况 a.如果发现当前的符号栈为空,就直接入栈 b.如果符号栈有操作符,就进行比较,如果当前的操作符的优先级小于或者等于栈中的操作符,就需要从数栈中pop出两个数,在从符号栈中pop出一个符号,进行运算,将得到结果入数栈,然后将当前的操作符入符号栈,如果当前的操作符的优先级大于栈中的操作符,就直接入符号栈.4)当表达式扫描完毕,就顺序的从数栈和符号栈中

2020-07-23 19:40:23 99

原创 学习笔记-栈(使用数组实现)

(1)引入计算机底层是如何运算的得到结果,注意不是简单的把算式列出运算,计算机怎么理解这个算式的(对计算机而言,它接受到的就是一个字符串) ->栈(2)介绍①栈的英文为(stack)②栈是一个先入后出的有序列表③栈(stack)是限制线性表中元素的插入删除只能在线性表的同一端进行的一种特殊线性表,允许插入和删除的一端,为变化的一端,成为栈顶(Top),另一端为固定的一端,成为栈底(Bottom)④根据栈的定义可知,最先放入栈中元素再栈底,最后放入的元素再栈顶,而删除元素刚好相反,最后放入

2020-07-13 20:17:33 279

原创 学习笔记-约瑟夫问题Josephu(单向循环链表解决)

①应用场景(约瑟夫问题Josephu)②思路分析③构建单向的环形链表思路1)先创建第一个节点,让frist指向该节点,并形成环形2)后面当我们每创建一个新的节点,就把该节点加入到已有的环形链表中④遍历环形链表1)先让一个辅助指针(变量)curBoy,指向frist节点2)然后通过一个while循环遍历该环形链表即可,curBoy.next == frist退出⑤根据用户输入,生成一个小孩出圈的顺序n = 5 ,即有5个人.k = 1,从第一个人开始报数.m = 2,数2下1)需

2020-07-12 23:03:51 285

原创 学习笔记-双向链表(遍历,新增,修改,删除,有序插入)

思路分析双向链表的遍历,添加,修改,删除的操作思路1) 遍历方法和单链表一样,只是可以向前,也可以向后查找2) 添加 (默认添加到双向链表的最后)(1)先找到双向链表的最后这个节点(2) temp.next = newHeroNode;(3) newHeroNode.pre = temp;3) 修改思路和原来的单向链表一样.4) 删除(1)因为是双向链表,因此,我们可以实现自我删除某个节点(2)直接找到要删除的这个节点,比如temp(3) temp.pre.next = temp.n

2020-07-09 20:10:06 287 1

原创 学习笔记-单链表面试题(有效节点个数,倒数第k个节点,反转,从尾打印,合并)

①求单链表中有效节点的个数(如果带头节点的链表,不统计头节点) //获取单链表的节点的个数(不带头节点) public static int getLength(HeroNode head) { if (head.next == null) {//判断是否为空 return 0; } int length = 0; HeroNode cur = head.next;//临时变量 while

2020-07-08 10:45:15 123

原创 学习笔记-单链表(按顺序插入,修改,删除)

按顺序插入节点(分析)代码实现/** * 根据英雄的排名插入到指定的位置 * (如果有这个排名,则添加失败,并给出提示) */ public void addByOrder(HeroNode node) { //因为头节点不能动,我们仍然需要通过一个辅助变量来帮助我们找到指定的位置 //因为单链表,因为我们找的temp是位于添加位置的前一个节点,否则插入不了 HeroNode temp = head;

2020-07-02 09:25:53 408

原创 学习笔记-单链表(插入不考虑编号顺序)

介绍链表是有序的列表,但是它在内存中的存储如下(实际的内存图)链表是以节点的方式来存储,是链式存储每个节点都包含data域:存放数据,next域:指向下一个节点如图发现各个节点不一定是相连的链表分为带头节点和没有头节点的链表,根据实际需求来确定逻辑结构示意图需求使用带head头的单向链表实现-水浒英雄排行榜管理分析代码实现定义HeroNode类//定义HeroNode,每个HeroNode对象就是一个节点class HeroNode { public int no

2020-06-30 14:50:27 97

空空如也

空空如也

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

TA关注的人

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