夸张,腾讯实习三个月,存款20W+

大家好,我是白露。

今天在牛客上看到一条帖子,让我感叹万分:实习两三个月,竟然已经存下了20多万的存款

img

这也太夸张了吧?不太真实啊……

很多网友表示疑问,“两三个月实习顶多存两三万吧?武理奖学金十几万?”

img

楼主回复说:“还有学校补贴和导师横向,实习了半年多,存了五六万吧。”

所以真相了,其实是算上了之前的存款和其他收入。

但是这也很厉害了啊!优秀的人总是能带给我们无限的力量和激励

把上面这篇帖子的内容分享给大家,是希望给我的粉丝们一些动力和鼓舞。

现在的互联网充斥着各种负面情绪,很多人一刷就很容易陷入emo状态,甚至自我怀疑,失去了学习的热情和动力。

但无论大环境如何,进化论永远不过时:“优胜劣汰,适者生存。”

如果我有躺平的资本,自然可以选择不努力。然而,事实是我没有这个条件,所以努力是无法规避的选择。不过,努力不等于盲目地卷,周末的休息也是必不可少的。

真正的优秀,是那些默默努力并最终脱颖而出的,因为他们懂得如何抓住每一个机会,如何在逆境中找寻希望。如果有任何困惑或分享,欢迎在评论区留言讨论。还没有拿到offer的同学,可以看看一次腾讯面试题目了,已经稳定的同学,可以直接跳转最后,有惊喜哦~

开始面试

面试官: 你好,欢迎来到搜狗输入法PC客户端的面试。请先进行一下自我介绍。

求职者: 您好,我是一名计算机科学与技术专业的毕业生,对C开发有着浓厚的兴趣和实践经验。在校期间,我参与了多个使用C的项目,包括桌面应用程序和游戏开发。我熟悉C++的面向对象编程,理解内存管理,并且对性能优化有一定的研究。

面试官: 很好,请手撕快速排序。

求职者: 快速排序的基本思想是选择一个基准值,通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。

#include <iostream>
#include <vector>

void quickSort(std::vector<int>& nums, int left, int right) {
    if (left >= right) return;
    int i = left, j = right;
    int pivot = nums[left]; // 选择基准值
    while (i < j) {
        while (i < j && nums[j] >= pivot) j--;
        if (i < j) nums[i++] = nums[j];
        while (i < j && nums[i] <= pivot) i++;
        if (i < j) nums[j--] = nums[i];
    }
    nums[i] = pivot;
    quickSort(nums, left, i - 1);
    quickSort(nums, i + 1, right);
}

int main() {
    std::vector<int> nums = {3, 1, 4, 1, 5, 9, 2, 6, 5};
    quickSort(nums, 0, nums.size() - 1);
    for (int num : nums) {
        std::cout << num << ' ';
    }
    std::cout << std::endl;
    return 0;
}

面试官: C++重载是怎么实现的?

求职者: C++中的函数重载通过在同一作用域内给多个函数赋予相同的名字但不同的参数列表来实现。编译器根据函数的参数类型、个数以及顺序来区分它们。这一过程在编译时完成,称为静态绑定。

面试官: C++多态是怎么实现的?

求职者: C++的多态主要是通过虚函数实现的,它允许使用基类的指针或引用来调用派生类的函数。编译器使用虚函数表来实现多态,每个拥有虚函数的类都有一个虚函数表,每个对象都有一个指向虚函数表的指针。当我们通过基类的指针调用虚函数时,运行时会根据对象的实际类型来决定调用哪个函数,实现了运行时多态。

面试官: C++代码是如何转化为二进制文件的?

求职者: C++代码转化为二进制文件的过程包括预处理、编译、汇编和链接几个步骤。预处理器处理所有的预处理指令,如宏定义和文件包含。编译器将预处理后的代码转换为汇编语言。汇编器将汇编代码转换为机器码,生成目标文件。最后,链接器将一个或多个目标文件与库文件链接在一起,生成可执行的二进制文件。

面试官: DLL加载文件的顺序是怎样的?

