自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式之单例模式:饿汉模式(懒汉模式)及优缺点分析

设计模式之单例模式:饿汉模式(懒汉模式)及优缺点分析

2022-09-02 16:23:14 1211 1

原创 压力测试分析

压测命令:利用py脚本将多个offlinelog文件合成一个log文件进入相应错误点发现有压缩包,进行解压unzip bugreport-cupid-SKQ1.210821.001-2021-10-08-20-16-52.zip -x joe开始过滤grep -iE --text "Camera3-" ./bugreport-cupid-SKQ1.210821.001-2021-10-08-20-16-52.txt发现DEAD_OBJECT查看调用栈信息grep -iE --

2021-10-11 19:17:00 144

原创 安卓开发专业英语

2021-09-10 16:10:53 191

原创 工作中常用命令总结

该命令用于从项目服务器上拉取代码repo sync -j4 --no-tags该命令用在刷机的时候,执行这两条命令使手机进入fastboost模式adb devicesadb reboot bootloader在unbuntu系统下多开命令窗口快捷键ctrl+shift+T...

2021-09-03 20:39:11 455

原创 linux整体复习_进程

说到进程,首先要理解进程就是操作系统对于一个正在运行中的程序的描述.通过这个描述实现对于程序的运行调度!操作系统下层控制硬件驱动程序实现对于硬件的控制,上层通过 系统调用接口为shell所用,用户通过shell调用接口从而与操作系统内核进行沟通!进程简称pcb,在linux系统当中,pcb就是一个结构体struct task_struct{}进程比较重要的描述信息有三个:内存指针:用于指向程序数据在内存当中位置程序计数器上下文数据:两者用于保存程序当前运行的位置操作系统认为当前应

2021-07-16 19:48:18 86

原创 linux整体复习_文件权限与常用工具

linux有两种用户状态,分为管理员用户(root)与普通用户!su命令用于对用户进行切换文件的权限:文件对操作用户的分类分为三种:文件所有者u 文件所属组g 其他用户o用户对文件进行的操作分类:r可读(read) w可写(write) x可执行rwx rwx r-x 所有者 所属组 其他用户二进制表示(在操作系统中进行存储):111 111 101 三个八进制数字进行表示 7 7 5举个栗子:所有者可读可写可执行 所属组可读可写...

2021-04-11 19:02:26 118

原创 linux整体复习_基础命令

linux中 一切皆文件!linux根目录中各各文件夹的含义./bin是用户二进制文件,日常使用的linux命令位于此目录下/sbin是系统二进制文件,与/bin文件相似,也是存放命令,但是这些通常由管理员进行使用,对系统进行维护!/etc是配置文件,常用于存放程序所需的文件系统的配置文件./dev是设备文件,主要包括设备,或外设等连接到文件的设备/proc是进程信息文件,它是一个虚拟的文件系统.包含有关进程的信息/var是变量文件,它通常包含一些大小可能不断增长的文件,如系统日

2021-04-04 01:27:37 130

原创 TCP协议可靠传输

可靠传输1.面向连接2.确认应答机制-发送数据后要求对方进行确认回复,才能知道对方是否收到了这条数据,通过序号与确认序号实现3.超时重传机制:发送数据后等待确认响应超时之后,认为数据丢失,则进行重新传输!4.通过序号/确认序号字段实现数据有序交付5.通过校验和字段校验数据一致性,不一致则要求对方进行重传!seq=0 ack=0 SYN=1seq=0 ack=1 SYN=1 ACK=1seq=1 ack=1 ACK=1seq-本条数据的起始序号ack-对对方上次数据的确

2020-11-09 16:19:58 254

原创 linux网络字节序

