当前位置: 首页 > news >正文

小公司要求真高

大家好,我是白露啊。

最近看到一个爽文帖,标题就是——“小公司要求真高”。

事情是这样的,一家的小公司在拿到简历之后,HR直接对楼主说:“你不合适,简历不行。” 言外之意就是嫌弃简历单薄,看不上楼主。

万万没想到。。。

img

然后还扎心的来了一句:“你们班或者年级,有没有合适的同学可以推荐?”

WTF?

你看不上我,我又不是你公司的人,还得帮你推荐?你这是打什么算盘🧮啊!

怎料楼主立马以迅雷不及掩耳之势,甩了一个腾讯录取的图片。腾讯PCG,大家都知道那绝对是个重量级部门。

瞬间打脸,秒变爽文,网友纷纷惊呼。

img

img

还有之前面过这个家公司的网友也开始吐槽:

img

img

看来,天下“苦秦”久矣。。。

各位小伙伴们,求职之路虽然充满荆棘和挑战,但请保持自信、积极,努力学习。都能像楼主一样,最终迎来“大鹏展翅”的那一刻。期待看到你们更多的精彩故事和真实体验,欢迎在评论区分享。好了,今天我们来看一篇外企Shoppe 的面试,如果不想看,可以直接跳转到文末,有惊喜哦~

开始面试

面试官: 首先请做一下自我介绍。

求职者: 您好!非常感谢有这个机会参加Shopee的面试。我是一名软件工程专业的毕业生,对后端开发非常感兴趣。我有扎实的计算机科学基础,熟悉Java和Python等编程语言,也对分布式系统和网络通信有一定的了解。在我的实习经历中,我参与了多个后端项目,包括API开发和数据库优化等。

面试官: 谈谈进程和线程的区别?为什么线程切换消耗资源小?它们是如何来使用多核CPU的?

求职者: 进程是操作系统资源分配的基本单位,每个进程都有自己独立的地址空间和资源。线程是进程中的执行单元,是CPU调度的基本单位,一个进程可以包含多个线程,线程之间共享进程的资源,如内存和文件描述符。线程切换消耗资源小是因为线程间共享部分状态,切换时不需要重新加载地址空间。在多核CPU上,操作系统可以将不同的进程或线程分配到不同的核心上并行运行,以此提高执行效率。

面试官: 虚拟内存是什么?

求职者: 虚拟内存是计算机系统内存管理的一种技术。它允许程序在运行时拥有一致的地址空间,这个地址空间通常会比物理内存大。它利用磁盘空间来扩展可用内存,通过内存分页和页表来管理。这样,即使物理内存被占用完,程序仍然可以继续运行。

面试官: 描述一下手机下单流程的网络请求过程?为什么是三次握手不能是两次?世界上这么多机器是怎么知道我们的目标服务器在哪里?

求职者: 当手机发起下单请求时,会经过应用层、传输层、网络层、链路层的多个步骤。三次握手是TCP/IP协议确保稳定连接的一种机制,它通过三步验证双方都准备好进行数据传输。两次握手不能确认双方的接收与发送能力都是正常的。网络请求通过DNS解析域名找到目标服务器的IP地址,然后通过路由器根据IP地址来确定数据包的转发路径。不是通过MAC地址匹配,MAC地址通常只在同一局域网内有效。

面试官: 连接断开过程是怎样的?没有第四步会怎么样?TCP和UDP的区别?

求职者: TCP连接的断开是一个四次挥手的过程,确保双方都没有数据再发送。如果没有第四步,就可能导致一方仍然等待关闭,从而造成资源的浪费。TCP是面向连接的协议,提供可靠的数据传输,而UDP是无连接的,提供快速但不保证可靠性的数据传输。

面试官: HashMap的实现?红黑树的好处?

求职者: HashMap是基于哈希表的数据结构,通过计算键的哈希码来存储和检索键值对。在Java中,当HashMap中的某个桶里的元素过多时,会将链表转换为红黑树,以提高搜索效率。红黑树是一种自平衡的二叉搜索树,它能在O(log n)的时间复杂度内完成查找、插入和删除操作,即使在最坏情况下也能保持较好的性能。

面试官: 来,写道题吧:两两一组翻转链表

求职者: 要两两翻转链表,我们可以使用迭代的方法。我们遍历链表,每次取出两个节点,并在局部进行翻转,然后将翻转后的子链表重新连接到主链表上。我们还需要一个指针来跟踪上一对翻转后的节点,以确保链表的完整性。

面试官: 现在,请你尝试写出两两一组翻转链表的代码,并分析时间复杂度。

求职者: 好的。这是两两翻转链表的一个可能的Java实现:

class Solution {public ListNode swapPairs(ListNode head) {ListNode dummy = new ListNode(-1);dummy.next = head;ListNode prevNode = dummy;while (head != null && head.next != null) {ListNode firstNode = head;ListNode secondNode = head.next;prevNode.next = secondNode;firstNode.next = secondNode.next;secondNode.next = firstNode;prevNode = firstNode;head = firstNode.next; // jump to the next pair}return dummy.next;}
}

这段代码的时间复杂度是O(n),其中n是链表中的节点数量,因为我们需要遍历整个链表来两两翻转节点。

相关文章:

  • 247 H指数
  • DolphinScheduler 3.x 执行insert into SQL任务显示成功,但查不到数据
  • 网络仿真方法综述
  • 优质短视频素材下载网站有哪些?分享优质短视频素材下载资源
  • Git:从配置到合并冲突
  • 无人机遥感在农林信息提取中的实现方法与GIS融合应用
  • 基于实验的电动汽车动力电池SOC
  • 双非本科一年20w,已是人中龙凤了
  • 【问题解决】adb remount 失败或刷机无法连接设备(KaiOS)
  • 苹果WWDC 2024 带来的 AI 风暴:从生产力工具到个人助理,AI 将如何融入我们的生活?
  • Web前端开发个人技能全面剖析:四维度深度理解,五能力实战展现,六要素构建优势,七步骤持续精进
  • 云计算服务
  • MySQL迁移达梦数据库避坑
  • [AI StoryDiffusion] 创造神奇故事,AI漫画大乱斗!
  • 钉钉魔点指纹考勤机多少钱一台,指纹门禁考勤一体机价格
  • [NodeJS] 关于Buffer
  • 【译】理解JavaScript:new 关键字
  • CAP 一致性协议及应用解析
  • codis proxy处理流程
  • input的行数自动增减
  • Iterator 和 for...of 循环
  • Java小白进阶笔记(3)-初级面向对象
  • java小心机(3)| 浅析finalize()
  • LeetCode算法系列_0891_子序列宽度之和
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Python socket服务器端、客户端传送信息
  • Ruby 2.x 源代码分析:扩展 概述
  • spring-boot List转Page
  • SwizzleMethod 黑魔法
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 分享一份非常强势的Android面试题
  • 搞机器学习要哪些技能
  • 关于 Cirru Editor 存储格式
  • 类orAPI - 收藏集 - 掘金
  • 如何用vue打造一个移动端音乐播放器
  • 实现简单的正则表达式引擎
  •  一套莫尔斯电报听写、翻译系统
  • 【干货分享】dos命令大全
  • 阿里云服务器如何修改远程端口?
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ######## golang各章节终篇索引 ########
  • #define
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (生成器)yield与(迭代器)generator
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (五)Python 垃圾回收机制
  • (学习日记)2024.01.09
  • (一)appium-desktop定位元素原理
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)fock函数详解
  • (转)Sublime Text3配置Lua运行环境