求职者: DLL(动态链接库)文件的加载顺序通常是:首先查找进程内存中是否已加载;如果没有,按照系统目录、系统环境变量指定的路径、应用程序目录来查找DLL。在Windows系统中,还可以通过修改注册表或者使用manifest文件来改变DLL的加载顺序。

面试官: DLL调用的内存分区是怎样的?

求职者: DLL调用时,代码段通常是共享的,每个进程共享同一份代码,但拥有自己的数据段,例如全局变量和静态变量。这意味着DLL中的函数是所有调用者共享的,但是数据是各自独立的。

面试官: PE文件结构是什么样的?

求职者: PE(Portable Executable)文件格式是Windows下的可执行文件格式。PE文件结构主要包括DOS头、NT头(包含File Header和Optional Header)、Section Headers和Section Bodies。NT头部分包含了重要的信息,如入口点地址、各种表的地址(如导入表、导出表和资源表)。

面试官: 说说delete []

求职者: 在C++中,delete []运算符用于释放通过new[]运算符分配的数组内存。它不仅会释放内存,还会调用数组中每个对象的析构函数。如果使用delete而不是delete []来释放数组,可能会导致只调用第一个对象的析构函数,从而引发内存泄漏。

面试官: 内存泄露如何定位?

求职者: 定位内存泄露通常可以借助一些专门的工具,比如在Windows平台上可以使用Visual Studio自带的诊断工具或第三方工具如Valgrind(适用于Linux)、LeakSanitizer等。这些工具可以帮助追踪内存分配和释放,从而找到未被正确释放的内存。此外,代码审查也是一个有效的手段,特别是关注动态内存分配和释放的逻辑。

面试官: 基类、派生类、成员对象构造函数调用顺序?

求职者: 在C++中,构造函数的调用顺序首先是基类的构造函数,然后是成员对象的构造函数,最后是派生类的构造函数。析构函数的调用顺序与此相反,即先调用派生类的析构函数,然后是成员对象的析构函数,最后是基类的析构函数。这种顺序确保了对象在构造和析构过程中的正确性。

面试官: unordered_map和map的区别?

求职者: unordered_map是基于哈希表实现的,它提供了平均时间复杂度为O(1)的查找、插入和删除操作,但是元素是无序的。而map是基于红黑树实现的,它提供了O(log n)的查找、插入和删除操作,元素按照键值自动排序。选择哪个主要取决于对元素顺序的需求和操作的性能考虑。

面试官: 哈希冲突,如何解决?

求职者: 解决哈希冲突的常见策略有开放寻址法、链地址法等。开放寻址法通过探测一个空闲位置来解决冲突,如线性探测、二次探测和双重散列。链地址法将具有相同哈希值的所有元素存储在同一个链表中。此外,还可以通过使用更好的哈希函数减少冲突的可能性。

面试官: HTTPS密钥协商过程?

求职者: HTTPS中的密钥协商过程是基于TLS/SSL协议。首先,客户端发送支持的加密方法列表给服务器。服务器选择一个加密方法,并发送其证书(包含公钥)给客户端。客户端验证证书的有效性,然后生成一个预主密钥,并使用服务器的公钥加密发送给服务器。服务器使用私钥解密得到预主密钥。之后,双方使用预主密钥生成会话密钥,用于后续通信的加密。

面试官: 非对称加密、对称加密?

求职者: 对称加密使用相同的密钥进行数据的加密和解密,加密和解密速度快,适用于大量数据的加密,如AES。非对称加密使用一对密钥,一个公钥用于加密,一个私钥用于解密,如RSA。非对称加密解决了密钥分发的问题,常用于密钥交换和数字签名,但加解密效率低于对称加密。

面试官: 函数调用压栈顺序?

求职者: 在大多数的C++实现中,当函数被调用时,参数按照从右到左的顺序压入栈中,然后是返回地址和旧的基指针。这样保证了在函数体内可以正确通过偏移量访问到每个参数。不过,具体的调用约定可能因编译器和平台而异。

面试官: C++主函数运行前的操作?

求职者: 在C++程序的主函数main运行之前,编译器会安排一些初始化操作,包括全局对象和静态对象的构造,初始化C++运行库环境,设置堆和栈等。对于全局和静态对象,它们的构造函数会在main函数之前调用,析构函数则在main函数执行完毕后调用。