不同的CPU有不同的储存数据方法,分为大端方式与小端方式!小端:低位字节存放在内存的低地址!大端:高位字节存放在内存的高地址。因为现代PC机大都采用小端模式存放数据,故小端字节序又名主机字节序!有序通信双方字节序有可能有差异,这就导致有可能接收数据后处理发生错误!故人们在发送数据时,统一将数据转换为大端模式进行发送,而接收方会根据自身存储方式的决定是否要进行字节序的转换!故大端字节序又名网络字节序!端模式的由来出自于书籍<弗列格游记>,其中人们从煮熟的鸡蛋应该从较圆的一段开始吃 还是从较尖的

2020-11-06 15:05:46 206

原创 力扣面试题——链表与栈部分

找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。void Swap(int*a,int*b){int c=*a;*a=*b;*b=c;}//利用快速排序// //单趟排序 左右指针法// int PartSort(int *a,int begin,int end)// {// int key=a[end];

2020-11-03 17:19:34 162

原创 二叉树的链式结构创建以及常用接口递归实现

//二叉树//以下二叉树所有接口都将以递归的形式书写//二叉树的销毁函数要传入二级指针,比较特殊,需要谨记#include<stdio.h>#include<stdlib.h>#include<assert.h>typedef char BTDataType;typedef struct BinaryTreeNode { BTDataType _data; struct BinaryTreeNode* _left; struct Bin..

2020-11-03 14:43:40 107

原创 栈与堆底层实现代码

//栈#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<stdbool.h>typedef int DataType;typedef struct Stack{ DataType *a; int capacity; int top;}Stack;voi...

2020-11-03 14:39:55 169

原创 linux从线程创建到线程安全详细分析

线程控制:创建/终止/等待/分离操作系统没有线程的控制接口,现在我们看到的函数是封装要的库函数创建:int pthread_create(pthread_t *tid,pthread_attr_t *attr,void*(*thread_routine)(void *),void *arg)每个线程在进程的虚拟地址空间中都有一个自己相对独立的线程地址空间(主要是线程的栈存储)tid:线程地址空间的首地址;终止:如何退出线程线程入口函数调用return,线程入口函数运行完毕就会退出线程

2020-10-25 12:26:59 144

原创 linux高级IO详细介绍

高级IO包括IO概念,类型,处理流程,多路转接IO的实现模型四种典型的IO:阻塞,非阻塞,信号驱动,异步IO过程:发起IO调用,等待IO条件就绪,进行数据拷贝。阻塞IO:发起IO调用,若IO就绪条件不满足,则一直等待 优点:流程非常简单,一个IO完成后就进行下一个 缺点:无法充分利用资源,效率较为低下非阻塞:发起IO调动,若IO就绪条件不满足,则立即报错返回 优点:相较于阻塞IO,对资源的利用较为充分,可以利用就绪等待时间干点其他事情或者发起另一个IO调用 缺点:相较...

2020-10-22 18:44:33 231

原创 linux部分协议以及描述QQ发送接收过程中经过的五层模型时状态描述

以太网协议:6字节对端MAC地址/6字节源端MAC:描述哪两个相邻的设备在进行通信!2字节上层协议类型:数据分用时,网络层协议选择!4字节CRC帧尾:校验和dmac|smac|p|data|crcmac地址:网卡的 物理硬件地址,出厂时设定,早期不可更改,uint8_t mac[6]ARP协议:介于网络层与链路层之间的协议 -----通过相邻的设备的ip地址获取其设备的mac地址 广播ARP请求:指定相邻设备的ip地址,相邻的设备收到请求后,检验IP地址是否与自己相符,如果相符.

2020-10-22 17:47:54 363

原创 四种简单排序的详细分析与总结

直接插入排序: 直接插入排序就是就是从end的下一位挑选一个数字不断地向前进行插入,整个过程伴随着end的位置从0置end-1,该无序数列也逐渐成为了一个有序数列!思想还是比较简单的,当原色集合越接近有序时,直接插入排序算法的效率越高。时间复杂度是0N的二次方,是一种比较稳定的排序方式! 当写直接插入排序的代码时,我们可以先写单次循环的代码,最后再通过在外部控制end的位置写一个大循环 !...

2020-10-21 22:11:38 191

