
面试题
文章平均质量分 89
后台服务器开发
这个作者很懒,什么都没留下…
展开
-
联合索引
索引相关的基础知识可以移步至:数据库索引漫谈https://mp.weixin.qq.com/s/Xy4AmYN5eys2vbp0AGCANw这篇文章主要针对索引进阶内容。联合索引联合索引是指对表上的多个列进行索引,联合索引也是一棵B+树,这里的索引键值数量大于等于2;创建语句:create TABLE com_table( id int not null, name VARCHAR(20) not null, age int not null, constrain原创 2021-04-29 07:16:56 · 674 阅读 · 0 评论 -
常见的网络编程面试题汇总
常见的网络编程面试题汇总一、前言上篇文章为大家介绍先目前后台开发岗位的一些要求,请查看:后端开发岗位要求汇总,希望能帮助到大家;今天这篇常见网络面试题是不对前面介绍岗位的网络部分的一个补充,这些面试题都是收集与网络,答案如果错误,请及时联系我进行修正,免的维大家造成知识的错误二、网络面试题tcp和udp的区别(1) TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接(2) TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不原创 2020-08-23 08:55:18 · 1009 阅读 · 0 评论 -
肝!动态规划
肝!动态规划前言也许大家听到动态规划这几个字,和我有一样的感觉,这简直是太难了!我好难~但是,只要你想要去大厂或者知名的互联网公司,这个就是你的第一道难关,过也得过,不过也得过呀~既然知道了动态规划的重要性,让我们一起肝一下吧~动态规划的概念学习动态规划,那就必须要知道动态规划到底是什么玩意儿~有刷题经验的朋友应该知道,大家都喜欢用DP来命名动态规划的数组,这个起因就在这里:动态规划:Dynamic Programming,所以我们简称动态规划为DP动态规划其实是将一个原问题分原创 2020-08-03 21:41:46 · 203 阅读 · 0 评论 -
恭喜你!发现宝藏一份---干货技术文章汇总
技术文章汇总点个【在看】谢谢你,分享让更多热人加入我们的群体自从开通【CPP后台服务器开发】微信公众号以来,收获了不少读者的青睐,为此非常感谢大家;由于工作原因,一周基本会更新一到两篇文章,有基础的,也有比较深入一些的,差不多都是平时工作中遇到的或者查漏补缺的,希望和大家一起分享;今天是周日,突然想着,现在也写了很多文章,很多都被冲到后面去了,一直没时间汇总,今天将自己所有的文章做一个归类和汇总,并且以后每篇文章都附带这篇文章,希望和大家一起进步!路漫漫其修远兮,吾将上下而求所!我们一起加油原创 2020-05-10 09:06:21 · 1159 阅读 · 0 评论 -
三次握手四次挥手状态
#三次握手 客户端向服务器端发送SYN包,客户端进入SYN_SEND状态 服务器端收到客户端发送的包返回ACK+SYN包,服务器端进入SYN_RECV状态 客户端收到服务器端返回的包再发回ACK包,客户端进入ESTABLISHED状态,服务器端收到包也进入ESTABLISHED状态 客户端状态:SYN_SENDE ESTABLISHED 服务器端状态:SYN_R原创 2017-08-21 15:47:28 · 337 阅读 · 0 评论 -
红黑树(RB-tree)比AVL树的优势在哪?
今天看了STL源码剖析中关于红黑树的原理和实现,看完复杂的节点插入、节点颜色变换后不禁想:这些功能经典的AVL树也能实现,为什么要提出红黑树?查了些资料,并且加上自己理解,感叹红黑树的巧妙。首先红黑树是不符合AVL树的平衡条件的,即每个节点的左子树和右子树的高度最多差1的二叉查找树。但是提出了为节点增加颜色,红黑是用非严格的平衡来换取增删节点时候旋转次数的降低,任何不平衡都会在三次旋转之内转载 2017-11-11 10:42:46 · 388 阅读 · 0 评论 -
既然有了malloc/free为何还要new/delete?
malloc与free是C /C++语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 对于非内部数据类型(比如自己定义的数据结构class与struct)的对象而言,只用maloc/free函数无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权原创 2017-08-29 09:54:51 · 378 阅读 · 0 评论 -
new operator、operator new 、placement new三者之间的区别与联系
new operator、operator new 、placement new三者之间的区别与联系1. new的执行过程:(1)通过operator new申请内存(2)使用placement new调用构造函数(简单类型忽略此步)(3)返回内存指针 2. new和malloc的比较:(1)new失败时会调用new_handler处理函数,malloc不会,失转载 2017-08-29 09:13:41 · 690 阅读 · 0 评论 -
判断字节序和操作系统
判断网络字节序#include typedef union{ unsigned short value; unsigned char bytes[2]; }Test; int main(void) { Test test_value; test_value.value = 0x原创 2017-08-21 18:22:18 · 496 阅读 · 0 评论 -
静态绑定与动态绑定
静态绑定:编译时绑定,通过对象调用动态绑定:运行时绑定,通过地址实现C++的多态性 静态多态性: 函数多态性——函数重载 模板多态性——C++模板(类模板、函数模板) 动态多态性:虚函数(只有用地址才能实现动态多态性)转载 2017-08-17 20:36:11 · 310 阅读 · 1 评论 -
构造函数能不能是虚函数
1.虚函数对应一个虚函数表,虚函数表其实是存储在对象的内存空间的。如果构造函数是虚的,就需要通过 虚函数表来调用,可是对象还没有实例化,也就是内存空间还没有,就没有虚函数表,所以构造函数不能是虚函数。2.虚函数的作用在于通过父类的指针或者引用来调用它的时候能够变成调用子类的那个成员函数。而构造函数是在创建对象时自动调用的,不可能通过父类的指针或者引用去调用,因此也就规定构造函数不能是虚函数。原创 2017-08-17 20:28:44 · 2178 阅读 · 1 评论 -
堆和栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2017-08-24 12:11:34 · 293 阅读 · 0 评论 -
select、poll、epoll之间的区别
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用转载 2017-08-21 15:05:45 · 272 阅读 · 0 评论 -
ABCD输出ABCDDCBA
思路:首先把ABCD放到一个数组中,然后把ABCD按照后到前的方法把ABCD放进数组中,就可以完成了;#include#includeusing namespace std;void fun(char *s,char *t){int i,d;d = strlen(s);for(i=0;i{t[i] = s[i];}for(i=0;it[d原创 2017-07-10 10:38:54 · 1802 阅读 · 0 评论 -
排序算法总结
时间然复杂度(o(n^2)))的排序算法1.冒泡排序;时间复杂度(0(n^2))实现过程:从头开始两两第一个数进行交换2.选择排序;时间复杂度(0(n^2))实现过程:每次在数字中找到最小的,然后与第一个数进行交换3.插入排序;时间然复杂度(o(n^2)))实现过程:每次和前面的数进行比较,后是否交换位置时间然复杂度(o(n*lo原创 2017-05-31 15:49:26 · 248 阅读 · 0 评论 -
字符串中去掉空格
1、去除全部空格;2、一种是去除左边空格;3、去除右边空格 想去除左右两边空格,只要先去除左边再去除右边的就行了以下是实现代码:/*去除字符串中所有空格*/voidVS_StrTrim(char*pStr) { char *pTmp = pStr; while (*pStr != '/0') { if (*pSt原创 2017-04-29 09:36:45 · 970 阅读 · 0 评论 -
strcpy函数编写分析
复制字符串 1 #include 2 #include 3 char *strcpy(char *strDest,const char *strSrc) 4 { 5 if((strDest == NULL) || (strSrc == NULL))原创 2017-04-15 16:14:50 · 412 阅读 · 0 评论 -
strlen 函数的编写
1 #include 2 #include 3 using namespace std; 4 int strlen1(const char *strDest); 5 int main() 6 { 7 const char *strDest = "hello world";原创 2017-04-15 16:40:08 · 545 阅读 · 0 评论 -
字符串的包含
给定一个长字符串a和一个短字符串b,判断短字符串b的所有字符串都是否在a中。分析:1.可以采用论询的方法。2.轮询短字符串中的每一个字符,逐个与长字符串a中的字符进行比较3.查找是否都在a中代码:#include#include#includeusing namespace std;bool StringContain(string &a,string &b原创 2017-04-19 15:06:40 · 352 阅读 · 0 评论 -
快速查找兄弟字符串
如果两个字符串中的字符一样,出现的次数也一样,只是出现的顺序不一样,那么他们就是兄弟字符串,比如“abc”和“bca”;要求:在字典中查找兄弟字符串?思路:1.现将字符串进行排序2.排序后的字符串是否对应相等代码: 1 #include原创 2017-04-19 15:12:00 · 773 阅读 · 0 评论 -
链表倒序输出
三种方式实现--从尾到头输出链表 方法一:借用栈倒序输出链表 方法二:先翻转链表,再顺序输出 方法三:递归实现,一个妙,两个字妙啊 方法一:借用栈倒序输出链表 因为栈是先进后出,把链表中的元素存进栈中,链表前面的元素在栈底,后面的元素在栈顶,链表后面的元素先出栈 方法二:先翻转链表,再按顺序打印(主要是想自己实现单链表的翻转,转载 2017-05-01 23:21:35 · 2299 阅读 · 1 评论 -
字符串的全排列
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。一、字符串的排列用C++写一个函数, 如 Foo(const char *转载 2017-04-19 17:17:35 · 671 阅读 · 0 评论 -
字符串反转
把“abcdef”反转为“defabc”1.首先,定义一个字符串的指针,字符串的长度,然后进行移位;2.再 写一个区调用上面的移位函数,然后进行反转代码:#includevoid LeftShiftone(char *s,int n){char t = s[0];for(int i=1;is[i-1] = s[i];s[n-1] = t;}v原创 2017-04-16 20:42:12 · 352 阅读 · 0 评论 -
栈实现队列,队列实现栈
用两个栈实现队列和用两个队列实现一个栈题目:用两个栈实现一个队列。队列的生命如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。template class CQueue{public: CQueue(void); ~CQueue(void); void appendtail(co原创 2017-05-06 23:28:16 · 305 阅读 · 0 评论 -
二叉树的镜像
一、递归实现1.前序遍历每个节点2.如果遍历到的结点有子节点,就交换它的两个子结点3.交换完所有非子结点的左右结点之后,就得到镜像代码:原创 2017-05-17 23:03:27 · 280 阅读 · 0 评论 -
最长公共子序列
题目:如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子串。注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中。请编写一个函数,输入两个字符串,求它们的最长公共子序列,并打印出最长公共子序列。 例如:输入两个字符串BDCABA和ABCBDAB,字符串BCBA和BDAB都是是它们的最长公共子序列,则输出它们的长度4,并打印任意一个转载 2017-05-28 18:19:03 · 548 阅读 · 0 评论 -
tcp如何保证可靠性
前几天面试腾迅,几个面试提和大家分享:tcp如何保证可靠性?首先,TCP提供一种面向连接的、可靠的字节流服务。 面向连接:意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。 TCP通过下列方式来提供可靠性:1、应用数据被分割成TCP认为最适合发送的数据原创 2017-04-09 15:21:25 · 647 阅读 · 0 评论