- 博客(34)
- 收藏
- 关注
原创 一个简单登陆页面的测试
今天面试的时候,面试官问了一个事后看起来特别简单的问题,但是当时由于紧张答得是乱七八糟的,接下来我就来总结一下。给你一个简单的登陆页面进行测试测试: 一个页面有两个输入框(一个输用户名,一个输入密码),一个登陆框,如果让你负责这个模块的测试,你会从哪些方面来入手。你看到这个题,你会想到测试哪些方面?功能测试?兼容性测试?这就完了?好了接下来我就系统的说一下。 首先,...
2018-09-07 23:29:59 5953 1
原创 剑指offer之替换空格
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。当看到这个题时,我的第一个反应就是创建一个新的数组,大小刚好是原来数组的长度加上空格数*3。先创建新数组 然后将字符串一个字符一个字符拷贝 当遇到空格则添加为%20,然后继续拷贝 重复以上过程,直到字符串结束但是,...
2018-08-29 14:09:34 242
原创 剑指offer之数组查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。完成本题的思路就是:既然已经知道每一行的最后一个数为该行的最大数,那就用每一行的最大数与目标数进行比较,当目标数大于本行最大数时,说明在这一行都不可能找到目标数,即让行数自增,用下一行...
2018-08-29 10:21:17 321
原创 shell脚本之工具
在学习了shell脚本的基本语法,命令,符号之后,接下来要看的就是shell脚本使用的所有工具了。 在shell脚本中,工具的使用简化了所要编写的代码。接下来就介绍几个shell下经常使用的工具。 1、sort sort工具的常用语法就是将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,默认是升序。 sor...
2018-07-12 16:10:02 26701 3
原创 shell脚本
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,一种和内核沟通的外壳应用程序的统称。这个应用程序有时提供了一个界面,用户通过这个界面访问操作系统内核的服务。 bash是shell中的佼佼者。我们一般说的shell是指shell脚本。1、sh...
2018-07-09 16:49:29 298
原创 shell之正则表达式
学习过编程语言的应该都听说过正则表达式这个词,那么正则表达式到底是什么呢?接下来就让我们来了解一下。 1、正则表达式简介 正则表达式是用于描述一组字符串特征的模式,用来匹配特定的字符串。通过特殊字符+普通字符来进行模式描述,从而达到文本匹配目的。 我们一般使用正则表达式是来进行模糊匹配。1、grep 相信看到grep工具,我们应该不会很陌...
2018-07-06 22:57:50 7870
原创 C语言之静态,动态顺序表的实现
在学习了C语言之后,我们知道了数组。那今天我们就用C语言来实现一下顺序表。顺序表是什么呢?顺序表是一种简单的数据结构,他的底层结构就用的数组,他的空间是一段地址连续的空间。SeqList.h#ifndef __SQLLIST_H__ #define __SQLLIST_H__ #include<stdio.h>#include<assert.h>#include&...
2018-05-28 17:53:32 286
原创 static、consts使用场景和条件
在生活中,有些值是不发生变化的。比如一个人的身份证号码,血型,性别等等。 在计算机中要描述这些信息就需要有一个不变的量来表示。这种值我们就叫做常量。 在C语言中 1、常量的分类: 字面常量 1,3.14.‘q’,‘\n’, const定义的常量 当const 修饰一个标识符的时候,这个标识符依然是一个变量,但是它具有常属性,不能被直接改变。 ...
2018-05-26 21:13:04 2111
原创 网络协议初识、传输流程
在学习网络之前,我们先来了解一下计算机网络的背景。1、计算机网络背景 首先我们要提一个问题,网络是什么?接下来,我们就来谈谈网络。 我们知道,我们的电脑硬件之间都是由线连接的,而正是由这些线和硬件软件构成电脑,现在我们来举个例子,当我们把电脑拆开,然后把每个硬件都分在不同的区域,但是之间依旧用先连接,这样还是一台电脑,不过就是硬件之间的线变得长了一点而已。这就叫做网络。(1...
2018-05-07 22:14:07 1629
原创 死锁、读写者模型实现
在学习了线程之后,在上一博客中我模拟实现了生产者消费者模型,再模拟实现生产者消费者模型的时候我们都知道,若不加制约,可能生产者还没生产完消费者就来消费了,所以我们就需要互斥量和条件变量来进行制约。 而如何制约呢?莫非就是加个锁,当生产者要生产时先去申请这个锁,当申请到锁时,就去进行生产,当生产完了之后就去释放锁,然后消费者再去申请锁,然后再进行消费。接下来我们就来聊聊这...
2018-04-24 17:12:53 554
原创 进程间关系与守护进程
在我们学习完进程和线程之后,我们知道进程与进程之间是相互独立的,而线程与线程之间是有一定的联系的。那么进程与进程之间就真的没有关系吗?接下来就来学习一下进程间关系以及一个新的名词守护进程。 在学习进程间关系之前,我们来学习几个名词:1、进程组/作业/会话(1)进程组 我们在学习进程的时候就知道,每一个进程都有自己唯一的进程ID,那么今天我就要说,每一个进程除了...
2018-04-17 20:54:16 325
原创 线程的概念、控制、以及同步与互斥
在学习了进程过进程之后,我们就该来学习一下线程了,什么是线程呢?接下来我们就来学习一下。1、线程的概念 我们都知道,进程就是程序运行起来的实体,包括一大堆的数据结构,而线程是什么呢?我们应该听过一句话“线程是在进程内部运行的”,如何理解这句话呢?接下来带着问题我们来学习。(1)线程的概念 什么是线程?简单来说,线程就是一个程序里的执行流,更准确的说:线...
2018-04-10 20:48:35 267
原创 进程信号
在学习进程间通信时,我们曾经学过一种方式叫信号量,它就相当于一个计数器,而当时我还在想信号量与信号有什么关系呢?其实信号量与信号是两件截然不同的事物。接下来我们就来学习一下信号,然后就会发现信号和信号量到底有什么不同? 在我们生活中,关于信号的例子特别多,比如红绿灯啊,手机、闹钟铃声啊,十二点的下课铃声啊等等都是一种信号。1、信号的基本概念(1)信号的引入 ...
2018-04-03 14:39:07 271
原创 进程替换以及简单实现简易shell
在前面学习了进程的创建、等待、退出之后,我们知道了在有些时候子进程和父进程会共享地址空间,比如在Vfork()函数调用的时候,所以,今天我们来学习一下进程替换和一个简单的小程序。1、进程程序替换 (1)替换原理 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数来以执行另一个程序。当进程调用一种exec函数...
2018-03-29 19:01:09 357
原创 进程的创建、等待以及退出
学习了进程的进步概念之后,接下来我们就来学习一下进程的创建、等待以及终止等。1、进程的创建 在Linux中,fork()函数是非常重要的函数,它从已存在的进程中再创建一个新进程。新进程为子进程,而原进程为父进程。(1) pid_t fork(void); 返回值:子进程返回0,父进程返回子进程id,出错返回-1; 进程调用fork(),当...
2018-03-29 16:47:44 1093
原创 进程概念之孤儿与僵尸
在了解了进程是什么后,接下来我们来了解一下进程的其他相关。 进程可以使用命令来进行查看 进程的信息可以通过/proc系统文件夹查看;(如要查看PID为1 的进程信息,需要查看/proc/1这个文件夹)大多数进程信息同样也可以用top和ps这些用户级工具来获取 通过系统调用获取进程标识符的方法: 进程ID(PID):调用函数getpid(); 父进程I...
2018-03-27 18:01:27 171
原创 进程的概念之PCB
学习过操作系统的人应该都对于进程这两个不会陌生,当然没学过操作系统的人应该也听过进程这个词,但是进程是什么呢?接下来,就来学习一下进程的相关信息。从用户角度看:进程是程序的一次动态执行过程,也就是说,只有当一段程序执行起来,它才能称为进程。从操作系统角度看:进程是操作系统分配系统资源(CPU时间,内存)的基本单元,也是最小单元。 进程需要相关的数据结构管理,PCB进程控...
2018-03-26 22:17:02 2227
原创 进程间通信之信号量
在学习了进程间通信的前几种方式管道,消息队列、共享内存之后,进程间通信的另一种方式——信号量。 在学习信号量之前,需要先理解几个名词。 互斥:由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间需要竞争使用这些资源,这种关系为进程的互斥。 同步:多个进程需要相互配合共同完成一项任务。 ...
2018-03-24 19:24:47 1758
原创 进程间通信之共享内存
继学习过进程间通信的两种方式管道和消息队列之后,接下来就要学习一个速度最快的进程间通信的方式——共享内存。 为什么说共享内存是最快的IPC形式呢?因为它省掉了两次数据拷贝的过程。一旦这样的内存映射到共享他的进程的地址空间,这些进程间数据传递不在涉及到内核(就是进程不在通过执行进入内核的系统调用来传递数据)。 1、共享内存的示意图 2...
2018-03-24 13:43:16 221
原创 进程间通信之管道
在谈到进程的概念时,大多数人的第一反应可能就是PCB(就是进程控制块), 当然这是对的,因为PCB是进程存在的唯一标示,但与此同时我们还要想到虚拟地址空间、页表、物理地址以及三者之间的映射关系。 在学习了进程后,接下来就要进行深入的理解有关进程的内容。 我们都知道,进程具有独立性,进程之间一般不会相互影响。但也有特殊情况,比如说进程间通信。...
2018-03-21 22:54:46 262
原创 循环语句结构的应用(二)猜数字游戏
在学习了循环语句结构之后,我们来做一个简单的猜数字游戏。 在很受欢迎的综艺快乐大本营中,有一个很好玩的游戏叫做深水炸弹,也就是 今天我们要实现的猜数字游戏。原理就是由电脑随机产生一个数字,然后由你 诉你猜大了,然后你就可以找到一个区间继续猜,以此循环,直到猜正确。 接下来就对理论进行实践。#define _CRT_SECU...
2018-03-15 21:16:49 923
原创 关于if..else..及for循环的简单小练习(一)
作为程序化结构设计语言,C语言的三种语句结构:循环结构,顺序结构,选择结构 就显得尤其的重要。 在简单的学习过循环结构后,我们应该对几种循环语句有了简单的了解和运用了,接下来,我们就做几道简单编程题练习一下。 1、写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1 程序原型: int coun...
2018-03-14 23:41:16 3274 1
原创 初级语言之C语言:初级了解常量、变量
在对于语言的学习有了一段时间后,我对C语言中所学知识进行一下总结。今天先来回顾一下常量和变量。 在C语言中最简单的程序就是输出一个“Hello world!”。而要输出这句话,首先要有一个函数入口,接下来就先来看一下函数入口main函数。 main函数的书写一般为#include<stdio.h>int main(){ //函数体...
2018-02-09 20:29:31 202
原创 关于多态的简单阐述
在上篇博客中,简单提了一下C++的第一个特点继承,今天就来聊聊第二个特点:多态一、多态的概念1、什么是多态呢?简单来说,多态就是面向对象的重要特性,也可以说是同一种事物的不同体现,或者是同一事物表现出得多种形态。2、多态的分类 静态多态:编译器在编译期间完成,编译器根据函数实参的类型(可能会进行隐式转换)。动态多态:在程序运行期间(非编译期间)判断所引用对象的实际类型,根据其实际类型调用相应的...
2017-10-14 16:08:26 556
原创 关于string类中的一些小问题的总结
在学习了深拷贝&浅拷贝&引用计数后,我简单的对本节课做了一个小总结:1.什么是浅拷贝,里面存在什么问题? 简单来说,浅拷贝就是对象的数据成员之间的简单赋值。 在浅拷贝中,若在string类中没有给出拷贝构造函数和赋值运算符重载函数,则系统会默认生成如下拷贝构造和赋值运算符重载函数。//拷贝构造函数string(const string&s):_pstr(
2017-09-29 16:54:40 270
原创 用C语言实现从C到C++的注释转换
在C语言的学习过程中,在平时的程序编写过程中,注释这两个字估计大家都不陌生。今天,我就用C语言简单的实现一下从C到C++的注释转换。
2017-07-30 14:12:36 362
原创 解析结构体和位段
在C语言中,结构体是一种比较重要的结构,因此,对所学结构体知识做一总结和整理。 C语言提供了两种数据类型,数组和结构,今天,就简单的整理一下结构相关的。
2017-07-24 12:47:28 556
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人