- 博客(51)
- 收藏
- 关注
原创 HTTPS详解
HTTPS安全特性https提供安全的http访问,安全有以下含义:机密性:指对数据的“保密”,只能由可信的人访问,对其他人是不可见的“秘密”,简单来说就是不能让不相关的人看到不该看的东西完整性:指数据在传输过程中没有被篡改,不多也不少,“完完整整”地保持着原状。身份认证:指确认对方的真实身份,也就是“证明你真的是你”,保证消息只能发送给可信的人。不可否认:也叫不可抵赖,意思是不能否认已经发生过的行为,不能“说话不算数”“耍赖皮”。与HTTP区别HTTP下层是TCP,而HTTPS下层多了S
2022-05-07 18:01:23
2676
原创 Maven插件总结
核心插件(Core Plugins)1 compiler <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</sourc
2020-05-29 00:37:38
695
原创 Redis学习笔记(一):数据结构与对象
本文内容摘自《redis设计与实现》黄建宏1. 数据结构redis主要基于以下数据结构实现:简单动态字符串(SDS)双端链表字典跳跃表压缩列表整数集合2. 对象系统redis基于上述数据结构构建了一个对象系统,针对不同的使用场景,为对象设置多种不同的数据结构实现,包括:字符串对象 (string)列表对象(list)哈希对象(hash)集合对象(set)有序集合对象(zset)redis使用键值对保存数据,键和值分别是对象,并且键总是字符串对象,值是上述5中对..
2020-05-13 00:05:20
181
原创 Shell脚本编程
通过此文记下用到过的或者看到过的shell脚本小模板,持续更新…1. 字符串相关1.1 判断字符串是否包含子串#! /bin/sh# 用 =~ 判断是否包含子串# 定义变量等号两边不能有空格source_string="How are you, I'm fine, thanks"target_string="thanks"# 必须用双中括号,且中括号两边都要有空格if ...
2020-01-04 11:53:35
260
原创 Java关闭钩子方法addShutdownHook
1. 作用利用 java.lang.Runtime.addShutdownHook() 钩子程序,可以在JVM正常退出时做一些事情,JVM关闭方式有一下三种:正常关闭:当最后一个非守护线程结束或者调用了System.exit或者通过其他特定平台的方法关闭(发送SIGINT(2),SIGTERM(15)信号等)强制关闭:通过调用Runtime.halt方法或者是在操作系统中直接kill(发送...
2019-10-09 19:22:16
847
原创 操作系统---死锁
1. 死锁定义如果一个进程集合中的每个进程都在等待只能由该进程集合中的其他进程才能引发的事件,那么,该进程集合就是死锁的——《现代操作系统》2. 四种死锁处理策略1)忽略死锁——鸵鸟算法,把头埋进沙子里,当做什么都没发生。2)检测死锁并恢复——死锁检测和死锁恢复3)死锁避免——银行家算法,仔细对资源进行分配,动态地避免死锁4)死锁预防——破环引起死锁的四个必要条件,防止死锁发生2...
2019-10-07 20:59:21
541
原创 CSS基础入门
CSS概述一言以蔽之,html元素定义了网页的内容,比如按钮、输入框等待,而CSS定义了这些元素的排布方式,包括颜色、字体、大小、间距等等。基本语法CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明。selector { property1: value1; property2: value2;}选择器可以是需要定义样式的HTML元素,比如h1,h2,p等等,除此之...
2019-09-25 21:12:32
125
原创 Java IO之File类
File类File类是java.io中用来操作文件和目录的类,它代表平台无关的目录或文件,可以新建、删除和重命名文件和目录,但它本身不能查看文件内容,需要通过输入/输出流进行文件读写构造函数File(String pathname)File(File parent, String child)File(String parent, String child)File(URI ur...
2019-09-08 18:38:00
124
原创 shell脚本编程之awk入门
awk是一个基于列的文本处理工具,另外还有一个基于行模式的sed,本文简要介绍awk的基本使用示例awk按行读取文本并视为一条记录,每条记录以字段分割成若干字段,然后输出各字段的值。分割方式默认是按“空白字符”,包括空格、Tab,每个非空白区域称为一个域,从左到右编号为1,2,3…,分别用$1,$2,…,$n表示,$0表示所有域。例如有如下文本a.txt:BeiJing 北京 0000-...
2019-09-04 19:07:12
381
原创 Java Web请求过程
Web请求过程1. http请求工具linux下的 curl 命令、谷歌浏览器的Restlet插件、postman2. 缓存机制包括浏览器本地缓存和服务器前端部署缓存服务器(比如Varnish代理)。可以用Ctrl+F5请求最新页面,首先会访问给定url,不使用浏览器缓存,其次会在请求头中添加字段:Pragma:no-cache和Cache-Control:no-cache告诉服务器端不使...
2019-09-04 17:44:16
357
原创 markdown编辑器
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2019-09-04 17:38:21
345
原创 CSAPP---大小端字节序判断方法
之前在看《UNIX网络编程》这本书时有提到一种方法,利用union的性质,代码如下#include<stdio.h>int main(){ union { short value; char union_bytes[sizeof(short)]; }test; test.value=0x0102; //...
2018-11-07 20:49:18
511
1
原创 python之print
在python2中,print不是函数,而python3中是函数,所以python3用print时参数要用(). 输出字符串引号问题 print输出字符串时,可以用单引号也可以用双引号,假如字符串中有单引号,则可以用双引号保护单引号print("this example protects the output's single quote.")假如字符串中有双引号,也可以用单引...
2018-08-15 18:16:24
877
原创 python网络请求
python2 Python2x中包含了两个网络模块,分别是urllib与urllib2,urllib2是urllib的升级版,拥有更强大的功能。urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。urllib提供urlencode方法用来GET查询字符串的产生,而urllib2没有。这是为何urllib常和urllib2一起...
2018-08-15 11:45:53
938
原创 lua 类的实现
今天在用pairs遍历一个类(table)的数据成员时发现一个奇怪的现象,代码如下 A={}function A:new() local o={} setmetatable(o,self) self.__index=self self.a=1 self.b=2 self.c=3 return oendfu...
2018-07-27 17:30:21
1131
原创 tars在centos下安装问题
下载tars源码,首先进入cpp/thirdparty目录,执行thirdparty.sh脚本,下载依赖的rapidjson 然后进入cpp/build源码目录,执行build.sh脚本, ./build.sh all 有all,cleanall,install等选项。编译时默认使用的mysql开发库路径:include的路径为/usr/local/mysql/include,lib的路径...
2018-07-24 20:44:14
1026
原创 lua 二进制打包库lpack
jce序列化到lua的项目遇到一个难点,jce是类c++的,支持void,bool,byte,short,int,long,float,double,string等类型,而lua是动态类型语言,基本类型也只有number,string,function,table,usrdata....,怎么让jce中的类型正确的用Lua表示。参考python的实现,python用的是struct库中的str...
2018-07-20 21:53:56
5338
原创 lua位运算
最近在做taf框架中的IDL语言jce序列化到lua的事情,要用到位运算,想当然的就直接用c++中那套操作,然后竟然发现lua没有位运算。。。懵逼了 (用的5.1)lua中没有直接定义相关的位运算符,所以像 1<<3, 2 &&0 ,1 | 3之类的是不成立的。github上有开源的bit库,链接:https://github.com/LuaDist/luabito...
2018-07-20 21:15:58
10914
1
原创 面向百度学python (二)
1.python还是shell,最近实习就是帮老大打打杂处理些文本,昨天给到一个任务,以一个文本的每一行作为输入,在linux下调用可执行文件,将结果排序保存为另一个文件。因为要调用命令所以第一想到的是shell,但是也仅限于得到运行结果,后面的文本处理用shell一脸懵逼...于是又用python再处理文本...有点蠢,百度才知道pythony也是可以调用linux命令的。(1)commands...
2018-06-22 20:53:03
199
原创 面向百度学Python(一)
暑期实习,要用到python,之前看过一天的基本语法,用起来很不顺手,基本靠百度完成任务,简单记录一下用过的语法。1.爬网页用的库import urllib.request #爬网页的库req=urllib.request.urlopen('http://www.baidu.com') #发送网络请求rsp=req.read() #获得网页html2.基本类型list=[] #列表,元素可...
2018-06-20 17:05:11
243
原创 c++11 之右值引用、移动语义、std::move
c++11引入了右值引用和移动语义(移动构造和移动赋值运算符),可以避免无谓的复制,提高程序性能。1.右值引用右值引用,记为T&&。左值是指表达式结束后依然存在的持久对象,右值是指表达式结束就不存在的临时对象。一个区分左值与右值的便捷方法是对表达式取地址,如果能则是左值,否则是右值。右值包括:非引用返回的临时变量、运算表达式产生的临时变量、字面值、lambda表达式、std::mo...
2018-05-04 21:20:05
356
1
原创 MySQL基本操作
1.数据库基本结构 数据库(database):一个数据库由一个或一组数据表组成。 数据表(table):数据库中的数据是以表为单位进行组织的,一个表是一组相关的按行排列的数据;每个表中都含有相同类型的信息,表实际上是一个二维表格。 记录(record):表中的每一行称为一个记录,它由若干个字段组成。 字段(Field):也称域。表中的每一列称为一个字段。每个字段都有相应的描述信息,如数据类
2017-12-06 11:14:32
192
原创 小知识
1.C++中char类型可以自动转换成string类型,即你可以用char类型字符串直接给string类型变量赋值。但反过来是不行的,string类型不能隐式的将string类型转换成char类型,想要转换,必须显式调用c_str()函数
2017-11-30 19:21:03
137
原创 Qt 网络库各个类的信号
(一)QTcpServer类 void destroyed(QObject *obj = Q_NULLPTR) void **objectName**Changed(const QString &objectName) void acceptError(QAbstractSocket::SocketError socketError) void newConnecti
2017-10-23 20:52:17
965
原创 QTcpServer类
(一)public functions 1.QTcpServer(QObject *parent = Q_NULLPTR)2.virtual ~QTcpServer()3.void close()4.QString errorString() const5.virtual bool hasPendingConnections() const6.bool isListening() c
2017-10-23 20:36:48
877
原创 QT QAbstractSocket类
QAbstractSocket is the base class for QTcpSocket and QUdpSocket and contains all common functionality of these two classes 是QTcpSocket and QUdpSocket的基类;1.enum QAbstractSocket::SocketType: QAbstractS
2017-10-23 09:03:41
1213
原创 QT QHostAddress类
(一)构造函数 1.QHostAddress::QHostAddress(quint32 ip4Addr) *Constructs a host address object with the IPv4 address ip4Addr.2.QHostAddress::QHostAddress(quint8 *ip6Addr) *Constructs a host address object
2017-10-21 15:10:59
2983
原创 QT QNetworkDatagram类
The QNetworkDatagram class provides the data and metadata of a UDP datagram. QNetworkDatagram类提供UDP数据报的数据和元数据。 QNetworkDatagram可以与QUdpSocket类一起使用,以表示UDP数据报中包含的完整信息。1.QNetworkDatagram() 2.QNetworkDat
2017-10-21 11:56:13
3314
原创 QT QUdpSocket类
1.bool hasPendingDatagrams() const Returns true if at least one datagram is waiting to be read; otherwise returns false.2.bool joinMulticastGroup(const QHostAddress &groupAddress)3.bool joinMult
2017-10-21 11:19:53
1267
原创 python学习之路---(1)
1 在Python中有4种类型的数——整数、长整数、浮点数和复数。(-5+4j) 和(2.3-4.6j)是复数的例子。2 字符串 使用单引号(’):你可以用单引号指示字符串,就如同’Quote me on this’这样。所有的空白,即空格和制表符都照原样保留。 使用双引号(”):在双引号中的字符串与单引号中的字符串的使用完全相同,例如”What’s your name?”。 使用三引号(
2017-10-16 17:10:28
180
原创 C++ string操作
一 构造函数 string s1; string s2(s1); string s2=s1; string s3(“value”); string s3=”value”; string s4(n,’c’); string s5(cp,n);//s是cp指向的数组(字符数组)中前n个字符的拷贝,此数组至少应该包含n个字符 string s6(s,pos2);//s6是string s从
2017-10-09 19:43:32
3298
原创 c/c++ 字符转换为数字
1.单个字符如‘1’,‘2’,‘3‘.....转换为数字1,2,3;char c='1';int a=(int) c;//将得到字符'1'的ASCII码;int a=c-48;//将得到数字1;字符0的ascii值是48或者int a=c-'0';
2017-10-08 12:16:06
16486
原创 欢迎使用CSDN-markdown编辑器
1.容器类型成员 iterator 此容器类型的迭代器类型 const_iterator size_type 无符号整数类型,足够保存此种容器类型最大可能容器的大小 difference_type 带符号整数类型,足够保存两个迭代器之间的距离 value_type 元素类型 reference 元素的左值类型,与value_type &含义相同 const_r
2017-09-28 11:19:06
139
原创 linux多线程之信号量---疯狂打印abcd
#include <stdio.h>#include <pthread.h>#include <fcntl.h>#include <semaphore.h>sem_t sem[4];void *handle(void *arg);int main(){ pthread_t tid[4]; int i; for(i=0;i<4;i++) { if(
2017-09-06 17:37:15
645
原创 二叉树非递归遍历c++实现
三种遍历算法均采用栈来实现1.前序遍历:先访问根节点,再访问左子树,最后访问右子树先将根节点进栈,栈不空时循环:{出栈tmp,访问tmp,若其右子树节点不空则将tmp的右孩子节点进栈,若其左孩子节点不空则将tmp的左孩子节点进栈。}2.中序遍历算法:左中右从根节点开始,将所有左节点一一进栈,当无左节点时表示栈顶节点无左子树,然后出栈这个节点,并访问它,将tmp指向刚出栈节点的右孩子
2017-09-02 20:35:05
346
原创 C++ Primer Notes(16)
1.实例化:编译器用推断出来的模板参数来为我们实例化一个特定版本的函数,这些编译器生成的版本成为模板的实例;2.模板类型参数:template;//T为模板类型参数;3.非模板类型参数:template;//N为非类型模板参数,在模板定义内N是一个常量。非类型模板参数的模板实参必须是常量表达式;4.当编译器遇到一个模板定义时,它并不生成代码。只有当我们实例化出模板的一个特定版本时,编译
2017-09-02 09:12:25
167
原创 程序内存布局,static
1.include一个文件,相当于把那个文件的代码复制到include的地方;2.程序在内存中的分布:动态区(栈和堆)、静态区代码段(.text),也称文本段(Text Segment),存放着程序的机器码和只读数据,可执行指令就是从这里取得的。如果可能,系统会安排好相同程序的多个运行实体共享这些实例代码。这个段在内存中一般被标记为只读,任何对该区的写操作都会导致段错误(Segme
2017-09-01 10:47:18
270
原创 网络群聊系统
第一阶段编写窗口类window,用ncurses库.。window类有4个公有数据(窗口)成员:header,output,friends_list,input。分别用来表示欢迎信息、输出、好友列表和输入;window接口:1.create_newwin(int,int,int,int)//创建新窗口并加边框2.create_output()//创建输出聊天内容的窗口3.c
2017-08-29 16:39:54
375
原创 C++ Primer Notes(15)
1.面向对象程序设计的核心思想:数据抽象、继承和动态绑定。2.对于某些函数,基类希望派生类各自定义自己的版本,此时基类就将这些函数定义为虚函数,加virtual关键字。3.动态绑定:当使用基类的引用或指针作为(virtual)函数的形参时,我们既能使用基类对象调用该函数,也能用派生类调用,具体执行哪个版本是根据传入函数的对象类型来决定的。(总之,动态绑定只有当我们使用基类的指针或引用调用虚
2017-08-29 08:23:26
240
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人