原创 数据结构之快速排序详解

快速排序是由Hoare提出的一种排序方法,对于这种排序方法,复杂度是N乘logN。是一种比较高效的排序方法!这种排序的的基本思想简单阐述一下就是,找一个key值,这个key值一般选择数组首末位置比较合理!如果选择了首位置(升序排列),那么我们就从右边开始遍历,寻找比key值小的值,而后从左边开始遍历,寻找比key值大的值!当他们各自找到对应应数字后,进行交换,而后继续左右遍历。当begin与end重合的时候,那么我们将重和点位置的值与key进行交换即可!我这里所说的是一个单趟排列。单趟捋清后,多躺就是多

2020-10-21 22:10:17 474

原创 网络知识点详细总结

OSI七层模型分别是:应用层,表示层,会话层,传输层,网络层,链路层,物理层TCP/IP五层模型分别是:应用层,传输层,网络层,链路层,物理层TCP/IP五层模型功能简述以及典型协议: 应用层:负责应用程序之间的沟通 HTTP(超文本传输协议) FTP(文件传输协议) 传输层:负责各进程之间的通信 TCP UDP 网络层:负责地址管理与路由选择 IP(ip地址对主机进行标志,路由器负责规划传输线路) 链路层:负责相邻设备之间的数据传输 交换机 以太网协议 物理层:负责...

2020-10-20 10:53:02 473

原创 linux进程间通信四种方式总结

进程间通信方式有管道,共享内存,消息队列,信号量。管道是IPC的一种方式,管道属于一种伪文件,实则是一种 内核缓冲区。在这里对三种通信方式做一个总结: 1.单工通信方式:只能由一端到达另一端,不能反过来传输!发送端与接收端是固定的,是不可变的。 2.半双工通信方式:读端->写端,读端可以变成写端,写端也可以变成读端。但同一时刻只能由一端到另一端,同一时刻,不能双向传递,只能说进行分时轮流交替进行,说白了就是一种可以选择方向的单工通信方式。 3.全单工通信方式:指同一时刻,数据...

2020-10-20 10:52:16 524

原创 对c++深浅拷贝的剖析

可重入函数与不可重入函数 当出现多个任务调用同一段相同的代码时,如果出现任务调用此函数会修改掉其他任务调用这个函数的数据的情况时,我们认为此类函数是不可重入的!也是不安全的! 相反,如果多任务调用函数时,互不影响。那么此类函数就是可重入的! 简单来说,可重入函数就是可以被中断的函数,可以在他运行期间对其进行中断,操作系统进而去执行另外一段程序,当返回控制时,不会出现错误! 可重入函数只是用...

2020-10-20 10:51:40 137

原创 进程基本概念总结

进程概念:进程就是操作系统对 正在运行中的程序描述信息,简称PCB(process control block),也叫进程控制块。在Linux中,PCB是一个具体的结构体task——struct。进程的创建:进程通过fork()来创建,此函数通过复制调用父进程的进程控制快来实现子进程的创建。引用fork函数的头文件unistd.hpid_t fork(void)fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值: 1)在父进程中,for...

2020-10-20 10:50:51 134

原创 顺序结构队列与循环队列结构说明与接口c语言实现

队列是一种尾部进头部出的数据结构,顺口溜就是先进先出。队列的结构用链式存储方式最合适的,这不仅仅是结构上的优势,更重要在于顺序式存储结构会造成“假溢出”现象。假溢出现象数队头由于出队操作,还有剩余空间,但队尾指针已达到数组的尾部,继续插入元素,队尾指针就会越出数组的上界,进而造成“溢出”,此溢出不是因为存储空间不够而产生的溢出,而是经过反复插入删除操作引起的,这中有存储空间但不能插入元素...

2020-10-19 21:45:55 267

原创 队列的链式结构c语言实现

以下是队列链式存储结构的c语言实现各个接口的代码。已经通过VS2013测试。#include <malloc.h>#include <stdio.h>#include <assert.h>typedef int DataType;typedef struct QueueNode{ DataType _data; struct QueueNo...

