面经详情

阿里巴巴电话一面加编程题
1.讲一下Http包的解析过程。首先在Request请求包里面包括包括请求行、请求报头、空行、请求正文。在请求正文里包括请求方法、Uri、还有版本信息;在请求行报头中包含一些属性信息;空行分隔请求报头与请求正文;请求正文是post方式提交的参数。其次在send发送包里面包括状态行、响应包头、空行、响应正文。在状态行里分为版本号、状态码、状态码描述;响应报头包含一些属性信息;空行分隔响应包头与响应正文;响应正文中方响应内容; 2.vector与list有什么区别。vector的地址空间是连续的,list的地址空间是不连续的; 3.set和map的底层数据结构是什么?他们的底层数据结构都是红黑树; 4.在设计上为什么使用红黑树而不使用平衡二叉树。AVL的最大缺点在于他对于数据的结构要求的十分苛刻,左右高度差不能超过1,一旦数据量过大就会进行旋转平衡。红黑树对于数据结构的要求比AVL树的要求要低一点,平衡旋转没有那么频繁。对于数据的查找在红黑盅与AVL树中的时间,对于现代的计算已经没有什么区别了。 5.在C++中class与struct有什么区别。首先在C中struct是结构体,在C++中struct赋予了面向对象的能力,他可以实现封装,继承,多态。为什么常用用class不用struct,为了区别对待C与C++。class的默认访问限定符是私有,struct的默认访问限定符是公有。 6.struct与union有什么区别。在struct中,所有的成员都有自己的的存储空间,而且为了便于寻址和管理,所有数据都要遵循内存对其原则;在union中,所有的成员共用一块存储空间,以最大的类型作为空间,对于联合体的不同成员赋值,将会对它的其他成员重写,原来成员的值就不存在了。而对结构体的不同成员赋值是互不影响的。

相关推荐

进入微信小程序

前往微信小程序,查看更多结果

立即前往
看准网阿里巴巴阿里巴巴面试经验阿里巴巴面试经验:阿里巴巴电话一面加编程题