大家好,我是阿秀。
互联网校招 offer 正式放出一般都是在每年的国庆节后,往届都是如此,今年貌似也是这个时间点,国庆节过后第一天就有25届的同学收到京东发放的正式 offer 了。
打开牛客网一看,也有很多同学收到京东发出的 offer 了,更是占据了全站热榜的前两名。
有同学戏谑说"以后不能叫东子了,得叫东哥了"、"感谢东哥开奖开到自己,回去一定开个京东会员支持一下京东"、"终于从泡了许久的池子里出来了,还好没被淹死"。
有一说一,京东今年绝对算得上是校招大户,足足招聘 18000 +人,可能是所有大厂里招收人数最多的一个了,而且今年校招生全面涨薪20%,以前就分享过这个信息:全面涨薪20%!这谁不想当东哥兄弟啊。。。,所以国庆后京东的offer发放应该也是刚刚开始,后续会有更多京东offer发出。
当然了,也不乏很多部门的 HC 还没用完,如果有想跟东哥做兄弟的同学可以多准备准备京东面试相关的内容。
下面分享一份京东的一面面经,整体面试不难,基本以基础知识为主,算法考察也是常见题目。
1、自我介绍下吧
balabalbala
2、看你的简历上写你是Python技术栈的,那你说一下Python有什么优点和缺点?
优点
解释型,语法简单易懂,可读性强 有很多库可以用,可以让我们站在巨人的肩膀上简单的实现想要的功能 可扩展,和其他编程语言或其他软件有可连接的接口 免费开源、可移植 自动内存管理,让程序员可以专注于代码的实现
缺点:可解释特征使其运行速度变慢;动态语言的特点可能会增加运行时错误。
3、为什么说Python是解释性语言?
因为它的代码是直接由解释器在运行时逐行读取和执行的,而不是预先编译成机器码。它也支持交互式编程,即可以一行一行地执行代码并立即看到结果。
4、讲一下程序的内存分区/内存模型?
内存分区,分别是堆、栈、自由存储区、全局/静态存储区、常量存储区和代码区。如下图所示
栈:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限
堆:就是那些由 new
分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new
就要对应一个 delete
。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收
自由存储区:如果说堆是操作系统维护的一块内存,那么自由存储区就是C++中通过new和delete动态分配和释放对象的抽象概念。需要注意的是,自由存储区和堆比较像,但不等价。
全局/静态存储区:全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量和静态变量又分为初始化的和未初始化的,在C++里面没有这个区分了,它们共同占用同一块内存区,在该区定义的变量若没有初始化,则会被自动初始化,例如int型变量自动初始为0
常量存储区:这是一块比较特殊的存储区,这里面存放的是常量,不允许修改
代码区:存放函数体的二进制代码
5、进程和线程有什么区别?
1、线程比进程启动速度快,轻量级
2、进程的系统开销相较于线程而言更大
3、线程使用有一定难度,需要处理数据一致性问题;进程则无需考虑这个问题
4、同一线程共享的有堆、全局变量、静态变量、指针,引用、文件等,而独自占有栈
6、虚拟地址是怎么转化到物理地址?这个过程你了解多少?
虚拟地址到物理地址的转化是通过页表(Page Table)来实现的。
页表是一种数据结构,用于将虚拟地址映射到物理地址,在分段和分页机制下,CPU会将虚拟地址转换为线性地址,然后再将线性地址转换为物理地址。
分段机制简单的来说是将进程的代码、数据、栈分在不同的虚拟地址段上,从而避免了不同段之间的内存访问冲突。
分页机制则是为了解决分段机制中存在的问题而提出的。它将进程的代码、数据、栈等分成多个大小相等的页,每个页都有一个唯一的页号,这样就可以将整个进程映射到一个连续的物理地址空间上了。
7、TCP是半双工还是全双工?
TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据。
8、UDP的特点有哪些?
UDP是无连接的; UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态(这里面有许多参数); UDP是面向报文的; UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等); UDP支持一对一、一对多、多对一和多对多的交互通信; UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。
9、OSI 七层模型每层都是干什么的,大致说说就行
物理层:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
数据链路层:接收来自物理层的位流形式的数据,并封装成帧,传送到上一层
网络层:将网络地址翻译成对应的物理地址,并通过路由选择算法为分组通过通信子网选择最适当的路径。
传输层:在源端与目的端之间提供可靠的透明数据传输
会话层:负责在网络中的两节点之间建立、维持和终止通信
表示层:处理用户信息的表示问题,数据的编码,压缩和解压缩,数据的加密和解密
应用层:为用户的应用进程提供网络通信服务
10、SQL语法中的外连接分为左外连接和右外连接,它们的区别是什么?
左外连接: 左边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。
右外连接:右边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。
11、那内连接呢?
内连接是只有两个元素表相匹配的才能在结果集中显示的
12、看你还参加了大学计算机社团,有什么值得聊的事情吗?
说了大三时给大一小学弟学妹们培训 Word 的事情,包括写教案、用例等。
13、可以的,看你还进了实验室?那你这个项目是实验室的项目是吗?
是的,大一下就进了实验室,这是班导师接的项目,让我们帮他做的一个智慧交通的项目。
14、说下你这个项目的难点和收获
balabala
15、都面到这里了,写两道算法题吧
手写快排、二叉树前序遍历,都是很简单的题,直接秒了。
我开始写前都低头思考了 10 秒左右,想一下大概的思路,争取一次性写完,也让面试官看到自己有个思考的过程。
面试当天下午就被HR通知一面已过,二面安排在了三天后。
你好,我是阿秀,普通学校毕业,校招时拿到字节跳动SP、百度、华为、农业银行等6个互联网中大厂offer,这是我在校期间的编程学习之路,详细记录了我是如何自学技术以应对第二年的校招秋招的。
毕业后我先于抖音部门担任全栈开发工程师,目前在上海某外企带领团队继续从事全栈开发,负责的项目顺利盈利 300w+。在研三那年就组建了一个阿秀的学习圈,一直持续分享校招/社招跳槽找工作的经验,都是自己一路走过来的经验,目前已经累计服务超过 4000 +人,欢迎点此了解一二。