Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

网络传输协议概述

网络传输协议概述

概述:指服务器和客户端间进行通信时的约束和规范,客户端与服务端的数据交互并不是杂乱无章的,需要遵照(基于)一定的规范进行常见的协议:a) HTTP、HTTPS 超文本传输协议b) FTP 文件传输协议c) SMTP 简单邮件传输协议本文主要介绍http超文本传输协议。1、HTTP协议即超文本传输协议,网站是基于HTTP协议的,例如网站的图片、CSS、JS等都是基于HTTP协议进行传输的。HTTP协议是由从客户机到服务器的请求(Request)和从服务器到客...
JavaScript之继承(原型链)

JavaScript之继承(原型链)

我们知道继承是oo语言中不可缺少的一部分,对于JavaScript也是如此。一般的继承有两种方式:其一,接口继承,只继承方法的签名;其二,实现继承,继承实际的方法。JavaScript不支持签名,因此只有实现继承。其中实现继承主要是依赖于原型链的。下面我将以原型链为重点说说继承的几种主要的方式:原型链继承借用构造函数继承组合继承(重点)第一部分:原型链继承 A 要说原型链继承,不得不首先介绍一下原型链的概念。 想象一下,如果使原型对象等于另一个对象的...
深入理解JavaScript中创建对象模式的演变(原型)

深入理解JavaScript中创建对象模式的演变(原型)

创建对象的模式多种多样,但是各种模式又有怎样的利弊呢?有没有一种最为完美的模式呢?下面我将就以下几个方面来分析创建对象的几种模式:Object构造函数和对象字面量方法工厂模式自定义构造函数模式原型模式组合使用自定义构造函数模式和原型模式动态原型模式、寄生构造函数模式、稳妥构造函数模式第一部分:Object构造函数和对象字面量方法 我之前在博文《JavaScript中对象字面量的理解 http://www.linuxidc.com/Linux/2016-1...
HTML中<meta>标签如何正确使用

HTML中&lt;meta&gt;标签如何正确使用

如果我们在浏览器中按下F12或者Ctrl+shift+J,便可以打开开发者工具,在element中即可看到<head>元素中有不少<meta>元素。对于网页而言,<meta>元素是必不可少的。我们在创建一个html5文档时,就会发现类似于<meta charset="UTF-8">这样的标签,来规定解析文档的字符类型。那么,它还有哪些作用呢?下面,我将一探究竟!我会通过下面几个部分来讲解,如果你希望直接看后面...
JavaScript函数之美

JavaScript函数之美

这篇文章,我将就以下几个方面来认识JavaScript中的函数。函数为什么是对象,如何定义函数?如何理解函数可以作为值被传递函数的内部对象、方法以及属性第一部分:函数为什么是对象,如何定义函数 JavaScript中最有意思的恐怕是函数了,因为和其他语言不同,在JavaScript中,每个函数都是Function类型的实例,而我们知道:Object是一个基础类型,其他所有类型都是从Object继承了基本的行为。也就是说Function也是从Object引...
深入理解JavaScript中的属性和特性

深入理解JavaScript中的属性和特性

JavaScript中属性和特性是完全不同的两个概念,这里我将根据自己所学,来深入理解JavaScript中的属性和特性。 主要内容如下:理解JavaScript中理解对象的本质、理解对象与类的关系、对象与引用类型的关系对象属性如何进行分类属性中特性的理解第一部分:理解JavaScript中理解对象的本质、理解对象与类的关系、对象与引用类型的关系 对象的本质:ECMA-262把对象定义为:无序属性的集合,其属性可以包含基本值、对象或者函数。即对象是一...
Node.js框架对比:Express/Koa/Hapi

Node.js框架对比:Express/Koa/Hapi

1、介绍 直至今日,Express.js仍然是最为流行的Node.js Web应用程序框架。它似乎已经逐渐成为大多数Node.js Web应用程序的基础依赖框架,包括很多流行的框架,比如Sail.js就是以Express.js为基础搭建的。然而现在我们有了更多“类sinatra”(注:sinatra是一款Ruby框架,代码非常简洁,号称开发一个博客项目只需要100行代码)似的框架可以选择。也就是接下来我们将分别介绍的Koa和Hap...
Python迭代器实现斐波拉契求值

Python迭代器实现斐波拉契求值

斐波纳契数列以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)。这个数列从第2项开始,每一项都等于前两项之和,而且当n趋向于无穷大时,前一项与后一项的比值越来越逼近黄金分割0.618。 用dir(list),dir(tuple),dir(file),dir(dict)来查看不同类型对象的属性,会发现它们都有一个名为__iter__的特殊方法,对象有它,就能通过该方法返回迭代器,所谓的迭代...
进程和线程、协程的区别

进程和线程、协程的区别