面试官: 谈谈野指针和悬空指针。

求职者: 野指针是指未被初始化的指针,其值是不确定的,可能指向任何内存地址。使用野指针可能导致不可预料的行为,甚至程序崩溃。悬空指针,或称为悬挂指针,是指指向已经释放的内存的指针。内存释放后,指针并没有清空或指向NULL,如果再次使用这样的指针,可能会破坏程序的内存安全。

面试官: 如果发生内存泄露,你会如何定位问题?

求职者: 定位内存泄露可以使用一些专业的内存分析工具,比如在Windows上的Visual Studio内置的诊断工具、Linux上的Valgrind或者使用内存分析库如Google的Sanitizers。这些工具可以帮助开发者监测程序运行时的内存分配和释放,从而找到没有正确释放内存的位置。除此之外,代码审查和遵循良好的内存管理实践也是防止内存泄露的重要手段。

面试官: 描述一下DLL加载文件的顺序。

求职者: DLL文件在Windows系统中的加载顺序大致如下:首先,会在程序的内存空间中查找是否已经加载了目标DLL;如果没有,会查找系统目录如System32;接着是环境变量指定的路径;最后是应用程序的目录。如果在这些位置都未找到DLL,加载会失败。此外,可以通过修改注册表或使用清单文件来更改默认的搜索顺序。

面试官: DLL调用时占用的内存分区是什么?

求职者: DLL调用时,其代码段通常是共享的,被加载到调用进程的地址空间中的一个特定区域,所有使用该DLL的进程都可以使用这些共享代码。每个进程都有自己的数据段,用于存储全局变量和静态变量的副本。这样,虽然代码是共享的,但数据是每个进程独立的。

面试官: PE文件的结构包括哪些部分?

求职者: 一个PE文件包括DOS头部、NT头部、节表和各个节区。DOS头部主要是为了兼容旧DOS系统。NT头部包含了File Header和Optional Header,提供了关于可执行文件的重要信息,如入口点地址、所需版本和段对齐等。节表包含了对应各个节的信息,如.text、.data、.rdata等,并描述了它们在内存和磁盘上的位置和大小。

面试官: delete []的用法是什么?

求职者: 在C++中,delete []用于释放通过new[]操作符分配的数组内存。它不仅负责释放内存,还会依次调用数组中每个对象的析构函数。如果使用单个delete来释放由new[]分配的内存,将会导致未调用除第一个元素之外的其他元素的析构函数,可能造成内存泄露。

面试官: 基类、派生类、成员对象的构造函数调用顺序是怎样的?

求职者: 在C++中,对象构造的顺序首先是基类构造函数的调用,然后是成员对象的构造函数调用,最后是派生类构造函数的调用。相应的,析构的顺序是相反的,即先调用派生类的析构函数,然后是成员对象的析构函数,最后是基类的析构函数。这种顺序确保了对象在其生命周期内的正确构建和销毁。

面试官: 解释一下unordered_map和map。

求职者: unordered_map是基于哈希表实现的关联容器,它提供了平均常数时间复杂度的元素访问。unordered_map内部元素是无序的。而map是基于红黑树实现的,它提供了对元素的有序序列,并且访问的时间复杂度是对数时间。map适合有序数据的操作,而unordered_map适合快速访问的场景。

面试官: HTTP/2和HTTP/3的主要区别是什么?

求职者: HTTP/2引入了诸如头部压缩、单一连接多路复用等特性,显著提高了Web性能。HTTP/3进一步优化,基于QUIC协议运行,它使用UDP而非TCP,减少了连接建立和握手的延迟,提供了更好的错误恢复和拥塞控制机制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/678066.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【工具】windows下VMware17解锁mac安装选项(使用unlocker427)

目录 0.简介 1.环境 2.安装前后对比 3.详细安装过程 3.1 下载unlocker427 1&#xff09;下载地址 2&#xff09;下载unlocker427.zip 3&#xff09;解压之后是这样的 4&#xff09;复制iso中的两个文件到你本地的VMware的安装目录下 5&#xff09;复制windows下的所有…

