面试经验(6)

1、若PCping不通路由器,要怎样排查故障

  • Ping 127.0.0.1,该地址是本地循环地址,如发现本地址无法Ping通,就表明本地机TCP/IP协议不能正常工作
  • 如果上面操作成功,可Ping通的话,我们接下来可以输入IPConfig来查看本地的IP地址,然后Ping该IP,通则表明网络适配器工作正常,不通则是网络适配器出现故障
  • 然后Ping一台同网段计算机的IP,不通则表明网络线路出现故障;若网络中还包含有路由器,则应先Ping路由器在本网段端口的IP,不通则此段线路有问题

2、c++怎么检查内存泄漏
在程序退出的时候,调用_CrtDumpMemoryLeaks函数,Visual Studio的output窗口就会打印所有没有释放的东西

3、delete中经常出现的问题
delete后将指针置为NULL

4、tcp中的滑动窗口及拥塞控制
(http://blog.csdn.net/lishanmin11/article/details/77092652)

5、sql注入
通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令

6、get和post的区别

  • get参数通过url传递,post放在request body中
  • get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息
  • GET产生一个TCP数据包;POST产生两个TCP数据包
  • 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据)
  • 对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)

7、实现memcpy函数
大部分认为memcpy是一个char到char的拷贝的循环,担心它的效率。实际上,memcpy是一个效率最高的内存拷贝函数,他不会那么傻,来做一个一个字节的内存拷贝,在地址不对齐的情况下,他是一个字节一个字节的拷,地址对齐以后,就会使用CPU字长来拷(和dma类似),32bit或64bit,还会根据cpu的类型来选择一些优化的指令来进行拷贝。总的来说,memcpy的实现是和CPU类型、操作系统、cLib相关的。毫无疑问,它是内存拷贝里效率最高的,请放心使用。

void *mymemcpy(void *dst,const void *src,size_t num)
{
    assert((dst!=NULL)&&(src!=NULL));
    int wordnum = num/4;//计算有多少个32位,按4字节拷贝
    int slice = num%4;//剩余的按字节拷贝
    int * pintsrc = (int *)src;
    int * pintdst = (int *)dst;
    while(wordnum--)*pintdst++ = *pintsrc++;
    while (slice--)*((char *)pintdst++) =*((char *)pintsrc++);
    return dst;
}

8、视图的作用
1、视图能够简化用户的操作
2、视图使用户能以多钟角度看待同一数据
3、视图对重构数据库提供了一定程度的逻辑独立性
4、视图能够对机密数据提供安全保护
5、适当的利用视图可以更清晰的表达查询,

猜你喜欢

转载自blog.csdn.net/daidaihema/article/details/79605804
今日推荐