【Todo】C++类 & 通用面试题分析记录 & 最难的bug
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的区别:
【Todo】C++类 & 通用面试题分析记录 & 最难的bug的更多相关文章
- 【Todo】Python面试题分析记录(修饰器等)
首先,看这一段代码: class A(object): x = 1 gen = (lambda t: (t for _ in xrange(10)))(x) if __name__ == '__mai ...
- 利用反射实现类通用的DAO层
public void add(Object object) throws SQLException { ResultSet rs=null; PreparedStatement ps=null; C ...
- Mybatis Mapper接口是如何找到实现类的-源码分析
KeyWords: Mybatis 原理,源码,Mybatis Mapper 接口实现类,代理模式,动态代理,Java动态代理,Proxy.newProxyInstance,Mapper 映射,Map ...
- Fine报表权限流程分析记录
Fine报表权限流程分析记录 URL访问三种类型的报表:第一个:BI报表 例如: http://192.25.103.250:37799/WebReport/ReportServer?op=fr_bi ...
- Hibernate4 拦截器(Interceptor) 实现实体类增删改的日志记录
转自:https://blog.csdn.net/he90227/article/details/44783099 开发应用程序的过程中,经常会对一些比较重要的数据修改都需要写日志.在实际工作的工程中 ...
- 使用java理解程序逻辑 试题分析
1.编译Java Applet源程序文件产生的字节码文件的扩展名为() A:.java B..class C:Html D:Exe 正确答案:B 试题分析: 本题考查的是Java程序的开发过程.J ...
- WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。
原文:WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆. 最近总是收到一个异常 "System.Inva ...
- JDK中String类的源码分析(二)
1.startsWith(String prefix, int toffset)方法 包括startsWith(*),endsWith(*)方法,都是调用上述一个方法 public boolean s ...
- 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 ...
随机推荐
- [LUOGU] P1551 亲戚
题目背景 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 题目描述 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚.如 ...
- Gitlab仓库搭建及在Linux/windows中的免密使用
1. Gitlab简介 Gitlab:代码私有仓库,可以使用Git进行代码的管理. GitHub:公共仓库. GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭 ...
- MySQL之单表查询、多表查询
一.单表查询: 单个表的查询方法及语法顺序需要通过实际例子来熟悉 先将表数据创建下: mysql> create database singe_t1; # 建个数据库singe_t1 Query ...
- 前端,字体图标,盒子显隐,2d形变,盒子阴影
---恢复内容开始--- 字体图标 1.将font-awesome-4.7.0文件夹放入项目内 2.在html head中连接 3.在body中导入 盒子显隐 1.使用高度显隐 <p>-- ...
- day12-图
- 【HDU 2126】Buy the souvenirs(01背包)
When the winter holiday comes, a lot of people will have a trip. Generally, there are a lot of souve ...
- 洛谷P3961 图的遍历
题目来源 做这道题的方法不少. 在这里我只提一种 就是大法师. 可以采用反向建边,从最大的点开始dfs 我们考虑每次从所剩点中最大的一个点出发,我们暂且称它为i,而凡是i这个点所能到达的点,可以到达的 ...
- HTML与XML的区别
什么是HTML HTML的全拼是Hypertext Markup Language, 中文也就是超文本链接标示语言.HTML(HyperTextMark-upLanguage)即超文本标记语言,是WW ...
- Android App性能自动化评测方法
前言 App运行在设备上的性能表现也是质量保障的一个重要环节.因此,当我们确保了基本功能的准确之后,还需要有一定的方法评测App在不同设备上的性能表现.本文将从性能指标,评测方法,自动化体系建设等三个 ...
- BNUOJ 1055 走迷宫2
走迷宫2 Time Limit: 1000ms Memory Limit: 65535KB 64-bit integer IO format: %lld Java class name: ...