2020.9.5早上九点猿辅导二面,问的问题不多,但感觉问的挺好,还让我手撕一道链表的题目,没有找到最优解,十分钟的时间用暴力的方法写出代码,自己觉得不是很满意。事后诸葛亮,最优解总在面试完突然想到,把自己蠢哭了,一顿捶胸顿足之后决定记一下这道题目。
顺便再记一些面试官问的网络和数据库的问题,用倒叙的手法整理成一篇面经吧。
在实际工作中,许多服务器是Linux操作系统,作为程序员无法避免和Linux打交道,所以在应届生面试的时候,Linux常用指令也是面试官经常考察的一个点。
除了我们常用的cd、ls,我们应该掌握一些常用的指令
cd
ls
面向对象的三个基本特征:封装、继承、多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!
计算机网络。
重要性不言而喻。
考研的那几本书都快翻烂了,书上的东西虽不敢说理解了100%,理解了个60%还是有的。
背是不可能背下来的,这辈子都不可能死记硬背的,最多面试前突击记一下……那就来看看哪些需要记忆的吧~
static 是 C/C++ 中很常用的修饰符,它被用来控制变量的存储方式和可见性。
我们知道在函数内部定义的变量,当程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义为全局的变量,但定义一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定义的变量,不仅仅只受此函数控制)。static 关键字则可以很好的解决这个问题。
另外,在 C++ 中,需要一个数据对象为整个类而非某个对象服务,同时又力求不破坏类的封装性,即要求此成员隐藏在类的内部,对外不可见时,可将其定义为静态数据。
1.指针有自己的一块空间,而引用只是一个别名;
2.使用sizeof看一个指针的大小是4或8,而引用则是被引用对象的大小;
3.指针可以被初始化为NULL,而引用必须被初始化且必须是一个已有对象的引用;
4.作为参数传递时,指针需要被解引用才可以对对象进行操作,而直接对引用的修改都会改变引用所指向的对象;
5.可以有const指针,但是没有const引用;
6.指针在使用中可以指向其它对象,但是引用只能是一个对象的引用,不能被改变;
7.指针可以有多级指针(**p),而引用只有一级;
8.指针和引用使用++运算符的意义不一样;
9.如果返回动态内存分配的对象或者内存,必须使用指针,引用可能引起内存泄露。
C++关键字之const
const 是 constant 的缩写,本意是不变的,不易改变的意思。在 C++ 中是用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。
const int* bufSize = 64;
const*常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误。