【笔记】从零开始做一个精灵龙女-装备阶段

这里只记录相对重要的步骤和一些思路 但是头发那块很详细哦~ &#xff08;标的小数字不用在意&#xff0c;那个是我网课的时长记录&#xff09; 耳环 1.创建一个圆环&#xff0c;调整参数 做好后再复制一个小的 肩甲 2.0-2.4 1.创建圆柱体/球体也可 然后把底部的两个点删…

有哪些好用的ai工具,可以提升科研、学习、办公等效率?

最近&#xff0c;Sora的诞生为AI再添了一把火。 据介绍&#xff0c;这款“文生视频”的Sora可以直接输出长达60秒的视频&#xff0c;并且包含高度细致的背景、复杂的多角度镜头&#xff0c;以及富有情感的多个角色。 不仅能准确呈现细节&#xff0c;还能理解物体在物理世界中…

Accelerate笔记:本地SGD

本地 SGD 是一种分布式训练技术&#xff0c;其中梯度不是每一步都同步。每个进程都会更新自己版本的模型权重&#xff0c;在给定的步数后&#xff0c;通过跨所有进程平均这些权重来同步它们。 在底层&#xff0c;本地 SGD 代码禁用了自动梯度同步&#xff08;但累积仍然如预期工…

什么是最好的手机数据恢复软件?6 款手机数据恢复软件 [2024 年更新]

什么是最好的手机数据恢复软件&#xff1f;在这篇文章中&#xff0c;您将了解 6 款最好的免费手机数据恢复软件&#xff0c;并学习如何恢复数据的完整指南。 最好的手机数据恢复软件是什么&#xff1f; 手机数据恢复软件是恢复智能手机中丢失或删除的文件、消息、照片和其他宝…

Win10文件系统错误(-2147219196)

问题出现的原因&#xff1a; C盘快挤满了&#xff0c;导致电脑很卡&#xff0c;于是删掉了C盘用户下的一些文件C:\Users\DIY-PC&#xff0c;省了五六十G的内存&#xff0c;结果发现把一些系统文件也删掉了&#xff0c;导致图片预览报错 问题现象&#xff1a; &#xff08;自…

6月软考新通知:24下集成大概率是中级蕞简单的一门

2024下半年软考6月新通知&#xff1a; 一、24下软考考试时间安排&#xff1a; 24下半年软考报名时间&#xff1a;8月19日-9月15日 24下半年软考考试时间&#xff1a;11月9-12日 24下半年软考成绩查询&#xff1a;12月中&#xff08;预计&#xff09; 二、考情分析 24上软考…

免费,C++蓝桥杯等级考试真题--第7级(含答案和解析)

C蓝桥杯等级考试真题--第7级 答案&#xff1a;D 解析&#xff1a;步骤如下&#xff1a; 首先&#xff0c;--a 操作会使 a 的值减1&#xff0c;因此 a 变为 3。判断 a > b 即 3 > 3&#xff0c;此时表达式为假&#xff0c;因为 --a 后 a 并不大于 b。因此&#xff0c;程…

气压、湿度、震动开关、声音、红外火焰传感器 | 配合Arduino使用案例

BMP180 气压传感器 BMP180 是一种用于测量气压的科学仪器。可以获取到温度、气压、海拔。 先在 arduino ide 中安装依赖 /****** Arduino 接线 ***** Arduino 传感器* VCC 5v* GND GND* A4 SDA * A5 SCL ***********************/#include &l…

【Springcloud微服务】MybatisPlus下篇

&#x1f525; 本文由 程序喵正在路上 原创&#xff0c;CSDN首发&#xff01; &#x1f496; 系列专栏&#xff1a;Springcloud微服务 &#x1f320; 首发时间&#xff1a;2024年6月4日 &#x1f98b; 欢迎关注&#x1f5b1;点赞&#x1f44d;收藏&#x1f31f;留言&#x1f43…

Beyond Compare 4 代码对比重新激活使用30天