2020-10-19 21:45:41 222

原创 堆的基本结构分析与接口实现c语言实现

堆是一种基本的数据结构,它有属于自己的特点1.1.堆一定是一个完全二叉树(满二叉树)。//但满二叉树却不一定是一个堆2.堆中某个节点的值总是不大于或不小于其父节点的值;堆属于一种二叉树的顺序存储结构首先我们来看它的结构体定义typedef int DataType; //此处为什么要进行这样的定义,直接写int岂不是更方便。其实这是为了后面在代码复用时,不用修改整体代码,而是只...

2020-10-19 21:45:24 144

原创 二叉树链式结构在递归形式下各个接口写法c语言实现

二叉树是数据结构里最重要的一大块内容,而用递归形式 下写出的二叉树代码整洁简短,是非递归形式不能比的。当然二叉树的非递归形式也是在递归思想的指导下写出的。递归形式最大的缺点就是不容易理解。需要静静的思考!那么我们首先定义一下二叉树的结构体定义出树上的节点typedef char DataType;typedef struct Btree{DataType _data;struc...

2020-10-19 21:45:02 175

原创 栈的结构分析与基本接口c语言实现

栈是一种仅在一端进行操作的数据接口,它遵循先入后出的规则。栈可以用前面学过的链表表示也可以使用顺序表来进行实现。因为栈通常最常用的操作是在尾部进行插入和删除,故利用顺序表来实现栈再合适不过了!(时间复杂度较低,不需要遍历来寻找最后一个节点)。各种接口的实现原理也与顺序表基本相同。首先,定义栈的基本结构体typedef int DtaType;typedef struct Sta...

2019-10-07 19:30:23 173

原创 数据结构之链表的理解与相关代码演示

链表是数据结构中比较重要的内容,由于其代码中繁多的指针使用。使很多同学患上了链表恐惧症。正所谓会者不难,难者不会。多打代码多看代码就能让我们真正理解链表,并会使用链表。这篇博客我们着重讨论无头单向不循环链表。我们现在介绍一下链表的节点的结构体typedef int SLDataType;typedef struct SListNode{SLDataTyope _data;//节...

2019-10-07 19:30:08 189

原创 数据结构之顺序表的理解与相关代码演示

学习数据结构一定要多思考代码的写作思想,多写代码。偷懒会前功尽弃!!结果不会陪着你演戏对于顺序表,我们在学习之前一定要明确它的优劣所在。其优点总结起来:1.随机访问能力强,时间复杂度为O(1)。2.数据在排列结构上是连续的。那么它的缺点在于1.在顺序表中间或前面位置进行插入与删除的时候,比较麻烦,会影响之后的数据排列。2.增容的时候需要走三部曲,代价较大,比较麻烦。对于顺序表我们先来介绍一...

2019-09-05 10:36:00 249

原创 TCP协议下客户端与服务端连接与挥手断开的详细图解

2019-06-21 15:42:16 237

原创 花儿还有重开日,人生没有再少年.

我是来自西安工业大学17级计科5班的林佳,我所学的专业是计算机科学与技术.时间如白驹过隙,大学生活已经将近一半,很幸运我选择了一门自己所热爱的专业.但技术上的不足,每每都让我很畏惧和学习好的同学谈论技术.大二开始的时候我想了很多,越发为自己的未来而担心.我深切的希望能真正地融入到互联网的圈子里,交更多的志同道合的好朋友.每次的语言考试我都会发现很多细节题记得不牢,编程的时候搭不起大型程序的基本...

2019-01-27 21:20:38 558

原创 三道基础c语言题目详解附源代码

题目一:计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。次题目我用了两种算法三条不同途径去进行计算.#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;int main(){ double sum = 0, sum2 = 0; for (int i = 1; i &lt;= 99; i += 2)...

2018-12-02 21:13:25 305

空空如也

空空如也

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

TA关注的人

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