现在多进程多线程已经是老生常谈了,协程也在最近几年流行起来。python中也有协程库,tornado中也用了gevent封装好的协程。本文主要介绍进程、线程和协程三者之间的区别。一、概念 1、进程进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。每个进程都有自己的独立内存空间,不同进程通过进程间通信来通信。由于进程比较重量,占据独立的内存,所以上下文进程间的切换开销(栈、寄存器、虚拟内存、文件句柄等...
正则表达式基础语法摘要

正则表达式基础语法摘要

什么是正则表达式呢,先来看一下百度百科中的解释:正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。简单来说,正则表达式是一种特定的模式,可以用来对文本进行匹配、替换或删除等操作。正则表达式本身与编程语言无关,是一种强大的文本处理工具。基础概念正则表达式由两种字符构成:元字符和普通文本字符。其中,元字符 即...
C语言之从内存角度理解不同类型的变量

C语言之从内存角度理解不同类型的变量

我们都知道在C语言中不同类型的变量在内存中的存放位置不同的,从内存角度上讲,不同内存块中存放的代码或者变量其属性(主要是作用域、生命周期、链接属性)是不同的。首先我们介绍一下作用域、生命周期已经链接属性的概念1:作用域作用域也就是指变量其作用的范围(1)局部变量为代码块作用域(也就是说局部变量的作用范围是{ })(2)函数和全局变量是文件作用域,进一步讲其作用范围就是函数和全局变量定义或者声明后的部分。2:生命周期生命周期也就是变量的产生时间和消亡时间(1...
C语言之offset_of宏和container_of宏

C语言之offset_of宏和container_of宏

通过结构体整体变量来访问其中各个元素,本质上是通过指针方式来访问的,形式上是通过.的方式来访问的(这时候其实是编译器帮我们自动计算了偏移量)。1:offset_of宏作用:计算结构体中某个元素和结构体首地址的偏移量(其实质是通过编译器来帮我们计算)。定义:#define offsetof(TYPE, MEMBER) ((int) &((TYPE *)0)->MEMBER)参数分析:TYPE是结构体类型,MEMBER是结构体中一个元素的元素名返...
C语言之main函数传参

C语言之main函数传参

1:为什么需要给main函数传参首先要明白一点,给mian函数传参不是必须的,但是有时候我们需要通过给main函数不同的参数来得到的不同的结果,比如我们希望main函数中某个变量的值为0时执行子函数A,该变量值为1时执行子函数B,那么这个时候就可以通过给main函数传参来实现,mian函数传参格式如下:int main(int argc , char *argv[])int main(int argc , char **argv)参数解释:argc:int...
C语言之存储类的相关的关键字

C语言之存储类的相关的关键字

不同的数据在内存中的存储位置是不同的,总体来说内存中存储数据的地方主要有四部分:栈、堆、数据段、bss段,这些地方分别存放着不同的数据,比如栈一般用来存储局部变量,堆内存需要程序员字自己申请以及释放,主要用来存放比较大的数据;数据段主要用来存放显示初始化的全局变量和static关键字修饰的静态局部变量;bss段一般用来存放未显式初始化的全局变量或显式初始化为0的全局变量(C语言中,默认全局变量初始化为0)。C语言还提供了一些关键字来修饰变量,使其附有其他的...
C语言之枚举的定义以及测试

C语言之枚举的定义以及测试

1:什么是枚举枚举在C语言中其实就是一些符号常量集,简单来说,枚举就是定义了一些符号(字符串),这些字符的本质就是int类型的常量,每个符号和一个常量相绑定,那么这个符号就成为了一个自定义的识别码,对编译器来说对枚举的认知就是符号常量所绑定的那个int类型的数。直白来讲,枚举就是自己定义一些符号,然后这些符号对应int类型的数,对于程序员来讲,这些符号可以帮助程序员理解代码,而对于编译器来讲,编译器是不认识我么定义的枚举符号的,编译器只认识这个枚举变量所对...
C语言之静态链接库和动态链接库

C语言之静态链接库和动态链接库

1:静态链接库比较早出现的是静态链接库。静态库其实就是商业公司将自己的函数库源代码经过只编译不连接形成.o的目标文件,然后用ar工具将.o文件归档成.a的归档文件(.a的归档文件又叫静态链接库文件)。商业公司通过发布.a库文件和.h头文件来提供静态库给客户使用;客户拿到.a和.h文件后,通过.h头文件得知库中的库函数的原型,然后在自己的.c文件中直接调用这些库文件,在连接的时候链接器会去.a文件中拿出被调用的那个函数的编译后的.o二进制代码段链接进去形成最...
C语言之作用域

C语言之作用域

1:作用域的概念(1)作用域是描述这个变量起作用的代码范围。(2)基本来说,C语言变量的作用域规则是代码块作用域。意思就是这个变量起作用的范围是当前的代码块。代码块就是一对大括号{}括起来的范围,所以一个变量的作用域是:这个变量定义所在的{}范围内从这个变量定义开始往后的部分。(这就解释了为什么变量定义总是在一个函数的最前面)2:示例代码#include <stdio.h> int var = 10; int main(void) { ...
C语言之大小端问题

C语言之大小端问题

1:大小端名字的由来及发展 (1)在乔纳森·斯威夫特的著名讽刺小说《格列夫游记》中,小人国内部分裂成Big-endian和Little-endian两派,区别在于一派要求从鸡蛋的大头把鸡蛋打破,另一派要求从鸡蛋的小头把鸡蛋打破。斯威夫特借以讽刺英国的政党之争,在计算机工业中指数据储存顺序的分歧。 (2)后来计算机通信发展起来后,遇到一个问题就是:在串口等串行通信中,一次只能发送1个字节。这时候我要发送一个int类型的数就遇到一个问题。int类...
C语言之程序中内存的来源:栈 堆 数据段

C语言之程序中内存的来源:栈 堆 数据段

程序在运行的时候,其内存的来源主要通过三种方法: 栈 堆 数据段,总体上来讲栈是一般用来存放小内存的局部变量,堆内存和数据段的属性很像,在使用的的时候,如果这个变量是伴随程序一直存在则使用全局变量,也就是放在数据段,如果一个变量使用完了就没用了,那么就适合用堆内存(先申请,然后释放即可),一:栈(stack):1:栈在使用的时候是编译器自动分配内存空间的,不需要程序员的干涉,其次栈的大小是有限的,所以当我们定义的变量需要大片的内存的时候就不适合使用栈,2:...
<< 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 >>