招银网络科技技术一面

C++:

1.什么是多态?如何实现多态 (同一接口不同行为,静态(重载,通过重载,模板等),动态(重写,通过类维护虚表,对象持有虚指针指向虚表)

2.C++智能指针(unique_ptr,shared_ptr,weak_ptr,讲讲特性)

3.为什么需要虚析构函数(基类指针指向派生类对象的时候,析构时能正确调用派生类的构造函数)

4.map,set,multi_map,multi_set的底层实现(均为红黑树,set只存值,map存键值对,自动按照键/值排序,muti允许键重复)

 

计算机网络(网络编程)

TCP三次握手流程,对应的socketAPI

(// 服务端

int listen_fd = socket(AF_INET, SOCK_STREAM, 0);

bind(listen_fd, ...);

listen(listen_fd, 128);

int conn_fd = accept(listen_fd, ...);  // 阻塞直到三次握手完成

// 客户端

int sock_fd = socket(AF_INET, SOCK_STREAM, 0);

connect(sock_fd, ...);  // 发起三次握手,返回时连接已建立)

I/O多路复用(避免了为每个连接创建一个线程/进程的资源开销,通过单个线程/进程同时监听多个文件描述符)的 I/O 事件,包括select(监听的fd有限制),poll(监听的fd无限制但是依然需要o(n)遍历fd),epoll(Linux,事件驱动:只返回就绪的 fd;有两种触发模式(et,lt)))

 

 

数据结构

二叉树,平衡树,搜索树的定义(只有最多两个子节点;左右子树的高度差不大于1的搜索树;左小于根,右大于根)

红黑树(性质,复杂度o(n))

 

算法题:

将链表:

L0->L1->L2->......->LN变为

L0->LN->L1->LN-1->L2->...

(遍历到中点节点,对后半部分反转,快慢指针重新拼接)(o(n)时间,o(n)空间,进阶o(1空间))

(ps:第一眼看成反转链表原题了。错了之后说了数组法的时候面试官笑了,最后想的是构造一条新的反转链表,然后和原链表再两两合并拼接,但是用了o(n)额外空间)

 

操作系统:

操作系统中的虚拟内存和物理内存(自己查一下吧)

 

数据库:

数据库隔离级别(自己查一下吧)

#发面经攒人品#
全部评论

相关推荐

04-10 18:32
已编辑
四川大学 Java
牛客17492028...:我只能说你这学历boss有的是人要,
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务