周巨头的面试

1. 服务器端的程序运行时崩溃了怎样定位出错的代码位置

  • 内存泄漏
    Linux中可以借用工具排查错误。
    像之前一样自己重新封装malloc函数

    此处联想[如何查找内存泄漏]问题

  • 磁盘已满[个人觉得这个可能性大些]
    导致系统无法正常运行的最可能的原因是磁盘已满。一个好的网络管理员会密切关注磁盘的使用情况,隔一定的时间,就需要将磁盘上的一些负载转存到备份存储介质中(例如磁带)。

日志文件会很快用光所有的磁盘空间。Web服务器的日志文件、SQL*Net的日志文件、 JDBC日志文件,以及应用程序服务器日志文件均与内存泄漏有同等的危害。可以采取措施将日志文件保存在与操作系统不同的文件系统中。日志文件系统空间已 满时Web服务器也会被挂起,但机器自身被挂起的几率已大大减低。

  • 数据库的临时表不够用[这个可能性也挺大的]
    许多数据库的临时表(cursor)数目都是固定的,临时表即保留查询结果的内存区域。在临时表中的数据都被读取后,临时表便会被释放,但大量同时进行的查询可能耗尽数目固定的所有临时表。这时,其他的查询就需要列队等候,直到有临时表被释放时才能再继续运行。

  • 服务器超载[一般不太可能,因该实现都是估计好的。除非DDos攻击]
    Netscape Web服务器的每个连接都使用一个线程。Netscape Enterprise Web服务器会在线程用完后挂起,而不为已存在的连接提供任何服务。如果有一种负载分布机制可以检测到服务器没有响应,则该服务器上的负载就可以分布到其 它的Web服务器上,这可能会致使这些服务器一个接一个地用光所有的线程。这样一来,整个服务器组都会被挂起。操作系统级别可能还在不断地接收新的连接, 而应用程序(Web服务器)却无法为这些连接提供服务。用户可以在浏览器状态行上看到connected(已连接)的提示消息,但这以后什么也不会发生。

  • C指针错误
    这还真不好办

  • 线程死锁

[补充 CVTE的web后台一面] 如何排查JVM进行gc之后还是有很多内存没有释放

https://blog.csdn.net/fishinhouse/article/details/80781673

2.四次挥手如果没有四次会出现什么问题

1. 指针和引用

2. 宏和inline

3. 避免头文件重复编译

4. ifndef和#pragram once

5.c++的编译链接过程

6.数组里找重复的数 除了map有没有其他方法

7.网络编程

8. 服务器端程序崩溃定位出错代码

10匹马5条赛道 找出最快的5匹马最少需要比赛几次

8.智能指针
10.线程通信
5.链表找环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值