实习面试基本情况
面经链接:面经。
学习路线及推荐学习时间
一、C++基础(3个月)
面向对象的三大特性:封装、继承、多态 类的访问权限:private、protected、public 类的构造函数、析构函数、赋值函数、拷贝函数 移动构造函数与拷贝构造函数对比 深拷贝与浅拷贝的区别 空类有哪些函数?空类的大小? 内存分区:全局区、堆区、栈区、常量区、代码区 C++与C的区别 extern C作用 C语言为啥可以重载?C++为啥不支持重载? struct与class的区别 struct内存对齐 define宏定义与const常量的区别 new/delete与malloc/free的区别 new一个对象可以用free释放内存嘛? 内存泄露的情况 sizeof与strlen对比 指针与引用的区别 指针函数与函数指针 野指针产生与避免 多态:动态多态、静态多态 虚函数实现动态多态的原理、虚函数与纯虚函数的区别 继承时,父类的析构函数是否为虚函数?构造函数能不能为虚函数?为什么? 静态多态:重写、重载、模板 static关键字:修饰局部变量、全局变量、类中成员变量、类中成员函数 const关键字:修饰变量、指针、类对象、类中成员函数 extern关键字:修饰全局变量 volatile关键字:避免编译器指令优化 四种类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast 右值引用 std::move函数 std::forward与std::move的区别 四种智能指针及底层实现:auto_ptr、unique_ptr、shared_ptr、weak_ptr shared_ptr中的循环引用怎么解决?(weak_ptr) vector与list比较 vector迭代器失效的情况 map与unordered_map对比 set与unordered_set对比
参考书籍:《C++ Primer》(第5版)、《STL源码剖析》、《深度探索C++对象模型》
二、计算机网络(1个月)
参考书籍:《计算机网络》(第5版)、《TCP/IP详解卷1:协议》、《图解HTTP》
三、操作系统(1个月)
四、网络编程(1个月)
五、数据结构与算法及刷题(2个月)
五、mySQL数据库(7天~15天)
六、项目(2个月)
如果时间够的话就可以写一个项目,当然大部分人写的项目都是一个烂大街的项目,也就是“web高性能服务器”。其实就是根据陈硕大神写的《Linux高性能服务器编程:使用muduo C++网络库》进行改编,当然啦,读懂这本书还是很耗时的,学习其中的思想也会受益匪浅的。
总结
按照上面推荐的内容来学习的话,要学习得深入一点的话1年的时间肯定需要的,甚至2年也不足为其。当然对于非科班的学生来说,大部分都没有充足的时间的,这时候建议尽量把C++基础、计算机网络、操作系统、网络编程、数据结构与算法这五个部分的内容学得很扎实,大概6个月的时间。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211649.html原文链接:https://javaforall.net
