
读书笔记
文章平均质量分 73
_六六先森
就算被世界痛击,我也要挣扎站起。
展开
-
【网络编程(四)】IO多路复用(2)
上一节讲了select , poll。 但是现代的linux系统对于多路富用采用的更多为epoll函数。 epoll比前两个函数更加好用,下面给出具体用法。 void server6(){ const uint16_t listened_port=9000; const char* localhost="127.0.0.1"; const int listening...原创 2020-01-14 23:50:21 · 177 阅读 · 0 评论 -
【网络编程小结(三)】IO多路复用(1)
在我们之前的例子中,客户端把id发送过去,服务器端接收并处理这个id,总的来说客户端十分的简单,仅仅是,提前设定好一些消息,并且发送过去,然后等待响应。 但是当我们有一种这样的客户端——等待用户输入,然后把输入内容传递给服务端。这样的话,传递给服务端的内容是由客户自己决定的,而不是一条固定的消息。 有了这种场景以后,可以想象客户端程序要迭代地处理客户输入、服务器响应。我们把这看作两个读事件,就...原创 2020-01-14 11:11:51 · 218 阅读 · 0 评论 -
【网络编程小结(三)】利用多进程与多线程
在第一节的例子中,服务器是一个时间获取程序,只要一次write调用就能立刻完成客户端的任务,但是我们要想的是,服务端不一定每次都会这么快的完成任务,所以,要想办法加快服务端的处理速度。 首先可以想到的是并行处理,c++有两种方式,一个是多进程,一个是多线程。下面描述这两种办法。 一、压力测试 我们的客户端应当有能力判断服务端处理的快慢,所以我们要写一个压力测试函数: void...原创 2020-01-12 21:09:36 · 238 阅读 · 0 评论 -
【网络编程小结(二)】域名系统
域名系统一般指的是DNS协议,将我们填写的网址转换成点分十进制形式的ip地址(ipv4)。 在这里我们不讨论DNS服务器的细节,只需要知道它是udp协议之上的即可,下面我们来学习如何用函数完成域名转换的目的。 一、一组函数 struct hostent *gethostbyname (const char *__name) name就是传入的字符串,如果网址是不合法的将返回null并...原创 2020-01-12 16:53:02 · 173 阅读 · 0 评论 -
【网络编程小结(一)】绪论及简单例子
一、认识套接字及其结构 一个简单的程序: #include <iostream> #include <netinet/in.h> using namespace std; int main() { in_addr iaddr; sockaddr_in sockaddr; cout<<sizeof(iaddr)<<";"&...原创 2020-01-11 23:09:31 · 212 阅读 · 0 评论 -
java设计模式学习笔记(二)
这篇笔记记录几个最容易考到的设计模式。 一、工厂模式 工厂模式实际上是对“创建”行为的封装。举个最简单的例子:“给我弄出一个填满数字6的长度为100的数组,我要用。” 稍微有点常识的都知道,先new一个长度为100的数组,一个for循环填充数字。 ok,没问题啊。但是我如果我在第一个方法要一个填满数字3的长度为20的数组,第二个方法要一个填满数字5长度为50的数组。。。。 这样,你是不是...原创 2019-02-25 11:56:53 · 142 阅读 · 0 评论 -
Java拾遗——类的初始化
我们知道一个类需要在一个new操作符下完成类的初始化。 那么,这里面的各个部分到底是怎么样初始化的呢? 一、默认构造器先于任何实例的调用 class Car{ private int speed; public Car(){speed=12;} public void tellMeSpeed(){ System.out.println("my spe...原创 2019-02-19 16:00:30 · 122 阅读 · 0 评论 -
java设计模式学习笔记(一)
设计模式一般不属于某种“算法”,而是一种特定的应用背景下的一种特定经验。它并不像某些算法一样对于固定的输入有固定的输出,而是在一些场景下使用一些设计模式可以最大程度的减少代码的重复,实现代码的复用。 在这个笔记系列里,我会构造一些特定的场景,并且逐渐利用设计模式解决这些场景下产生的问题,最后总结出特点。 一、策略模式 当我想设计一个Person类的时候,也许是游戏需要这么一个类,亦或者是某个...原创 2019-02-24 09:55:54 · 510 阅读 · 0 评论 -
mysql学习笔记——多行操作和触发器
一、存储过程 存储过程实质上是sql里面的“函数”,调用了一个存储过程就可以完成一个功能。 存储过程一般为以下格式: create procedure procedure_name(arg1,arg2...) begin ... ... end; 是不是想起了某些以begin和end来分块的编程语言呢? 不过值得一提的是,如果在脚本编辑器中,最好还是使用以下的格式: delimit...原创 2019-02-12 08:40:30 · 757 阅读 · 0 评论 -
mysql学习笔记——对表的修改
一、修改表的语句 对表的修改实际上是指四大语句——SELECT,DELETE,UPDATE,INSERT的后三个。 因为第一个是查询语句,是“读”操作,其余的是“写”操作(假如delete也算)。 相对于select的五花八门,剩下三个可以说是非常简洁了。 delete: delete from tablename where c; 也就是delete from...where模式;...原创 2019-02-12 06:56:49 · 649 阅读 · 0 评论 -
mysql学习笔记———查询语句
所谓查询(query)实际上指的是mysql里的select语句,进一步讲,就是select权限,每一个新建的用户默认没有任何权限,但是通过grant语句可以赋予某用户查询权限。 一、筛选和排序 查询用的最多的就是select语句: 公式为 select 字段名1,字段名2... from 表名1,表名2... where 条件1 (and|or)条件2(and|or)条件3... or...原创 2019-02-11 21:35:34 · 315 阅读 · 0 评论 -
读《图解HTTP》笔记(1)
今天一整天断断续续读了前五章,由于有计算机网络的基础,读起来并不费劲,在此记录一下值得记录的笔记。1,URL与URI:以前总是搞不清楚。实际上URI——统一资源标识符,用来表示某一互联网资源;URL——统一资源定位符表示资源的地点。比如URI是“手机”,URL就可以是位于x市x手机店的手机。U——Uniform,R——Resource,I——Identifer,L——Locator.可以说URL是...原创 2018-04-29 22:45:20 · 128 阅读 · 0 评论 -
0.《算法导论》前1/3小结
其实前三部分主要是复习一下以前学习过的内容。涉及插入排序,选择排序,归并排序,桶排序,基数排序,快速排序,堆排序;需要知道分别是:插入排序最坏O(n^2),平均O(n^2),最好O(n);选择排序都是O(n^2);归并排序是O(nlgn),O(nlgn),O(nlgn)但需要tht(n)额外空间来存储待排序元素,堆排序都是O(nlgn);桶排序,基数排序不是基于比较的排序但衍生出的单词字典序排序法...原创 2018-05-20 16:05:06 · 110 阅读 · 0 评论 -
《CSAPP》二三章小结
此书第二次看的时候确实不如第一遍看激动人心。在第二章主要是叙述二进制的运算。虽然这回读的是第三版,但依然是不变的二进制表示,加法,乘法。补码,二进制位移。以及类型转换。这里面有一些很有意思的符合直觉的东西:位移分左移(右边添加0),逻辑右移(左边添加0),算术右移(左边添加最高位),与此对应的是较小类型整数与其较大类型整数转换,无符号数就补全0,有符号数就补全最高位(因为要保证数字的值是不变的...原创 2018-05-09 22:09:36 · 157 阅读 · 0 评论 -
《CSAPP》第一章小结
从一个hello.c程序讲起。hello.c经过预处理把头文件的内容插入程序中变成hello.i。hello.i经过编译器处理转为汇编语言版本的hello.s,hello.s经过汇编器处理变为二进制的hello.o,并且经过链接printf.o变为可执行程序。运行是经过把本地磁盘的可执行的hello程序通过总线取到主存,运行。输入通过I/O总线到屏幕上。其中使用数据时可能会经过L1,L2,L3等多...原创 2018-05-02 21:49:09 · 226 阅读 · 0 评论 -
读《图解HTTP》笔记(2)
今天主要阅读了6-9章的内容。个人认为第六章对于练习爬虫是极为有用的,虽然以前大致了解一些请求头字段的作用,可是头一次全面地了解了这么多。1,首部字段有四种:通用首部字段(请求方与响应方均可能用到)请求首部字段(仅请求方可能用到)响应首部字段(仅响应方可能用到)实体首部字段(记录实体部分的一些信息)2,主要的一些请求头及含义:一、通用首部字段cache-control:对缓存进行控制,public...原创 2018-04-30 22:22:16 · 108 阅读 · 0 评论