首页 > 总结一下秋招第二阶段
头像
码农矿工小付
发布于 2021-10-28 12:45
+ 关注

总结一下秋招第二阶段

图片说明

在秋招中,我投递的公司并不多,各个方面都有尝试,这也是我目前在反思的一个事情,面面俱到就意味着难以在某一个方面完成提高。最近秋招坚持不下去了,这几天效率低下,今天再发个小牢骚,发完牢骚之后继续开始学习,还有很多事情不会,还有许多内容应该学习💪

首先把秋招遇到的问题贴一下吧,没有对应的答案,也没有对应提问的公司,一些问题是和同学交流提到的、网络中看到的

面试问题

c/c++

为什么C++模板类在编写的时候,函数的实现需要放在头文件中?

C++中的模板类声明头文件和实现文件分离后,如何能实现正常编译?

Splitting templated C++ classes into .hpp/.cpp files – is it possible

摘抄其中的句子:让我们看一下编译的过程,头文件不会被编译,它们只是会被预处理,预处理后头文件的代码会嵌入到cpp文件中,编译的时候会为这些模板类的成员分配空间,但是此时并不知道它们的类型,无法完成分配恰当的内存空间

vector和list的区别(STL的区别应该着重注意一下)

https://blog.csdn.net/caoshangpa/article/details/80084902

