关闭

传输层TCP和UDP的区别分析与应用场景

基本概念: 1: 面向报文面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这也就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。 2: 面向字节流面向字节流的话,虽...
阅读(40) 评论(0)

TCP

TCP的滑动窗口、流量控制、拥塞控制和连接管理 套接字 socket = (IP地址:端口号) ARQ自动重传请求 重传的请求是自动进行的。接收方不需要请求发送方重传某个出差分组...
阅读(190) 评论(0)

数据共享,内存映射文件和虚拟内存,共享内存

一、内存映射 内存映射文件允许开发人员预定一块地址空间区域并给区域调拨物理存储器。内存映射文件的物理存储器来自磁盘已有的文件,而不是来自系统的页交换文件。一旦把文件映射到地址空间,就可以对它进行访问,就好像整个文件都已经被载入内存一样。不必再对文件执行I/O操作。 使用内存映射文件来颠倒文件内容时,先打开文件并向系统预订一块虚拟地址空间区域。接着让系统把文件的第一个字节映射到该区域的第...
阅读(62) 评论(0)

C++ 设计模式-单例-工厂

设计模式的六大原则 (1)几种设计原则的小结(6个原则的首字母组合单词(S.O.L.I.D,表示稳定) ①单一职责原则告诉我们实现类要职责单一; ②里氏替换原则告诉我们不要破坏继承体系;所有使用基类的地方必须能透明地使用子类替换,而程序的行为没有任何变化 ③依赖倒置原则告诉我们要面向接口编程; ④接口隔离原则告诉我们在设计...
阅读(71) 评论(0)

2018京东笔试 疯狂序列 神奇数

疯狂序列 输入:169 输出:18#include #include using namespace std; int main() { long long n; long long m, a, b, res; while (scanf("%lld", &n) != EOF) { m = sqrt((doubl...
阅读(94) 评论(0)

148. Sort List (归并) 和147. Insertion Sort List

148. Sort List Sort a linked list in O(n log n) time using constant space complexity. 题意 对一个链表进行排序,要求时间复杂度O(nlogn),一般就是快排、归并、堆排序。这里选择归并排序 思路 分为两个步骤,一个步骤是拆分,直至都是单个结点,拆分使用了三个指针pre、slow、fast。slow走一步...
阅读(57) 评论(0)

2018届美团笔试 k的倍数 改考卷。搜狗圆周上点的距离。

题一 k的倍数思路 k的倍数且求的是最长连续子序列。 更改523. Continuous Subarray Sum思路2即可 每次计算得到的余数,若不在hash表中,就插入到hash表中,若余数已经在hash表中,当前位置的索引减去之前的位置,即可得到这个子区间的长度。 class Solution { public: int checkSubarr...
阅读(232) 评论(0)

LeetCode 523. Continuous Subarray sum和 525. Contiguous Array和560. Subarray Sum Equals K

523. Continuous Subarray Sum Given a list of non-negative numbers and a target integer k, write a function to check if the array has a continuous subarray of size at least 2 that sums up to the multi...
阅读(99) 评论(0)

操作系统知识点

死锁的四个必要条件和怎么处理一. 什么是死锁? 如果一个进程集合里面的每个进程都在等待这个集合中的其他一个进程(包括自身)才能继续往下执行,若无外力他们将无法推进,这种情况就是死锁,处于死锁状态的进程称为死锁进程 二. 死锁产生的原因? 1.因竞争资源发生死锁 现象:系统中供多个进程共享的资源的数目不足以满足全部进程的需要时,就会引起对诸资源的竞争而发生死锁现象 (1)可...
阅读(65) 评论(0)

二叉堆,堆排序,STL优先队列的底层实现,剑指offer数据流中的中位数

一. 下图是从数组为0下标开始计算的。 下图是从数组为1下标开始计算的。引自《STL源码剖析》 p173...
阅读(111) 评论(0)

深信服面试记录 2017

深信服面试记录 电话面了接近40分钟,对于自己简历上写的东西一定要清清楚楚明明白白,切勿模棱两可!!!1.线程的通信方式。A线程拥有互斥变量,B线程需要这个互斥变量,当A线程意外退出,B线程能否获取这个互斥变量? 2.MFC中创建线程的流程、管理方式、使用那些API 3.局部线程存储 4.项目中使用内存映射解释,虚拟内存的原理,使用方式。直接读取磁盘和内存映射的区别。虚拟内存是否涉及IO操作。 5.socket并发...
阅读(199) 评论(1)

2018 好未来面试 C++ 知识点随笔

不定时更新。遇到好的问题记录 [toc]好未来一面 智能指针实现机制,弱指针和智能指针 c++11的特性有哪些 lamda和函数对象的区别 继承的理解 virtual继承和普通继承 virtual函数和普通函数的区别 覆盖和重载 QQ窗口设计 函数对象,函数,函数指针,之间的关系 两个栈实现一个队列 如何查找一个链表的中位数...
阅读(205) 评论(0)

排序算法

一.各种算法的对比 二.各个算法的详解 1.冒泡算法 //冒泡排序 void bubbleSort(int arr[], int n) { for (int i = 0; i < n;i++) { for (int j = 0; j arr[j+1]) { swap(arr[j], arr[j +...
阅读(106) 评论(0)

Effective C++ 知识点记录

导读 声明式,定义式,初始化 explict关键字,类的构造函数声明为explict,可以阻止它们被用来执行隐式类型转换。 除非有一个好理由允许构造函数被用于隐式类型转换,否则声明为explictpass-by-value意味着“调用拷贝构造函数“,以值传递...
阅读(269) 评论(0)

LeetCode 213. House Robber II 注意考察环尾和环头交叉处

213. House Robber II After robbing those houses on that street, the thief has found himself a new place for his thievery so that he will not get too much attention. This time, all houses at this plac...
阅读(79) 评论(0)
111条 共8页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:28996次
    • 积分:1229
    • 等级:
    • 排名:千里之外
    • 原创:92篇
    • 转载:19篇
    • 译文:0篇
    • 评论:11条
    最新评论