自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (4)
  • 收藏
  • 关注

原创 Java对接c接口,解析long类型的数据ID

【代码】Java对接c接口,解析long类型的数据ID。

2023-06-21 15:59:13 146

原创 查找算法-二分查找

二分查找算法(Binary Search Algorithm),又称折半查找算法(Half-Interval Search Algorithm),是一种在有序数组中查找某一特定元素的搜索算法。该算法每次比较中间元素的值与查找值,如果中间元素的值大于查找值,则在数组的左半部分继续查找;如果中间元素的值小于查找值,则在数组的右半部分继续查找,直到找到为止。二分查找法是一种高效的搜索算法,时间复杂度为 O(log n)。但是,在最坏情况下,二分查找可能需要查找 n 次,其中 n 表示数组的长度。

2023-06-06 22:35:15 610

原创 大华SDK发布到linux踩的坑

大华sdk二次开发

2022-08-24 23:32:02 1819 12

原创 Nginx平滑升级到1.23.1,解决版本号小于1.21.5存在的0day漏洞

nginx平滑升级

2022-07-30 23:32:10 2483

原创 解决Java对象中date类型被解析为JSON数组问题

在web应用中,经常需要将java对象转为json进行数据传输,但当java对象中包含Date类型时,JSONObject.fromObject(javaBean);这样会导致接收到数据后,使用JSONObject.parseObject(jsonObject.toString(),Obj.class);将json转为java对象时报错。将java对象中的Date类型转成yyyy-MM-ddHHmmss格式的字符串进行传输,收到后可之间转为Date对象,使用JsonConfig实现即可。...

2022-07-27 22:09:40 1480

原创 hadoop入门:MapReducer实现自己的wordcount程序

一、MapReduce概述1、MapReduce定义        MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。        MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。2、MapReduce

2021-12-14 23:52:20 322

原创 Hadoop入门:HDFS的API操作

一、运行前提已经搭建好全分布式hadoop集群二、hdfs实例代码package com.psn.hdfs;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.*;import org.checkerframework.dataflow.qual.TerminatesExecution;import org.junit.After;import org.junit.Before;import

2021-12-14 21:15:44 1439

原创 idea常用的快捷键

1. 删除光标所在行代码idea快捷键: Ctrl+Xeclipse快捷键: Ctrl+D2. 复制光标所在行代码,或者鼠标选中的代码idea快捷键: Ctrl+Declipse快捷键: Ctrl+Alt+上下键3. 切换代码大小写idea: Ctrl+Shift+Ueclipse: Ctrl+Shift+X(大写) Ctrl+Shift+Y(小写)4. 关闭当前代码窗idea: Ctrl+F4eclipse: Ctrl+W5. 快速定位到上一次编辑的位置idea: Ctrl+Al

2021-06-17 11:17:14 131

原创 Layui 日期时间控件

一、制作只选择年、月的时间控件//年时间控件function yearLaydate(id) { layui.use('laydate', function () { var laydate = layui.laydate; laydate.render({ elem: '#'+ id, type: 'year', showBottom: false, //关闭底部框 去掉取消、确定、清空按

2021-01-28 15:19:09 1409

原创 Web开发数据一致性-时间戳

一、概念     时间戳:数据库中自动生成的唯一二进制数字,与时间和日期无关的, 通常用作给表行加版本戳的机制。     时间戳存储大小为 8 个字节。 不可为空的 timestamp 列在语义上等价于 binary(8) 列。可为空的 timestamp 列在语义上等价于 varbinary(8) 列。这将导致在C#程序中获取到的timestamp类型则变成了byte[]类型。所以如果我们需要从数据库中

2020-10-14 18:09:28 585

转载 SQLServer存储过程之异常处理

