自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 集群启动脚本

#! /bin/bashcase $1 in"start"){ echo " -------- 启动 集群 -------" echo " -------- 启动 hadoop集群 -------" /opt/module/hadoop-2.7.2/sbin/start-dfs.sh ssh hadoop103 "/opt/module/hadoop-2.7.2/sbin/start-yarn.sh" #启动 Zookeeper集群 zk.sh startsleep 4s;.

2021-08-03 23:54:11 253

原创 虚拟机文件同步脚本

#!/bin/bash#1 获取输入参数个数,如果没有参数,直接退出pcount=$#if((pcount==0)); thenecho no args;exit;fi#2 获取文件名称p1=$1fname=`basename $p1`echo fname=$fname#3 获取上级目录到绝对路径pdir=`cd -P $(dirname $p1); pwd`echo pdir=$pdir#4 获取当前用户名称user=`whoami`#5 循环for host.

2021-08-03 23:51:13 278

原创 JAVA集合实例

1.ArrayList&LinkedListpackage com.allen.study;import java.util.Iterator;import java.util.LinkedList;/** * 重点掌握: * 1.每个集合对象的创建 * 2.向集合中添加元素 * 3.从集合中取出某个元素 * 4.遍历集合 * @Author: allen * @Date: 2020/11/30 - 11 - 30 - 23:13 * @Description

2020-12-01 01:23:04 752 1

原创 const关键字--常量指针和指针常量

#include <stdio.h>/*如果const读作常量 *读作指针,那么const在*左边就是常量指针,const在*右边就是指针常量*/int main(){ /*常量指针是指针指向的内容是常量*/ /*常量指针不能通过这个指针改变变量的值 ,但是还是可以通过其他引用来改变变量的值*/ int a = 5; const int* n = &a; printf("n = %d \n", *n); printf("a = %d \n", a); a = 6.

2020-09-26 11:01:03 221

原创 数据库之必知必会(二)

数据过滤4、过滤数据4.1 使用WHERE子句数据库表一般包含大量的数据,很少需要检索表中的所有行。通常只会根据特定操作或报告的需要提取表数据的子集。只检索所需数据需要制定搜索条件(search criteria),搜索条件也称为过滤条件(filter condition)。在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。WHERE子句在表名(FROM子句)之后给出。输入:SELECT prod_name, prod_price FROM Products WH

2020-09-14 10:33:04 187

原创 多进程多线程基础

一、概念1 概念(1)进程1)进程是操作系统资源分配的基本单位2)一个进程可以有多个线程,但至少有一个线程3)资源分配给进程,同一进程的所有线程共享该进程的所有资源4)同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),拓展段(堆存储)5)进程有独立的地址空间(2)线程1)线程是任务调度和执行的基本单位2)一个线程只能属于一个进程3)每个线程拥有自己的栈段,栈段又叫运行时段,用来存放所有局部变量或临时变量4)CPU分给线程,即真正在CP

2020-08-25 10:03:11 362

原创 数据库之必知必会(一)

1、了解SQL1.1 数据库基础1.1.1 数据库 database保存有组织的数据的容器(通常是一个文件或一组文件)1.1.2 表 table某种特定数据类型数据的结构化清单。数据库中的每个表都有一个名字来标识自己。这个名字是唯一的,即数据库中没有其他表具有相同的名字。但在不同的数据库中完全可以使用相同的表名。1.1.3 列和数据类型表由列组成。列存储表中某部分的信息。列 column表中的一个字段。所有表都是由一个或多个列组成的。数据类型所允许的数据的类.

2020-08-05 19:17:36 451

原创 Linux启动过程

Linux启动过程1 加载BIOS的硬件信息与进行自我测试,并依据设置取得第一个可启动设备;2 读取并执行第一个启动设备内MBR(主引导分区)的boot loader(即grub和lilo等程序);boot loader是内核运行之前的一段程序,为内核运行做好准备,初始化硬件设备;3 依据boot loader的设置加载内核(kernel),kernel会开始检测硬件与加载驱动程序;...

2019-08-06 23:39:09 175

原创 进程与线程

进程与线程1 进程1.1 为什么引入进程1.1.1 程序的顺序执行(1)程序执行的顺序性 程序在处理机上执行时,其操作只能严格地按照所规定的顺序执行,即后继操作只有在前一操作执行完毕之后才能进行。(2)程序环境的封闭性 程序执行时会独占系统的全部资源。(3)程序执行结果的确定性 程序执行的结果,只由初始条件和程序本身来确定,不...

