1. the most difficult bug u fixed and how u solved this problem..

解决过很多疑难bug。最困难的分为两类。一类是并发、多线程类的,因为bug的出现依赖于一定的时序,难以复现;看到的是被破坏的现场。线程安全类问题很多发。

另一类是对外部系统有依赖的,很多错误出在依赖的框架或者库里面,而这时候需要根据框架和库报出来的log来分析问题,很多时候报出来的不一定准确,搜索引擎也找不到解决方案。要去读一读源码。

还有一种是缓存类的bug。这个缓存可能是字符串中残余的内容,也可能是Redis中的数据没有刷新。

另有一些具体的,比如开始用稳定排序,工作正常;依赖库或者函数变成不稳定排序后,就会出现问题。

还有一类bug是字符编码问题,比如有的中文编码始终是有问题的。

很多bug,解决了之后,都发现,其实很简单。但是当时,却真的要查很久。

今天有一个实际的bug,就是关于指针指向的处理。有一个问题现象很诡异,查了一个晚上,原来在回收资源的时候,一定情况下有一个指针的指向没有置为NULL,而这个资源并没有完全废弃,下次会被重复利用,然后这个原始的错误的指向就可能带来问题。

还有一个bug,定时到12点就发生返回的结果有问题,开始以为某些跟时间相关的函数造成的,日志打的也不错,也不core,后来加了日志,看了发现原来是依赖的上游文件,12点推送过来,开始是空的,而处理这个文件的逻辑有问题,全空的时候,结果就会有问题,但是如果不是全空的话,就能够正常处理。所以还是依赖于外部的一个bug和fix。

补充问题:调试方法?

这篇文章有一些关于gdb, 多线程以及pstack, gcore, strace等命令的使用调试方法:

http://www.cnblogs.com/charlesblc/p/6256912.html

2. describe a group project u worked on and your contribution.

I lead a team. 广告、电商、百度购物、百度返利,夺宝。

1:虚函数原理?有何用?(辅助实现设计模式)
    虚表,编译器绑定到虚表中的指定项。
    同样虚函数也如此,编译器已经算好了虚函数在虚表中的位置。只是由于只是由于每个类的指向虚表的指针不一样,才产生了多态的行为。

2. 调试内存泄露的方法:

3. 为什么哈希桶一般是质数:

其实是为了避免不好的哈希算法导致的桶分配不均,变成质数,稍微好一些。比如按照最后取余来哈希的,如果是一个合数,桶的分配容易形成规律。

但是一般都用好的哈希算法。常见的哈希算法见这篇文章:http://www.cnblogs.com/charlesblc/p/6130141.html 其中加法哈希就需要桶数为质数。

首先来说假如关键字是随机分布的,那么无所谓一定要模质数。但在实际中往往关键字有某种规律,例如大量的等差数列,那么公差和模数不互质的时候发生碰撞的概率会变大,而用质数就可以很大程度上回避这个问题。
质数并不是唯一的准则,具体可以参考以下网站。
good hash table primes
 

epoll与select/poll的区别:

提到网络效率的总结:
 
原子操作方面的知识:
 
共享内存基本操作:
共享内存深层次知识:
 
线程同步之条件变量与互斥锁的结合:
 
虚继承、重载覆盖隐藏的讨论:
 
实现memcpy题目的一些注意点:https://my.oschina.net/renhc/blog/36345
1. 注意拷贝位置重叠
2. 注意效率(memmove能解决重叠问题,但是效率低)
 
 
 中断知识、中断与异常的比较
 
系统调用相关知识:
 
 
 
 

【Todo】C++类 & 通用面试题分析记录 & 最难的bug的更多相关文章

  1. 【Todo】Python面试题分析记录(修饰器等)

    首先,看这一段代码: class A(object): x = 1 gen = (lambda t: (t for _ in xrange(10)))(x) if __name__ == '__mai ...

  2. 利用反射实现类通用的DAO层

    public void add(Object object) throws SQLException { ResultSet rs=null; PreparedStatement ps=null; C ...

  3. Mybatis Mapper接口是如何找到实现类的-源码分析

    KeyWords: Mybatis 原理,源码,Mybatis Mapper 接口实现类,代理模式,动态代理,Java动态代理,Proxy.newProxyInstance,Mapper 映射,Map ...

  4. Fine报表权限流程分析记录

    Fine报表权限流程分析记录 URL访问三种类型的报表:第一个:BI报表 例如: http://192.25.103.250:37799/WebReport/ReportServer?op=fr_bi ...

  5. Hibernate4 拦截器(Interceptor) 实现实体类增删改的日志记录

    转自:https://blog.csdn.net/he90227/article/details/44783099 开发应用程序的过程中,经常会对一些比较重要的数据修改都需要写日志.在实际工作的工程中 ...

  6. 使用java理解程序逻辑 试题分析

      1.编译Java Applet源程序文件产生的字节码文件的扩展名为() A:.java B..class C:Html D:Exe 正确答案:B 试题分析: 本题考查的是Java程序的开发过程.J ...

  7. WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。

    原文:WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆. 最近总是收到一个异常 "System.Inva ...

  8. JDK中String类的源码分析(二)

    1.startsWith(String prefix, int toffset)方法 包括startsWith(*),endsWith(*)方法,都是调用上述一个方法 public boolean s ...

  9. PostgreSQL的基础数据类型分析记录-转

    src:http://www.codeweblog.com/postgresql%E7%9A%84%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E ...

随机推荐

  1. mysql delete 表无法用别名

    delete from exam_paper_question_opt a WHERE a.OPTION_ID = 65630 and a.QUESTION_ID = 28656 AND a.EXAM ...

  2. DFS输出全排列

    前言 输入n(1 <= n <= 20),按字典序输出所有1~n的排列.如果排列数量太多,则只需要输出前100个 输入样例 3 输出样例 1 2 3 1 3 2 2 1 3 2 3 1 3 ...

  3. Redis数据库(一)

    1. Redis简介 Redis是非关系型数据库(nosql),数据保存在内存中,安全性低,但读取速度快. Redis主要存储变化较快且数据不是特别重要的数据. Redis是一个key-value存储 ...

  4. AHB2reg接口转换

    assign mcu_xxx_addr = (rd_after_wr_reg || reg_valid_write_trans) ? haddr_reg[ADDR_WIDTH+:] : haddr[A ...

  5. opencv中ptr的使用

    #include <QCoreApplication> #include<stdio.h> #include<opencv2/highgui/highgui.hpp> ...

  6. 经典DP问题--poj1088滑雪

    Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...

  7. 关于JPA的理解

    JPA全称 Java Persistence API.JPA通过JDK5.0注解或者XML描述对象和关系表的映射关系,并将运行期的实体对象持久化到数据库中.持久化:即把数据(如内存中的对象)保存到可永 ...

  8. C#保存图片到文件夹区分8位和24位

    1.保存图像--24位位图(显示的图像,包括增加结果到界面上的数据) Image image2 = default(Image); image2 = cogRecordDisplay1.CreateC ...

  9. django基础(web框架,http协议,django安装)

    学习Django之前我们先来看什么是OSI七层模型: 应用层 表示层       应用层(五层模型中把这三层合成一个应用层) http协议 会话层 传输层                  提供端口对 ...

  10. TOJ 2703: Cow Digit Game

    2703: Cow Digit Game Time Limit(Common/Java):1000MS/10000MS     Memory Limit:65536KByte Total Submit ...