简介      编程的异常处理很重要,当然Sql语句中存储过程的异常处理也很重要,明确的异常提示能够快速的找到问题的根源,节省很多时间。     下面,我就以一个插入数据为例来说明Sql Server中的存储过程怎么捕获异常的 。1、环境(1)数据库为Sql Server2008。(2)表(Course)结构为:No char(10) primary keyName varchar(

2020-09-24 10:56:18 2660

转载 SqlServer存储过程编程

一、定义变量--简单赋值declare @a intset @a=5print @a --使用select语句赋值declare @user1 nvarchar(50)select @user1='张三'print @user1declare @user2 nvarchar(50)select @user2 = Name from ST_User where ID=1print @user2 --使用update语句赋值declare @user3 nvarchar(50)u

2020-09-24 10:46:49 461

原创 leetcode-2 两数相加

一、题目题目描述:   给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807来源:力扣

2020-08-12 23:36:48 487 1

原创 非递归遍历二叉树实现

一、递归      1.借助栈,实现3种遍历的非递归算法。    2.层次遍历是自顶向下、自左至右的遍历二叉树中的元素,可以借助队列实现。二、具体实现#include<stdio.h>#include<stdlib.h>#include<stack>#include<queue>using namespace std;typedef c

2020-06-29 00:14:06 904

原创 面试必备之代理模式

一、定义    代理模式是为其他对象提供一种代理以控制对这个对象的访问。由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。二、角色1.subject(抽象主题角色):    真实主题与代理主题的共同接口。2.RealSubject(真实主题角色):    定义了代理角色所代表的真实对

2020-06-26 18:05:39 617

原创 递归实现二叉树的创建和遍历

一、定义    二叉树是一种树形结构,他的特点是每个节点之多只有两颗子树,并且二叉树有左右之分,其次不能任意点到。二、性质1、性质1    二叉树的第i层上最多有2 i-1个结点(i>=1)。性质2    在一棵深度为k的二叉树中,最多有2^k-1个结点,最少有k个结点。性质3    在一棵二叉树中,如果叶子结点的个数为n0,

2020-06-23 19:21:09 761

原创 异步通信之IOCP详解

一、 概述学习完网络基础,在写C/S应用程序时,大多童靴写服务器基本都没有用到io模型,基本都是采用“accept同步拥塞通讯和多线程方式”与客户端通讯。但当有成千上万客户端请求连接并与服务器通讯时,多线程的创建与CPU上下文的切换,服务器端压力可想而知,在资源有限的情况在,选择一个好的io模型才能搭建高性能服务器。其中IOCP广泛运用于个高性能服务器程序,apache服务器就是IOCP实现。同步通讯和异步通信在写网络程序时,我们知道CPU运行速度非常快,而在与IO设备进行数据交换时速度简直不忍直视。

2020-06-22 00:13:51 2987

原创 面试必备之原型模式

一、定义     Prototype模式是一种对象创建型模式,它用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。由原型对象自身创建目标对象。即对象创建这一动作发自原型对象本身。目标对象是原型对象的一个克隆。即通过Prototype模式创建的对象,不仅仅与原型对象具有相同的结构,还与原型对象具有相同的值。根据对象克隆深

2020-06-18 00:07:27 332

原创 归并排序详解

//归并排序-递归实现void merge(ElementType SR[],ElementType TR[],int s,int m,int n){ int i,j,k; for(k = i = s,j = m + 1; i <= m && j <= n;k++){ if(SR[i] <= SR[j]){ TR[k] = SR[i++]; }else{ TR[k] = SR[j++]; } } while(i <= m

2020-06-13 22:45:33 130

原创 面试必备之建造者模式

一、定义    GOF定义:将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。    Builder模式也叫建造者模式或者生成器模式,是由GoF提出的23种设计模式中的一种。Builder模式是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。二、角色1.建造者(Builder)

2020-06-13 14:40:48 279

原创 面试必备之抽象工厂模式

一、定义    抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。    工厂模式只能生产一个产品。例如:产品要么香蕉、要么苹果,但抽象工厂可以一下生产一个产品族,不同品种的苹果和香蕉。二、角色1. 抽象工厂(Creator)角色    抽象工厂模式的核心,包含

2020-06-12 16:30:27 301

原创 面试必备之工厂方法模式

一、定义    工厂方法模式属于类的创建型模式,又被称为多态工厂方法模式 。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。    相比于简单工厂模式,工厂方法模式的工厂类不再负责产品的创建,而是将工厂类成为一个抽象工厂角色,仅提供具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品,符合设计模式的开放-封闭原则。二、角色

2020-06-12 15:19:04 204

原创 面试必备之简单工厂模式

一、定义    简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式,但不属于23种FOG设计模式之一。通过专门定义一个工厂类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。二、角色和职能1.工厂(Creator)角色    1.简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。2.抽象(Product)角色    

2020-06-12 11:51:26 632

原创 选择排序-堆排序

一、定义    完全二叉树中所有非终端节点的值均不大于(或不小于)其左、右孩子节点的值称为堆。若在输出堆顶的最小或最大元素后,使得剩余n-1个元素的序列又建成一个堆,则得到n个元素中的次小值或次大值,这样反复执行,遍得到一个序列,这样的过程称为堆排序。堆排序最坏情况下,其时间复杂度为O(nlogn);二、实现    堆排序需要解决两个问题:(1)如何由一个无序的序列建成一个堆。(2)如何在输出顶点元素后,调整剩余元素称为

2020-06-05 11:01:38 177

原创 选择排序-简单选择排序

一、定义    每一趟排序在n - i - 1个记录中选择一个关键字最小的记录作为序列中的第i个记录。一趟排序是通过n - i - 1次关键字的比较,从n - i - 1个记录中选择一个最小的记录,并和第i个记录交换。二、实现/*选择排序: 从头至尾扫描序列,找出最小的一个元素,和第n - i - 1个元素交换,接着从剩下的元素中继续这种选择和交换方式,最终得到一个有序序列。算法复杂度 0(n^2),稳定的算法*/void selectSor

2020-06-04 10:24:34 207

原创 交换排序-快速排序

一、定义    快速排序是对起泡排序的一种改进。它通过一趟排序将待排序的记录分割成独立的两个部分,其中一部分的记录比另一个部分记录的关键字小,则在对这两部分记录继续排序,以达到整个序列有序。    具体做法是,选取一个点作为枢轴或支点,经过一趟排序,将序列分为比枢轴小的一部分和比枢轴大的一部分,然后在继续递归。即设两个指针low和high分别指向序列的开始和结束位置,pivotkey记录枢轴(一般将list[ low ] 作

2020-06-04 10:12:16 222

原创 交换排序-起泡排序

一、定义    首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序(即L.r[1].key > L.r[2].key),则将两个记录交换之,然后比较第二个记录和第三个记录的关键字。依次类推,直至第n-1个记录和第n个记录的关键字进行过比较为止。上述过程称为一次起泡排序,其结果是使得关键字最大的记录被安置到最后一个记录的位置上。然后进行第二趟起泡排序,直至n - 1趟为止就完成了整个起泡排序过程。二、实现   &nb

2020-06-03 09:50:45 143

原创 插入排序-希尔排序

希尔排序一、定义  希尔排序又称缩小增量排序,它也是一种插入排序类方法,但在时间效率较前几种有较大的的改进。二、具体实现      先将整个待排记录序列分割成若干个子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。在这里插入代码片三、分析      希尔排序的分析是个复杂的问题,因为的时间是所取“增量序列的

2020-05-25 22:59:47 310

原创 插入排序-2-路插入排序

2-路插入排序  一、定义    2-路插入排序是在折半插入排序的基础上再改进,其目的是减少排序过程中移动记录的次数,但为此要付出n个记录的辅助空间。二、具体实现    另设一个同类型的数组d,先将list[1]复制给d[1],并将d[1]看成是排好序的序列中处于中间位置的记录,然后从list中第二个记录起依次插入到d[1]之前或之后的有序序列中。先将待插入记录和d[1]进行比较,若大于d[1],则

2020-05-24 13:42:07 1225

原创 插入排序-折半插入排序

折半插入排序一、定义    由于插入排序的基本操作是在一个有序表中进行查找和插入,那对于在有序表中查找新记录的插入位置就可以使用二分查找来实现,此时进行的插入排序叫折半插入排序。二、实现    使用两个指针low、high分别指向有序表的开始和结束,求取中间位置mid = (low+ high)/ 2,然后比较待插入记录,若其大于list[mid],则插入位置在[low,mid - 1]区间,反之,则在[low + 1,

2020-05-17 23:07:25 205

原创 插入排序-直接插入排序

直接插入排序一、定义  直接插入排序是最简单的排序方法,它的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录增1的有序表。二、具体实现  整个排序过程为进行n - 1趟插入,即先将序列中的第一个记录看成是一个有序的子序列,然后从第二个记录开始逐个进行插入,直至整个序列变成按关键字非递减有序为止。  从空间来看,它只需要一个记录辅助空间,从时间来看,排序的基本操作为:比较两个关键字的大小和移动记录。直接插入排序是稳定排

2020-05-16 22:31:12 565

原创 QT快速入门笔记

QT入门到实战一、 Day011. 快捷键注释:ctrl + /运行:ctrl + r编译:ctrl + b字体缩放:ctrl + 鼠标滚轮查找:ctrl + f整行移动:ctrl + shift + 上下键帮助文档:F1自动对齐:ctrl + i同名之间.h和.cpp切换:F42.对象树(1)当创建的控件对象在堆区的时候,如果指定的父亲是QObject派生的类或QObj...

2020-04-19 17:01:35 1509 2

原创 linux/unix网络编程-入门基础

一、套接字  在网络中用来描述计算机中不同程序与其他计算机程序通信的方式。为了区分不同应用程序的进程和连接,需要使用应用程序与TCP/IP协议交互的套接字端口。  主要用到三个参数:通信的目的IP地址、使用的传输协议(TCP或UDP)和使用的端口号。1.套接字相关的数据类型  套接字编程是,通常使用sockaddr和sockaddr_in这两个系统中定义的数据类型结构体。struct s...

2020-03-09 21:23:24 640

原创 python网络爬虫笔记-python3基础回顾

一、IO编程  IO在计算机中指的是Input/Output,凡是用到数据交换的地方都会涉及IO编程,例如磁盘、网络数据传输。1.文件读写1.打开文件  python内置了读写文件的函数,文件读写之前需要打开文件,确定文件的读写模式,默认是读模式,默认缓冲区是无。  函数原型:open(name [.mode [.buffering]])  name:文件路径  mode:操作文件的...

2020-03-02 00:04:38 230

原创 Linux编程基础

一、U盘挂载  U盘插入,默认挂载到根目录下的/media当前登录用户下。  那么怎么手动挂载U盘呢?1.获得U盘名字  首先的知道U盘在Linux中叫什么名字,使用sudo fdisk -l就可以查询到,然后挂载到mnt目录下。一般叫/dev/sdb1.2.挂载到/mnt  使用sudo mount /dev/sdb1 /mnt,挂载到mnt目录下就ok了。3.卸载U盘  使用u...

2020-02-28 20:49:20 641

原创 python3快速入门

一、 第一个python程序1. 函数声明  def 函数名(参数一,参数二,….):    pass  (1) 函数不一定返回数据,可以不返回数据,但事实上python总是返回值,且不指定返回值的类型,若函数执行return,则返回对应值,若没有调用return,则默认返回空值none;  (2) 变量从来都不指定变量类型,python会在内部算出一个变量的类型并进行跟踪;  (3)...

2020-02-26 21:10:35 292

原创 Apache 2.4.6 + mysql5.7 + php7.2配置

一、安装apach1.yum更新yum update2.查看 httpd 包是否可用yum list | grep httpd3.安装 Apacheyum -y install httpd4.配置防火墙firewall-cmd --zone=public --add-port=80/tcp --permanentfirewall-cmd --zone=public --add-p...

2019-11-08 22:09:54 624

转载 mysql学习笔记

学习笔记整理至-传智播客学习视频一、数据库1.常见数据库 Oracle(神喻):甲骨文(最高!); DB2:IBM; SQL Server:微软; Sybase:赛尔斯; MySQL:甲骨文;2 安装MySQL数据库2.1 安装MySQL   自己百度  2.2 MySQL目录结构   MySQL的数据存储目录为data,data目录通常在C:\Document...

2019-11-03 23:48:46 766

原创

一、概念  栈是限定仅在表尾进行插入或删除操作的线性表。表尾端称为栈顶,表头端成为栈底,栈的一大特点是先进后出。二、顺序栈的实现  和线性表一样,栈也有两种存储方式,这里实现顺序栈。1.栈结构typedef struct{ SElemType *base; SElemType *top; int stacksize;}2.具体实现(1)栈空:s.top == ...

2019-10-22 23:24:27 220 1

原创 双向链表

一、概念  由于单链表从某个节点出发只能顺着指针往后查询其他结点。若要找寻节点的直接前驱,则需从表头指针开始查找,即查找下一个节点的时间复杂度为0(1),查找上一个节点时间复杂度为0(n),所以为克服单链表的这一缺点,我们可以创建双向链表。二、实现1.存储结构typedef DULNODE{ ElemType data; struct DULNODE *prior; struct D...

2019-10-21 22:00:51 176

QT基础快速入门笔记

QT基础快速入门,从QT编辑器QT Creater使用开始讲起,逐步深入的学习qt信号槽机制、lambda表达式、qt常用控件以及qt自定义控件等基础知识,最终达到快速入门上手qt编程的目的。

2020-04-19

ping命令实现

ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。 本程序使用socket想目标主机发送icmp数据包,等待返回结果来判断主机是否可达,代码水平有限,仅供学习参考。

2019-09-29

jvututuiughy.rar

ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。 本程序使用socket想目标主机发送icmp数据包,等待返回结果来判断主机是否可达,代码水平有限,仅供学习参考。

2019-09-19

Java的学习手册

Java有关类的查找,有力于更加的了解Java类库中的各种包

2014-07-16

空空如也

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

TA关注的人

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