2019-08-06 23:15:23 333

原创 死锁

死锁 死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,若无外力作用,这些进程都将无法再向前推进。1 产生死锁的原因1.1 竞争资源 当系统中供多个进程共享的资源不足时,将引起进程对资源的竞争而产生死锁。 竞争资源引起的死锁,竞争的资源可以分为可剥夺性资源(某进程在获得这类资源后,该资源可以被其他进程或系统剥夺,如处理机和内存资源)和...

2019-08-06 21:33:31 544

原创 ELF可执行文件的理解

ELF可执行文件的理解 ELF(Executable and Linking Format)是一种对象文件的格式,用于定义不同类型的对象文件(object files)中都放了什么东西、以及都以什么样的格式去放这些东西。ELF是构成众多xNIX系统的基础之一。1 对象文件的三个种类1.1 可重定位的对象文件(Relocatable object file) ...

2019-08-06 17:23:15 4554

原创 fork()与vfork()函数

fork()与vfork()函数1 fork()函数 创建一个和当前进程映像一样的进程。#include <sys/types.h>#include <unistd.h>pid_t fork(void); 失败返回-1;成功返回:父进程返回子进程的进程ID(非负);子进程返回0。 fork会产生一个和父进程完全相...

2019-08-06 16:37:54 267

原创 wait和waitpid

wait和waitpid 一个进程在终止时会关闭所有文件描述符,释放在用户空间分配的内存,但它的PCB还保留着,内核在其中保存了一些信息:如果是正常终止则保存着退出状态,如果是异常终止则保存着导致该进程终止的信号是哪个。这个进程的父进程可以调用wait或waitpid获取这些信息,然后彻底清除掉这个进程。1 孤儿进程和僵尸进程 (1)孤儿进程:父进程先于子进程结...

2019-08-06 15:59:17 914

原创 进程间通信方式

进程间通信方式 管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常指父子进程关系。 命名管道(FIFO):有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 消息队列(message queue):消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服...

2019-08-01 11:48:50 595

原创 HTTP1.0和HTTP1.1和HTTP2.0的区别

HTTP1.0和HTTP1.1和HTTP2.0的区别1 HTTP1.0和HTTP1.1的区别1.1 长连接(Persistent Connection) HTTP1.1支持长连接和请求的流水线处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启长连接keep-alive,一定程度上弥补了HTTP1.0每次请求都...

2019-07-30 23:18:58 86221 17

原创 XSS攻击

XSS攻击1 XSS简介 XSS跨站脚本攻击(Cross Site Scripting),就是攻击者在web页面插入恶意的script代码,当用户浏览该页面之时,嵌入其中web里面的script代码会被执行,从而达到恶意攻击用户的特殊目的。2 XSS的类型2.1 反射型XSS 反射型XSS只是简单的把用户输入的数据“反射”给浏览器。也就是说需要诱使用户“...

2019-07-30 23:07:08 542

原创 DDos攻击

DDos攻击1 概念 传统的Dos攻击:利用合法的服务器请求去访问服务器,占用大量的服务器资源,导致其它用户无法合理访问服务器。 DDos攻击:distributed denied of service分布式拒绝服务,利用大量的请求造成资源过载,导致服务器不可用。2 DDos分类2.1 网络层DDos攻击(1)SYN flood攻击...

2019-07-30 23:02:19 774

原创 CSRF跨站请求伪造

CSRF跨站请求伪造1 CSRF概念 CSRF(Cross Site Request Forgery)跨站请求伪造。也被称为One Click Attack和Session Riding。攻击者(黑客、钓鱼网站)盗用你的身份,以你的名义发送恶意请求,这些请求包括发送邮件、发送消息、盗取账号、购买商品、银行转账,从而使你的个人隐私泄露和财产损失。2 CSRF攻击实例...

2019-07-30 22:55:14 228

原创 对称加密和非对称加密

对称加密和非对称加密1 对称加密1.1概念 加、解密使用的同是一串密钥,所以被称作对称加密。对称加密只有一个密钥作为私钥。常见的对称加密算法:DES、AES等。1.2 优缺点 对称加密相比非对称加密算法来说,加解密的效率要高得多、加密速度快。但是缺陷在于对于密钥的管理和分发上比较困难,不是非常安全,密钥管理负担很重。2 非对称加密2.1 概念...

2019-07-30 11:38:56 253

原创 TCP粘包和拆包

TCP粘包和拆包 TCP是个“流”协议,没有界限的一串数据。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是所谓的TCP粘包和拆包问题。假设客户端分别发送了两个数据包D1和D2给服务端,由于服务端一次读取到的字节数是不确...

