★面试经典问题
文章平均质量分 55
liuyanfeier
acmer
展开
-
malloc/free 和 new/delete 的区别
解析:mallo/free是C/C++的标准库函数,new/delete是C++的运算符。对于非内部数据类型的对象而言,光用malloc/free无法满足对象的要求,对象在创建的同时会自动调用构造函数,对象在消亡之前会自动执行析构函数。由于malloc/free是库函数而不是操作符,不在编一起控制范围内,不能把执行构造函数和析构函数的任务强加给malloc/free,此时只能使用new/d原创 2016-03-15 18:21:18 · 414 阅读 · 0 评论 -
IP地址分类
IP地址就是给因特网上的每一个主机(或者路由器)的每一个接口分配一个独一无二的32位标识符。IP地址分类,就是每一类地址都由两个固定长度的字段组成,第一个字段为网络号(net-id),第二个字段为主机号(host-id)。从上图可以看出来,A,B,C类地址的网络号分别为1,2,3个字节。常用的三类IP地址 A类地址的网络号占一个字节,只有七位可以使用(第一位固定为0),可指派的网络号为原创 2016-10-11 12:53:58 · 869 阅读 · 0 评论 -
OSI七层模型与TCP/IP四层模型
TCP/IP协议簇 学习的时候往往综合OSI和TCP/IP ,采用一种只有五层协议的体系结构(c)。一. 应用层 应用层是体系结构中的最高层,直接为用户正在运行的程序提供服务。应用层协议有:支持万维网(www)的HTTP,支持电子邮件的SMTP,支持文件传送的FTP等。二. 运输层 运输层的任务是负责为两个主机中进程之间的通信提供服务。由于一个主机可以同时运行多个进程,因此原创 2016-10-11 12:53:37 · 360 阅读 · 0 评论 -
三次握手和四次挥手
为什么采用三次握手而不是二次握手? client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。假设不采用“三次握手”,那么只要server发出确认,原创 2016-10-11 12:53:01 · 762 阅读 · 0 评论 -
电路交换与分组交换
网络通信大致分为两种:电路交换,分组交换。 TCP/IP采用分组交换技术。 在电路交换中,交换机主要负责数据的中转处理。计算机连接到交换机中,交换机与交换机之间通过通信线路继续相连。所以计算机之间发送数据的时候,需要通过交换机建立通信线路。 如果一条线路上连接了多台计算机,并且计算机之间需要互相通信。就会出现问题,因为一台计算机在通信的时候会独占线路,其他计算机只有等待当前计算机通信完成之后才原创 2016-10-11 12:52:34 · 928 阅读 · 0 评论 -
http和https的区别
一. HTTP(默认端口80) http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输原创 2016-10-11 12:52:04 · 304 阅读 · 0 评论 -
常用端口
常用服务 协议 端口 POP3 TCP 110 IMAP TCP 143 SMTP TCP 25 Telnet TCP 23 TFTP UDP 69 HTTP TCP 80 NTP UDP 123 HTTPS TCP 443 FTP 控制TCP原创 2016-10-11 12:51:42 · 302 阅读 · 0 评论 -
进程和线程
1.概念 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源, 只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 一个线原创 2016-10-11 12:51:14 · 561 阅读 · 0 评论 -
TCP/IP协议簇
1、TCP/IP协议簇简介 TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议,通过20多年的发展已日渐成熟,并被广泛应用于局域网和广域网中,目前已成为事实上的国际标准。TCP/IP协议簇是一组不同层次上的多个协议的组合,通常被认为是一个四层协议系统,与OSI原创 2016-10-11 12:50:40 · 931 阅读 · 0 评论 -
面向报文(UDP)和面向字节流(TCP)的区别
文章目录 * 1,TCP是面向连接(Connection oriented)的协议,UDP是无连接(Connection less)协议; * 2,TCP无界,UDP有界; * 3,TCP可靠,UDP不可靠; * 4,TCP有序,UDP无序; * 5,TCP有流量控制(拥塞控制),UDP没有; * 6,TCP的头部比UDP大;1,TCP是面原创 2016-10-11 12:47:43 · 25491 阅读 · 4 评论 -
进程和线程的区别以及联系
概念:进程:进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空间,即进程空间。进程至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。线程:线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点原创 2016-03-15 20:07:31 · 517 阅读 · 0 评论 -
各种排序算法的分析与实现
由于最近在找工作的过程中遇见了很多考察各种排序算法的问题,而我对此却不是非常熟悉,所以花了一些时间做了一个非常简单的总结。一.直接插入排序(straight insertion sort)直接插入排序算法是稳定的排序算法,时间复杂度为O(n^2)。思想为:假设待排序的数组存放在a[1...n]中,初始时,a[1]自成一个有序区,无序区为a[2...n]。从i=2到i=n原创 2016-04-11 13:42:16 · 917 阅读 · 0 评论 -
程序员面试金典,牛课网在线编程题目答案(1)
程序员面试金典,牛课网在线编程题目答案(1)题目地址点击打开链接//请实现一个算法,确定一个字符串的所有字符是否全都不同。//这里我们要求不允许使用额外的存储结构。bool checkDifferent(string iniString) { // write code here int len = iniString.length(); int v原创 2016-06-20 19:01:25 · 3104 阅读 · 1 评论 -
n个数里面找出最大的m个数字(快排思想)
分析:这个问题,我之前遇到的时候想到的解决方案是,最小堆解决方法。建立个数为m的最小堆,然后遍历n维护这个最小堆就可以了,算法的时间复杂度是n*log(m)。还是比较高效的算法的。今天我又发现了一种解决方法,那就是STL里面的一种算法,STL里面的nth_element就是这样的一种算法。利用类似于快速排序的过程,找到前面的m个最大的数字。不多说了,看代码吧。通过代码可以看原创 2016-08-31 10:05:13 · 9666 阅读 · 0 评论 -
二分查找
本文写了二分查找有序数组以及二分查找循环有序数组的算法。循环有序数组是,一个有序数组从中间截断了然后拼在一起。大致思路:先确定单调区间,然后根据判断指定点是否在单调区间内,剪掉另外一半区域~~如此循环。直到循环跳出,或者找到指定值对应的位置为止结束。#include #include #include using namespace std;//二分查找原创 2016-05-02 14:02:23 · 444 阅读 · 0 评论 -
堆(heap)和栈(stack)的区别
一. 程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 : 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全原创 2016-10-16 13:37:11 · 431 阅读 · 0 评论