大华服务器面经整理

这是秋招时自己整理的资料,也就是简单做了分类,希望有用

C/C++ 基础

C与C++区别、C++相对于C的优点

C和C++ struct 区别

C的struct可以有函数吗

C 为什么不能在结构体实现函数( C语言结构体里面也可以包含函数,如同类中有方法一样,但是不能通过直接放过一个函数进去,需要通过函数指针的方式

struct 和class 区别

const关键字,const修饰成员函数会怎样

内存对齐有什么用?

智能指针、有啥区别

shared_ptr什么情况下会增加计数,传引用会增加计数吗,为什么

动态库调用的方法

动态链接和静态链接的优缺点,链接库位于哪个存储区

C++内存分配

堆和栈的区别

内存泄漏的场景

i++是不是原子操作

程序编译过程介绍,编译阶段详细介绍

指针和引用的区别

new、delete,malloc、free的区别

Malloc可以生成对象吗?

strcpy和memcpy区别

假如让你写一个memcpy函数,有哪些需要注意的地方?

C++三大特性

类的静态成员占用类空间吗?静态成员有什么作用?

构造,拷贝构造,析构函数

析构函数为啥加virtual关键字

什么情况下需要重写拷贝构造函数

移动构造函数的作用?

C++多态继承

C++多态、实现方式(函数重载,模板函数、虚函数)、多态的实现原理、多态过程

静态多态和动态多态

虚函数和纯虚函数

虚函数是怎么实现的

抽象类(纯虚类,含有纯虚函数的类),为子类提供公共接口,本身不能实例化,子类要实例化,需要实现纯虚函数内容。

多态怎么实现的?哪些函数不能是虚函数?

STL

list、vector的区别

迭代器什么时候会失效,删除时会失效吗

vector 扩容过程

vector 里面删除一个节点以后哪些迭代器失效

vector,list,map,底层实现,扩容,时间复杂度

STL熟悉吗?哪些用的多?如何遍历一个map?(想复杂了,其实答 迭代器/for循环 就够了)

容器用过哪些,底层是什么

map的底层实现 ,存储的是什么

map容器迭代器失效的情况,如何避免,想到了迭代器遍历过程中是通过迭代器自加,遍历的,没想到同样是通过迭代器自加避免失效

Set底层实现

Stack和queue底层怎么实现的

erase注意事项有哪些?

  • 要接收erase返回的迭代器

  • erase返回的迭代器自动指向下一个位置,所以代码里有erase的, 要注意只有不运行erase的部分需要 iterator++

计算机网络

TCP 和 UDP区别

TCP 长连接是如何实现的

UDP保证可靠如何实现: 传输层无法保证数据的可靠传输,只能通过应用层来实现了。实现的方式可以参照tcp可靠性传输的方式,只是实现不在传输层,实现转移到了应用层。 实现确认机制、重传机制、窗口确认机制

TCP 怎样保证可靠

TCP 为什么是可靠的传输协议

TCP 流量控制,拥塞控制

TCP /IP 四层模型

TCP/IP 五层协议分别是什么

TCP 的三次握手、四次挥手的过程及涉及到的状态转换

TCP 三次握手中accept发生了什么

ping命令用的什么协议,有什么用

网络通信分层、每一层用什么协议

应用层协议有哪些

get和post有什么区别

Socket通信

IO多路复用

Socket是阻塞的吗?

同步阻塞,异步阻塞

阻塞和非阻塞

怎么设置 Socket 非阻塞。

socket 的流程

了解 epoll 吧,能介绍下吗?

LT和ET有什么区别,使用时要注意什么?

epoll 触发方式以及 epoll、select 和 poll 的区别

监控文件描述符的大小不是select底层是数组有限制,我说有个宏设置,然后面试官问我那不可以修改吗,为啥还非得有限制,

计算机系统 & linux

什么是死锁,原因,产生条件

死锁产生必要条件:互斥、请求和保持,不可剥夺,循环等待

无锁结构、cpu优化

线程锁有哪些

协程和线程的区别

线程和进程的相关内容

如何实现进程的同步

进程和线程通信方式

  • 进程数据通信方式:管道、消息队列、信号量、socket、信号、共享内存

  • 线程通信方式,选一种用过的说说:共享内存和信号量(适用于什么场景下 )

条件变量变化时,阻塞进程持锁问题

内存池:分配内存,提高效率,减少内存碎片,减少开销(线程池)

内存碎片处理

内存管理

linux内存管理,虚拟内存和物理内存怎么理解的

为什么要用多线程?举个例子

多线程安全

进程线程资源分配、内核而言

线程池资源分配、内核方面、最大线程数量、线程池合理分配

互斥操作

有名管道和无名管道的区别(项目中有使用过吗)

操作系统的进程,线程,优先级等,给了一个例子,让写PV操作伪代码。

项目中用的系统调用函数

高并发怎么处理

内核到用户的拷贝过程

Linux文件操作指令

移动文件指令

如何访问没有权限的文件

用过GDB调试吗?用过哪些命令呢?

linux常用命令:查看cpu运行资源的命令free,查看线程的命令ps,查看进程占用资源的命令top

GDB调试怎么用,说说用在哪里,怎么用的

Linux基本命令

查看内存和磁盘管理的命令

makefile用过吗,说说功能是什么,怎么使用的;

Linux查看线程指令

linux怎么修改句柄数?

如何提高一个文件的传输效率

算法

判断链表是否有环(多种方法)

判断一个字符串是否为另一个字符串的子串(多种方法)

知道哪些排序算法;排序算法的事件复杂度,选择排序,快排,堆稳定不稳定,如何判断稳定不稳定

查找算法:二分,哈希以及二分的查找条件

解决哈希冲突的方法

双向循环链表怎么创建?用两句话说清楚(两句话没有说清楚,不用再说了)

输出完全二叉树最右边节点。

单链表快排

讲讲循环链表是怎么实现的;

链表

二叉树应用在哪里(大量信息搜索的优秀数据结构,数据库索引)栈(计算器)队列(打印机,os消息队列)

单链表循环链表的操作

设计模式

设计模式了解吗

例程模式

单例模式

数据库

索引的实现方式,为啥要用b+树,为啥不用hash表?

主键可以有多个吗?

索引可以有多个吗?

Replace 关键字


#大华校招##浙江大华技术股份有限公司##面试题目#
全部评论

相关推荐

头像
点赞 评论 收藏
转发
5 48 评论
分享
牛客网
牛客企业服务