学计算机的做网站的叫什么工作,网页设计师培训机构费用价格多少,wordpress部分密码,苏州市住房和城乡建设部网站大家好#xff0c;我是白露啊。
最近看到一个爽文帖#xff0c;标题就是——“小公司要求真高”。
事情是这样的#xff0c;一家的小公司在拿到简历之后#xff0c;HR直接对楼主说#xff1a;“你不合适#xff0c;简历不行。” 言外之意就是嫌弃简历单薄#xff0c;看…大家好我是白露啊。
最近看到一个爽文帖标题就是——“小公司要求真高”。
事情是这样的一家的小公司在拿到简历之后HR直接对楼主说“你不合适简历不行。” 言外之意就是嫌弃简历单薄看不上楼主。
万万没想到。。。 然后还扎心的来了一句“你们班或者年级有没有合适的同学可以推荐”
WTF
你看不上我我又不是你公司的人还得帮你推荐你这是打什么算盘啊
怎料楼主立马以迅雷不及掩耳之势甩了一个腾讯录取的图片。腾讯PCG大家都知道那绝对是个重量级部门。
瞬间打脸秒变爽文网友纷纷惊呼。 还有之前面过这个家公司的网友也开始吐槽 看来天下“苦秦”久矣。。。 各位小伙伴们求职之路虽然充满荆棘和挑战但请保持自信、积极努力学习。都能像楼主一样最终迎来“大鹏展翅”的那一刻。期待看到你们更多的精彩故事和真实体验欢迎在评论区分享。好了今天我们来看一篇外企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是链表中的节点数量因为我们需要遍历整个链表来两两翻转节点。