很棒的面经
原帖:https://www.nowcoder.com/discuss/462735131938172928为什么在 C++ 中需要在析构函数上加上 virtual 关键字?C++默认析构函数不是虚函数,因为申明虚函数会创建虚函数表,占用一定内存,当不存在继承的关系时,析构函数不需要申明为虚函数。若存在继承关系时,析构函数必须申明为虚函数,这样父类指针指向子类对象,释放基类指针时才会调用子类的析构函数释放资源,否则内存泄漏。CPU怎么切换?1、IO等待切换.2、时间轮询切换,也就是如果没有IO等待的情况下,就会有时间轮询切换,不让CPU一直处理一个任务缺页中断?缺页异常:malloc和mmap函数在分配内存时只是建立了进程虚拟地址空间,并没有分配虚拟内存对应的物理内存。当进程访问这些没有建立映射关系的虚拟内存时,处理器自动触发一个缺页异常,引发缺页中断。缺页中断:缺页异常后将产生一个缺页中断,此时操作系统会根据页表中的外存地址在外存中找到所缺的一页,将其调入内存。docker的常用命令docker imagesdocker psdocker rundocker exec docker pulldocker logsk8s网络?提问不明确iptables在Linux中,规则表(Table)是用于组织和管理iptables规则的逻辑结构。iptables规则表是基于Netfilter框架实现的,通过规则表可以方便地管理和操作iptables规则。iptables规则表可以分为四种类型:Filter表:Filter表是最常用的规则表NAT表:NAT表用于实现网络地址转换(Network Address Translation)。Mangle表:Mangle表用于修改数据包的特定字段,如TTL、TOS、IP ID等。Raw表:Raw表用于控制数据包是否被连接跟踪系统跟踪。TCP Wait_Time提问不明确排序算法复杂度二分查找的时间复杂度lognC++ virtural 作用修饰虚函数虚函数的实现C++实现虚函数的原理是虚函数表+虚表指针。当一个类里存在虚函数时,编译器会为类创建一个虚函数表,虚函数表是一个数组,数组的元素存放的是类中虚函数的地址。同时为每个类的对象添加一个隐藏成员,该隐藏成员保存了指向该虚函数表的指针。该隐藏成员占据该对象的内存布局的最前端。所以虚函数表只有一份,而有多少个对象,就对应多少个虚函数表指针。动态绑定虚函数在运行期间动态绑定,即父类指针和引用指向子类的实例时,通过父类指针或引用可以调用子类的函数TCP三次/四次三次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,等待Server确认。Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置1,ack=J+1,随机产生一个值seq=K,并将该数据包发给Client以确认连接请求。Client收到确认后,检测ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server。完成三次握手,随后Client与Server之间可以开始传输数据了。四次挥手:数据传输结束后,Client的应用进程发出连接释放报文段FIN,并停止发送数据,此时Client依然可以接收Server发送来的数据。Server接收到FIN后,发送一个ACK给Client,确认序号为收到的序号+1。当Server没有数据要发送时,Server发送一个FIN报文,等待Client的确认。Client收到Server的FIN报文后,给Server发送一个ACK报文,确认序列号为收到的序号+1。此时Client进入TIME_WAIT状态,等待2MSL(MSL:报文段最大生存时间),然后关闭连接。为什么要等2MSL这是为了保证客户端发送的最后一个ACK报文段能够到达服务器。如果客户端不等待2MSL,这个ACK报文段可能丢失,因而使得处在LAST-ACK状态的服务器收不到ACK报文段的确认,导致服务器无法正常关闭。而如果客户端等待2MSL,服务器就会超时重传FIN报文段,而客户端就能在2MSL时间内收到这个重传的FIN-ACK报文段。接着客户端重传一个确认,重新启动2MSL计时器。当服务器收到最后一个ACK后就可以正常关闭了。2MSL的意义是,经过2MSL后,所有的报文都会消失,不会影响下一次连接。最后客户端和服务器端都能正常进入到CLOSED状态。ping命令ping用于确定本地主机是否能与另一台主机成功交换(发送与接收)数据包,再根据返回的信息,就可以推断TCP/IP参数是否设置正确,以及运行是否正常、网络是否通畅等。icmp处于那一层网络层查看进程的命令ps -ef查看IP的命令ifconfigip addr showLinux文件夹权限是啥举例:文件的权限字符为 -rwxrwxrwx 时,这里总共会有10个字符,第一个字符表示文件类型,如文件(-表示),文件夹(d表示),链接文件(l表示),块设备(b表示),字符设备(c表示),后面9个字符按照三个一组分。其中,我们可以使用数字来代表各个权限。各权限的分数对照如下:每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] ,则分数是:owner = rwx = 4+2+1 = 7group = rwx = 4+2+1 = 7others= --- = 0+0+0 = 0所以我们设定权限的变更时,该文件的权限数字就是770!以上答案均来自本人专栏:校招面试考点全解析——C++软件与嵌入式篇(蒋豆芽的秋招打怪之旅)欢迎大家围观:https://blog.nowcoder.net/jiangwenbo
点赞 9
评论 10
全部评论

相关推荐

不对是145个人…嗯… 大家都没发现秋招提前批来了嘛..笑死我了
牛客39712426...:投了也是浪费时间,之前投米实习,除了浪费我时间写笔试题没有任何反馈,懒得投了
26届校招投递进展
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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