c++11的特性了解吗?(c++11之后也有一些特性)
  • auto类型说明符,让编译器帮助程序员从初始化表达式中分析出变量的数据类型
  • decltype类型指示符,选择并返回操作数的数据类型,编译器分析表达式并得到它的返回值,但是不会实际计算表达式的值
  • nullptr字面量,它是一个void*类型的,而原有的NULL是0。一般需要初始化所有指针,如果不知道需要指向哪里,可以先赋值为 nullptr
  • finaloverride关键字,final修饰类不允许被继承,override关键字用于标明是重写的父类方法 (注意,这两个关键字都是写在最后,如class A final {};void func(int a) override {}
  • lambda表达式,类似于 javascript中的闭包,可以用于创建匿名函数对象

[函数对象参数](操作符重载函数参数)mutable或exception声明->返回值类型{函数体}

  • 增加了 =default=delete语法,用于强制声明或不声明构造方法
  • 新增了for-each的循环遍历方式
  • 新增了unique_ptrshared_ptr智能指针
  • 新增了threadmutex
c++智能指针了解吗?

参考《C++服务器开发精髓》

c++ 中所有的智能指针都在 <memory>头文件中,其中在 c++11中 std::auto_ptr只能指针已经被废弃,智能指针对指针进行了封装,可以像普通指针一样使用,但是可以随着智能指针对象的释放而释放,避免造成内存泄露。

  • std::auto_ptr的主要问题在于,在复制一个 auto_ptr对象的时候(无论是拷贝构造函数还是赋值语句),原有堆内存对象都会被转移出来给新的对象,原有的 auto_ptr就指向了空,这样在访问旧指针对象的时候可能会出问题,而且在使用 stl 的时候可能导致大量 空指针的出现
  • std::unique_ptr对堆内存有唯一的拥有权,它禁止实现拷贝构造函数和重载=(标记为=delete),保证一块堆对象只有一个指针指向它
  • std::shared_ptr允许一个资源对象对应多个指针,每多一个 std::shared_ptr对资源的引用,引用计数就会+1,析构的时候会-1,当最后一个 std::shared_ptr析构的时候,就会彻底释放资源
  • std::weak_ptr是对对象的弱引用,不会控制资源的生命周期,为了协助std::shared_ptr工作,它的构造和析构不会导致计数增加或减少,用于观测std::shared_ptr的引用计数,防止死锁

auto_ptrunique_ptr与裸指针的大小一样,而shared_ptrweak_ptr是裸指针的2倍

野指针是什么?如何避免野指针?

https://zh.wikipedia.org/wiki/%E8%BF%B7%E9%80%94%E6%8C%87%E9%92%88

多态的含义和实现?它的意义是什么?

https://blog.csdn.net/lihao21/article/details/50688337

c++内存管理

https://chenqx.github.io/2014/09/25/Cpp-Memory-Management/

堆和栈的区别?
static的用法和意义
malloc的内部实现机制

https://zhuanlan.zhihu.com/p/57863097

构造函数都有什么?

参考 《effective c++》

  • 默认构造函数
    • 一个可被调用而不带任何实参的,这样的构造函数要么没有参数,要么就是每个参数都有缺省值
  • 构造函数
    • 可以自己定义的构造函数,传递许多参数
  • 拷贝构造函数
    • 以同型对象初始化自我对象,用来从另一个同型对象中拷贝其值到自我对象
    • 它定义了函数的值传递行为
bool hasAcceptableQuality(Widget w);

Widget aWidget;
// 这个调用行为aWidget会被复制到w中
if(hasAcceptableQuality(aWidget));
// pass by value 意味着调用copy构造函数,而更好的主意是pass by reference to const
STL主要实现了什么?
  • 容器 vector list set map
  • 迭代器 vector<int>::iterator set<string>::iterator</string></int>
  • 算法 for_each find sort
  • 函数对象

网络安全

SQL注入

https://www.jianshu.com/p/73b19cf15e26

TLS1.2和1.3的区别

RFC上有单独的一节介绍

  • OpenSSL 1.1.1及以后版本有5个新的ciphersuites,只在TLS1.3下工作。新的密码套件不能用于TLS1.2及以下,旧密码套件也不能用于TLS1.3
  • 新的CipherSuites定义也不同,不指名证书类型(RSA/DSA/ECDSA),也不指明密钥交换机制(DHE/ECDHE)。这会对密码套件的配置有影响
  • Client在ClientHello中提供了key_share
  • TLS1.3的会话是在主握手完成之后建立,这可能会在握手结束和会话建立之间存在一个gap
  • TLS1.3不允许renegotiation(再协商)
  • serverhello之后的消息全部被加密
  • TLS1.3 中不再允许DSA证书
  • TLS1.3中,certificate和certificate verify二者必须一起使用
HTTPS是什么?TLS协议过程

https://mp.weixin.qq.com/s?__biz=MzUxODAzNDg4NQ==&mid=2247487650&idx=1&sn=dfee83f6773a589c775ccd6f40491289&chksm=f98e5408cef9dd1ed900a15c27f00c811a5587ffa59a90a69a73d1794800838b6fd4b061ff9f&scene=178&cur_album_id=1337204681134751744#rd

HTTPS的数字证书是做什么的?

计算机网络

TCP三次握手?为什么两次握手不可以?
TCP四次握手的过程?为什么四次握手最后要等待2MSL?
介绍一下拥塞控制的算法?

面试官提醒可以看一些最新的算法

TCP和UDP的区别
TCP粘包的原因以及怎么处理?
HTTPS与HTTP的区别
HTTP中POST和GET的区别
HTTP状态码
输入一条URL到显示出页面的过程?
DNS协议的过程

操作系统

内存管理

https://www.cnblogs.com/peterYong/p/6556619.html

https://www.cnblogs.com/peterYong/p/6556615.html

死锁是什么?它产生的必要条件是什么?死锁的解决办法?
进程与线程的区别和联系
进程通信方式

https://mp.weixin.qq.com/s?__biz=MzUxODAzNDg4NQ==&mid=2247485318&idx=1&sn=0da0a684639106f548e9d4454fd49904&chksm=f98e432ccef9ca3ab4e10734fd011c898785f18d842ec3b148c7a8ee500790377858e0dbd8d6&scene=178&cur_album_id=1408057986861416450#rd

协程是什么?

协程可以认为是在应用层模拟的线程,它看上去像子程序,但是在执行过程中,子程序内部可以中断转而去执行别的子程序,在适当的时候返回执行;但协程不是函数调用,也不是多线程,而是程序自身控制的

  • 它没有多线程的线程切换的开销
  • 不需要多线程的锁机制,因为只有一个线程,不会产生冲突
公平锁与非公平锁?
进程切换上下文的过程中发生了什么?

MySQL数据库

数据库的三大范式?
执行查询语句的过程?
事务是什么?事务的特性(ACID)?事务的实现原理?
数据库的隔离级别以及对应可能出现的问题?
SELECT字句的执行顺序?

SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY → LIMIT

查询优化的方法?
索引失效的情况?
存储过程是什么?
视图是什么?它的作用是什么?
MySQL的存储引擎有什么?它们的特点是什么?
MySQL中有什么索引?
InnoDB为什么使用B+Tree,而不是红黑树或者B树?
覆盖索引是什么?
回表是什么?
最左匹配查询?

Linux相关

如何获取一个文本文件的最后几行?
删除一个文本文件中重复的行?

https://zhuanlan.zhihu.com/p/96934479

对于大文件:http://www.xitongzhijia.net/xtjc/20141226/33538.html

数据结构

哈希表的哈希冲突应该怎么处理?
哈希表为什么要选择一个质数作为长度?
数组和链表的区别?
排序算法的原理以及稳定性?(各个算法的原理,可能让说思路)
实际中的快速排序是怎么实现的?为什么要这样设计?

场景题

如何缩短url的长度并做唯一映射?如何保证在高并发时的稳定性?

https://cloud.tencent.com/developer/article/1181632

HR面/人力面

自我介绍?(偏软实力)
你遇到的最大的困难?你学习到了什么?
你认为自己的优点和缺点是什么?
最近在读什么书?可以介绍一下吗?
平时的爱好有什么?
你认为你来我们这里能做什么?(职业生涯规划)
其他offer情况?

发个牢骚

前几天刚开始感受到难过的时候,看到了一个学长的帖子 我与字节的25面,看完之后心理五味杂陈,一方面被学长的面试经历感叹,百折不挠值得我们去学习,另一方面就是看到自己才投递了很少的公司就受不了了,才到了什么阶段。

画完时间轴的时候才发现从开始准备秋招已经两个多月了,从一开始地局促不安,到国庆之前经常性精神崩溃,到现在心态时好时坏。觉得自己当初没有一股脑地找博士名额而是选择出来找找工作是正确的,虽然依然很菜,但是这一步不后悔。

下午写写情绪日记继续出发

全部评论

(2) 回帖
加载中...
话题 回帖

近期热帖

热门推荐