2019-07-15 11:04:27 9229 1

原创 Cookie和Session的关系和区别

Cookie和Session的关系和区别1.1 Cookie Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息。每次HTTP请求时,客户端都会发送相应的Cookie信息到服务端。它的过期时间可以任意设置,如果不主动清除,在很长一段时间里面都可以保留着,即便这之间把电脑关机了。1.2 Session Session是在无状态的HTTP协议下,...

2019-07-15 10:09:22 972

原创 HTTP与HTTPS的区别

HTTP和HTTPS的区别 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。 为了解决HTTP协议的这一缺陷,需要使用另一种协议:...

2019-07-15 10:06:13 245

原创 HTTP请求的完全过程

HTTP请求的完全过程1.1 浏览器根据域名解析IP地址 浏览器根据访问的域名找到其IP地址。DNS查找过程如下:浏览器缓存:首先搜索浏览器自身的DNS缓存(缓存的时间比较短,大概只有1分钟,且只能容纳1000条缓存),看自身的缓存中是否是有域名对应的条目,而且没有过期,如果有且没有过期则解析到此结束。 系统缓存:如果浏览器自身的缓存里面没有找到对应的条目,那么浏览器会搜...

2019-07-09 11:04:17 362

原创 TCP协议的三次握手和四次挥手

TCP协议的三次握手和四次挥手1.1 三次握手三次握手(three-way handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。客户端向服务器:SYN=1,seq=m;客户端状态为:SYN_SENT 服务器向客户端:SYN=1,ACK=1,se...

2019-07-09 10:53:22 210

原创 HTTP协议之GET与POST

HTTP协议之GET与POST1.1 GET与 POST的区别?1.GET请求的数据会附在URL之后,以?分割URL和传输数据,参数之间以&相连;POST把提交的数据则放置在是HTTP包的包体中。2.GET的长度受限于URL的长度,而URL的长度限制是特定的浏览器和服务器设置的,理论上GET的长度可以无限长。3.POST是没有大小限制的,HTTP协议规范也没有进行大小限制,...

2019-05-27 11:26:49 396

原创 HTTP请求的完全过程

HTTP请求的完全过程1.1 浏览器根据域名解析IP地址 浏览器根据访问的域名找到其IP地址。DNS查找过程如下:浏览器缓存:首先搜索浏览器自身的DNS缓存(缓存的时间比较短,大概只有1分钟,且只能容纳1000条缓存),看自身的缓存中是否是有域名对应的条目,而且没有过期,如果有且没有过期则解析到此结束。 系统缓存:如果浏览器自身的缓存里面没有找到对应的条目,那么浏览器会...

2019-05-27 11:22:45 155062 16

原创 C++归并排序非递归

归并排序非递归1.算法思想开始以间隔为1进行归并,也就是说,第一个元素跟第二个元素进行归并,第三个与第四个元素进行归并;然后,再以间隔为2进行归并,第一个元素到第四个元素进行归并,第五个元素到第八个元素进行归并;再以间隔2*2进行归并,同理,直到2*k超过数组长度为止。2.具体代码#include <iostream>#include <vector&...

2019-05-19 17:19:44 2589 2

原创 01二维数组中的查找

01二维数组中的查找题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。代码#include <iostream>#include <vector>using namespace std;//从右上角向...

2019-04-28 17:31:44 156

原创 剑指Offer代码 C++

剑指Offer C++代码GitHub链接:https://github.com/AllenLeety/swordOfferCoding

2019-04-28 17:24:28 1102 1

原创 堆栈实现中缀表达式转为后缀表达式

堆栈实现中缀表达式转为后缀表达式(1)规则       中缀表达式转为后缀表达式也有一定的规则,这个规则是根据操作符的运算优先级来定的转为后缀表达式的规则为:如果遇到操作数,我们就直接将其输出。 如果遇到操作符,则我们将其放入到栈中,遇到左括号时我们也将其放入栈中。 如果遇到一个右括号,则将栈元素弹出,将弹出的操作符输出直到遇到左括号为止。注意,左括号只弹出并不输出。 如果遇到任...

2019-01-29 16:06:54 5302

原创 使用堆栈计算后缀表达式

使用堆栈计算后缀表达式一、实现栈结构根据栈的先进后出的特点,很容易设置栈结构的接口:入栈、出栈、判空、size()等。可以用线性表的方法来实现一个栈结构,其实也就两种,用链表或数组实现栈。但是,在C++标准库中已经为我们实现了栈结构,而且是按照最高效率、最优的标准实现的,可以放心的使用C++标准库提供的栈结构,以C++一贯的作风,其实现的栈结构是一个栈类型,定义在&lt;stack&g...

2019-01-29 16:01:18 5374 1

原创 斐波那契数列解法

斐波那契数列解法1、概念在数学上,费波那契数列是以递归的方法来定义:F0=0F1=1Fn=Fn-1+Fn-2(n≧2)用文字来说,就是费波那契数列由0和1开始,之后的费波那契系数就是由之前的两数相加而得出。首几个费波那契系数是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233……(OEIS中的数列A000045)特别...

2019-01-28 17:08:28 1496

原创 十大经典排序算法

十大经典排序算法 排序算法可以分为内部排序和外部排序。内部排序是数据记录在内存中进行排序。而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。关于时间复杂度:平方阶(O(n2))排序各类简单排序:直接插入、直接选...

2019-01-25 14:32:41 1083

转载 HTTP协议详解

引言                                               HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation ...

2019-01-22 09:44:25 666

原创 两个栈实现一个队列

用栈实现队列1、栈的特点栈的特点是先进后出,进出元素都是在同一端(栈顶)。入栈:出栈:2、队列的特点队列的特点是先进先出,出入元素是在不同的两端(队头和队尾)。入队:出队:3、两个栈实现队列我们拥有两个栈,可以让其中一个栈作为队列的入口,负责插入新元素;另一个栈作为队列的出口,负责移除老的元素。队列的主要操作无非有两个:入队和出队。在...

2018-12-19 16:40:42 58736 9

原创 外部排序

外部排序         给你一个包含20亿个int类型整数的文件,计算机的内存只有2GB,怎么给它们排序?一个int数占4个字节,20个亿需要80亿字节,大概占用8GB的内存,而计算机只有2GB的内存,数据都装不下!可以把8GB分割成4个2GB的数据来排,然后在把他们拼凑回去。如下图:         排序的时候可以选择快速排序或归并排序等算法。为了方便,我们把排序好的2G有序数据称...

2018-11-26 16:21:45 22021 9

原创 树、森林和二叉树的转换

树、森林和二叉树的转换1.树转换为二叉树(1)加线。在所有兄弟结点之间加一条连线。(2)去线。树中的每个结点,只保留它与第一个孩子结点的连线,删除它与其它孩子结点之间的连线。(3)层次调整。以树的根节点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。(注意第一个孩子是结点的左孩子,兄弟转换过来的孩子是结点的右孩子)2.森林转换为二叉树(1)把每棵树转换为二叉树。...

2018-08-14 23:27:32 661

转载 冒泡排序优化

什么是冒泡排序?冒泡排序的英文Bubble Sort,是一种最基础的交换排序。大家一定都喝过汽水,汽水中常常有许多小小的气泡,哗啦哗啦飘到上面来。这是因为组成小气泡的二氧化碳比水要轻,所以小气泡可以一点一点向上浮动。而我们的冒泡排序之所以叫做冒泡排序,正是因为这种排序算法的每一个元素都可以像小气泡一样,根据自身大小,一点一点向着数组的一侧移动。具体如何来移动呢?让我们来看一个栗子:...

2018-07-24 22:37:41 246

原创 二叉树的前序遍历、中序遍历和后序遍历之间还原二叉树

二叉树的前序遍历、中序遍历和后序遍历之间还原二叉树1、概念(1)前序遍历      a、访问根节点;b、前序遍历左子树;c、前序遍历右子树。(2)中序遍历      a、中序遍历左子树;b、访问根节点;c、中序遍历右子树。(3)后序遍历      a、后序遍历左子树;b、后续遍历右子树;c、访问根节点。2、前序遍历和中序遍历还原二叉树思想如下:    a、根据前序遍历结果,第一个元素为二叉树的根结...

2018-06-21 09:57:03 56546 16

原创 (九)快速排序随机化版本

快速排序随机化版本1、描述       采用一种称为随机抽样(random sampling)的随机化技术,使得分析更加简单。与始终采用A[r]作为主元的方法不同,随机抽样是从子数组A[p…r]中随机选择一个元素作为主元。首先将A[r]与从A[p…r]中随机选出的一个元素交换。通过对序列p,…,r的随机抽样,可以保证主元元素x=A[r]是等概率地从子数组的r-p+1个元素中选取的。PARTITIO...

2018-05-10 16:28:51 1017

空空如也

空空如也

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

TA关注的人

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