1.同时按住‘’Win”“R”键&#xff0c;打开运行窗口。 2.在文本框中输入“regedit”&#xff0c;然后点击“确定”。 3.打开注册表&#xff0c;删除相关注册信息 打开注册表后&#xff0c;依次点击左侧列的“HKEY_CURRENT_USER”-“SOFTWARE”-“Scooter Software”-“Beyo…

[预告] 现代C++之全面解读Mutex与RAII Lock

目标 在我们编写并发编程项目的时候&#xff0c;mutex是必须要掌握的点&#xff0c;深入mutex的底层原理与实现能够帮助我们更好的理解与使用mutex。例如&#xff1a;在编写代码时&#xff0c;我们会遇到如下几个场景&#xff1a; 如何避免死锁如何自动释放锁如何设置超时控制多…

KT142C语音芯片ic批量生产说明不需要usb拷贝音频

一、批量生产的简介 内置空间虚拟成U盘的批量生产说明&#xff0c;其实就是将音频文件配置文件打包成一个bin文件就可以了&#xff0c;当然借助于电脑端的exe工具。“FAT镜像文件生成工具_1.0.9.exe” 最后&#xff0c;将生成的文件&#xff0c;重命名为“userfat-日期-特点.b…

Digital Assets

目录 .HDA文件 Expanded directories .HDA文件 Houdini将数字资产存储于.hda文件内&#xff1b; .HDA文件格式是一种二进制存档格式&#xff08;binary archive format&#xff09;&#xff0c;存储一个或多个资产的数据层级结构&#xff0c;包括资产节点的类型定义&#xf…

配置本地 apt 源

挂载iso镜像文件 注意&#xff1a;文章中的挂载方法是临时挂载&#xff0c;重启服务器失效 我是使用iBMC的虚拟控制台将我的iso文件以设备的形式挂载到服务器上&#xff0c;我的iso文件是设备&#xff1a;/dev/sr0 也可以直接将iso文件上传到服务器某个目录。 将 /dev/sr0 进…

手把手制作Vue3+Flask全栈项目 全栈开发之路实战篇 问卷网站(二)管理员后台

全栈开发一条龙——前端篇 第一篇&#xff1a;框架确定、ide设置与项目创建 第二篇&#xff1a;介绍项目文件意义、组件结构与导入以及setup的引入。 第三篇&#xff1a;setup语法&#xff0c;设置响应式数据。 第四篇&#xff1a;数据绑定、计算属性和watch监视 第五篇 : 组件…

AI写作:AI助力内容创作,让你的工作效率翻倍

工欲善其事&#xff0c;必先利其器。 随着AI技术与各个行业或细分场景的深度融合&#xff0c;日常工作可使用的AI工具呈现出井喷式发展的趋势&#xff0c;AI工具的类别也从最初的AI文本生成、AI绘画工具&#xff0c;逐渐扩展到AI思维导图工具、AI流程图工具、AI生成PPT工具、AI…

海外仓出库系统:智能处理订单,增加海外仓货物流转率的关键所在

对海外仓来说&#xff0c;怎么才能提升效益&#xff1f;这应该是很多海外仓企业都在关心的问题。想提升海外仓的收益主要是三个大方向&#xff1a;开源、节流、提效。 所谓的开源&#xff0c;就是扩展业务类型和业务模式&#xff0c;在拓展新客户上下功夫。这是能让海外仓进来…

【C++软件调试技术】什么是pdb文件?如何使用pdb文件?哪些工具需要使用pdb文件?

目录 1、什么是pdb文件&#xff1f; 2、如何配置生成pdb文件&#xff1f; 3、pdb文件的时间戳和文件名称 3.1、pdb文件的时间戳 3.2、pdb文件的文件名称 4、有pdb文件才能在Visual Studio中调试代码 5、在Windbg中使用pdb文件 5.1、使用lm命令查看二进制文件的时间戳&a…

第九篇 有限状态机

实验九 有限状态机 9.1 实验目的 学习有限状态机的组成与类型&#xff1b; 掌握有限状态机的设计方式&#xff1b; 学习有限状态机的编码方式&#xff1b; 掌握使用有限状态机进行设计的方法。 9.2 原理介绍 9.2.1 有限状态机的基本概念 有限状态机&#xff08;Finite …