招银网络科技技术一面

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-13 09:11 重庆

相关推荐

招银网络科技第一面面试官非常好,没有刁难,问的问题还行,只不过我是考研失败速成的,非常感谢提供的面试机会,整个春招就只有这个面试,也不知道咋办了。JVM的垃圾回收算法有那些?【1】标记--清楚算法(内存碎片较多,有可能导致下一次GC的时间提前)【2】标记- 整理算法(解决了内存碎片较多的问题,清理垃圾对象)【3】复制算法(内存分成两份,内存利用率不高,类似于COW的思想,可以看一下CopyOnWriteList)【4】分代回收算法(新生代和老年代)JVM内存区域中堆存放什么?栈存放什么?【1】堆存放实例化对象,数组【2】栈存放局部变量、基本类型值、对象引用JAVA线程池的参数?执行流程是什么?【1】核心线程数,最大线程数,时间单位,等待队列,拒绝策略,空闲队列存活时间,线程工厂【2】任务数<核心线程数---》创建核心线程执行任务数>核心线程--》进入等待队列等待队列满了之后--》再创建线程来执行任务当线程数达到最大值--》拒绝策略JAVA本身的线程池有什么问题?(不设置任何参数)OOM【1】出现队列大小无界的情况,可能发生OOM【2】线程数无上限--线程爆炸Volaite关键字是为了保证什么?能不能用它保证原子性?【1】可以实现可见性,对于该字符所修饰的变量每次都是从CPU内存中读取的,而不是从缓存中读取的。(每次从内存读取+禁止指令重排序)【2】不能保障原子性,没有加锁,可以用原子类来统计变量保证原子性网盘项目的分片传输怎么实现,redis的作用时什么?是如何分片的?(前端分片还是后端分片)。固定窗口和滑动窗口有什么区别?Mybaits是如何实现和数据的连接?前端请求是如何通过SpringMvc达到后端的?TCP连接是如何保证可靠性的?
查看10道真题和解析
点赞 评论 收藏
分享
评论
2
6
分享

创作者周榜

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