C++后端面试知识精选系列(三)

1.说说C++中const关键字的作用?

参考解答:1)修饰变量使其不能被修改;

                  2)  修饰函数参数,表明传入的参数在函数内不能被修改;

                  3)对指针而言,可以指定指针指向的内容不能被修改(const int * p 常量指针——指向“常量”的指针),也可指定指针的指向不可改变(int * const p指针常量——指针类型的常量),也可同时指定(const int * const p   指针指向和指向的内容都不能被修改;

                  4)  修饰类的成员函数,表明其是常函数,不能修改类的成员变量,const成员函数不能调用非const成员函数,因为非const成员函数可能会修改成员变量。

2. 说说C++内存分区中堆栈的区别?

参考解答:1)存储内容:栈存放的是局部变量和函数参数等;堆存放的是new/malloc申请的变量;

                  2)管理方式:栈由系统自动分配,自动释放;堆由程序员手动申请,手动释放;

                  3)空间大小:32位系统一般堆能达到4G,可以看做堆没有什么限制的,但栈一般是有特定大小的,windows下一般2M;

                  4)生长方向:栈是向下(高地址——>低地址)生长的,堆是向上生长(低地址——>高地址)的;

                  5)   申请效率:栈由系统自动申请分配,速度较快;堆由new/malloc分配,速度较慢。

3. 实践中如何优化MySQL?

参考解答:1)SQL语句及索引的优化;2)数据表结构的优化;3)系统配置的优化;4)硬件的优化。四条从效果上来说,第一条影响最大,后面越来越小。

4. 如何设计一个高并发的系统?

参考解答:1)数据库的优化,包括合理的事务隔离级别、SQL语句优化、索引优化;2)使用缓存,尽量减少数据库IO操作;3)分布式数据库、分布式缓存;4)服务器的负载均衡。

5.什么叫小端/大端机器?

参考解答:小端/大端的区别是指地位数据存储在内存地位还是内存高位。小端机器:数据低位存储在内存低位,数据高位则存储在内存高位;大端机器:数据低位存储在内存高位,数据高位存储在内存低位。目前绝大多数都是小端机器,符合人们的逻辑思维的数据存储方式。

6.请描述长连接和短连接?

参考解答:长连接和短连接指的是TCP的长连接和TCP的短连接。

                  TCP长连接:TCP长连接指建立连接后保持连续而不断,如一段时间没有数据交互,保活定时器超时后,服务端会发送探测报文给客户端检测客户端是否在线。连接——传输数据——保活——传输数据——保活——........。

                  TCP短连接:指建立并传输数据完成后立即断开。连接——传输数据——断开

                  应用场景:长连接适合单对单通信且连接数不太多的情况,短连接适用于连接数多且经常需要更换连接对象的。

                   HTTP/1.0中,默认使用短连接,HTTP/1.1起,默认使用长连接。HTTP的长连接也不是永久保持连接,保活计时器超时后,探测报文没回应,那么也会断开连接。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值