京东2017校招技术类客观题(三),这套题如果你最近在准备大厂校招,拿过来做一遍还是很有价值的。虽然年份早了点,但技术类笔试考的东西从来不是什么潮流玩意儿,数据结构、操作系统、网络、数据库这些基础,十年了一直是这些,变化的只是出题角度和包装方式。这套题我个人认为是京东历年校招里出得比较规矩的一套,不偏不怪,覆盖的知识点都是日常开发里真正用得上的,适合用来查漏补缺,也适合在刷题刷到麻木的时候拿来检验一下自己的基础是否扎实。
我自己当时做这套题的时候,最大的感受是:基础不牢的人会做得很难受,基础扎实的人会发现很多题甚至不用算,看一眼选项就能排除掉两三个。这篇文章就把这套客观题里最值得讲的考点、出题思路和答题技巧完整拆一遍,每个章节都会配上我实际做题时的思考过程,希望能帮你把这套题的价值榨干。
1. 题型结构与出题逻辑拆解
1.1 客观题在技术校招中的定位
京东这套2017校招技术类客观题(三),从题型设置上看基本都是单选和多选,覆盖Java、C++、数据结构、操作系统、计算机网络、数据库这些校招笔试的常客。这类客观题的技术含量不低,但它不像编程题那样考察代码实现能力,而是考察应聘者对基础知识的理解深度和记忆准确度。
面试官看客观题的成绩,主要想看两件事:一是你有没有系统学过计算机核心课程,二是你是背题应付还是真理解了。很多同学觉得客观题简单,靠刷题就能过,这个概念不太对。客观题的坑往往藏在那些“看起来对但实际错了”的选项里,光靠背,看到稍微变形的题目就容易翻车。
拿这套题来说,我粗略统计了一下,大概70%的题目属于基础概念题,20%是简单的计算和逻辑推导题,剩下10%属于边缘知识点或容易混淆的细节题。这个比例现在很多大厂的笔试也大致类似,所以这套题的参考价值并没有因为年代久远而打折扣。
1.2 京东出题的风格特点
京东的技术客观题有一个很明显的风格,就是题目很重视实际应用场景,不太喜欢纯粹考定义。比如考数据结构,它很少直接问“红黑树的时间复杂度是多少”,而是会给你一个操作场景,让你判断用什么数据结构最合适。考操作系统,它会给你进程和线程的使用场景,让你判断哪个描述是正确的。考网络,它会结合一个实际的请求过程,考察你对TCP/UDP、HTTP这些协议的理解。
这样的出题方式对死记硬背的选手是致命的,因为题目里给出的场景你如果不理解,很难通过“记住答案”来蒙对。但对真正理解原理的人,这种题反而是送分题,因为你可以直接推出来结果,不需要靠记忆。
再有一个特点是,京东的题很喜欢在选项里设置“等价变形”。就是说,正确答案的表达方式可能和你平时熟悉的形式不一样,而错误选项则往往是你最熟悉但不够严谨的说法。这一手专门对付那些“看着眼熟就选”的考生。所以做这套题的时候,光“见过”没用,你得真知道为什么对、为什么错。
2. 核心考点分布与高频知识详解
2.1 数据结构与算法考点
数据结构的部分,这套题主要涉及了数组、链表、栈、队列、二叉树、图、排序算法、查找算法这些东西。其中考察频率最高的几个点,我逐个分析一下。
数组和链表的对比是必考题。这里有个高频出题角度:在头部插入元素,数组的时间复杂度是O(n),因为需要把后续所有元素往后挪;链表是O(1),只需要改指针。但如果是访问第k个元素,数组是O(1)直接下标寻址,链表得从头遍历到第k个节点,O(n)。这个对比在选择题里经常以“以下哪个说法正确”的形式出现,几个选项分别描述不同的操作在不同数据结构上的复杂度,你能搞清楚每个操作背后的实现机制,这种题就简单了。
栈和队列的考察通常和递归、表达式求值、树的遍历这些结合起来。比如用栈实现队列、用队列实现栈这类题,在笔试里出现频率极高。做这种题的核心思路就一句话:栈的特点是后进先出,队列的特点是先进先出,关键是在两个栈或两个队列之间怎么倒腾数据顺序。这里有一个经典错误——很多同学觉得两个栈实现队列就是把数据压入栈1,再弹出压入栈2,然后从栈2弹出。思路是对的,但要记住只有在栈2为空的时候才能从栈1批量倒数据,否则顺序会乱。这个细节在选择题里经常被当作“陷阱”放在选项里,需要特别注意。
二叉树这块,京考的题目一般是遍历序列的推导。比如给你前序遍历和中序遍历,让你找后序遍历。做法不复杂,前序遍历的第一个节点是根,然后去中序序列里找到这个根,根左边是左子树,右边是右子树,递归地做下去就行了。这里我想多说一句,很多人觉得这种题没用,工作中谁会去手工推导遍历序列啊?但笔试考这个不是为了让你手动遍历,而是在考察你对二叉树结构的理解,你掌握了这种“从前序和中序还原二叉树”的思想,以后遇到相关的算法题(比如构建二叉树、序列化与反序列化)才有基础。
排序算法这块,重点考察时间复杂度和稳定性。我直接列一个表,这张表到今天仍然适用:
| 排序算法 | 平均时间复杂度 | 最坏时间复杂度 | 空间复杂度 | 稳定性 |
|---|---|---|---|---|
| 冒泡排序 | O(n²) | O(n²) | O(1) | 稳定 |
| 选择排序 | O(n²) | O(n²) | O(1) | 不稳定 |
| 插入排序 | O(n²) | O(n²) | O(1) | 稳定 |
| 希尔排序 | O(n^1.3) | O(n²) | O(1) | 不稳定 |
| 归并排序 | O(n log n) | O(n log n) | O(n) | 稳定 |
| 快速排序 | O(n log n) | O(n²) | O(log n) | 不稳定 |
| 堆排序 | O(n log n) | O(n log n) | O(1) | 不稳定 |
这张表里最容易被出题的两个点,一个是堆排序为什么空间复杂度是O(1),因为它是在原数组上通过调整堆来实现排序的;另一个是快速排序最坏情况什么时候出现,答案是当每次选到的基准元素都是最大或最小的那个时,会导致每次只划分出一个元素,退化到O(n²)。这两道题在这套京东笔试题里都出现了,如果你能答上来,说明你这块学得比较扎实。
2.2 操作系统考点
操作系统的题目占比不小,主要集中在进程与线程、死锁、内存管理、进程调度这几个模块。
进程和线程的经典考点,包括它们的区别和联系、各自的资源消耗、通信方式。这里有个高频陷阱选项:“线程是拥有资源的基本单位”,这句话是错的,正确说法是“进程是拥有资源的基本单位,线程是调度的基本单位”。还有“同一个进程的多个线程之间可以共享进程的代码段、数据段和堆,但每个线程有自己的栈”,这个理解在很多选择题里反复出现过。
死锁这块,四个必要条件(互斥、持有并等待、不可剥夺、循环等待)一定要背得滚瓜烂熟,并且能区分“预防”和“避免”的区别。预防是破坏四个必要条件之一,比如一次性分配所有资源、资源可剥夺等;避免则是使用银行家算法这类策略,在资源分配之前先判断是否会导致不安全状态。有一道题我记得特别清楚,问的是“以下哪种方式可以破坏循环等待条件”,答案是“将资源按编号排序,每个进程只能按递增顺序申请资源”。这个点其实就是在说资源有序分配法,你要是能把四个条件对应的具体破坏手段一一列出来,这类题就不会再丢分。
内存管理这块,分页和分段是核心考点。分页是系统管理的,对程序员透明,页面大小固定;分段是逻辑上的划分,段的大小可变,每个段对应一个逻辑信息单元。这两个概念经常被出成多选题,让你判断某个特性属于分页还是分段。记住一个核心区别就够用了:分页解决的是内存碎片问题,分段解决的是程序的逻辑结构问题。还有一个高频概念,就是虚拟内存和局部性原理,选择题通常考你“哪些技术利用了局部性原理”,答案是分页、分段、虚拟内存都用了,因为只有利用局部性原理,才可能让部分页面驻留内存而程序仍然正常运行。
进程调度算法也是高频出题点。FCFS(先来先服务)、SJF(短作业优先)、优先级调度、时间片轮转,每个算法的优缺点要能说出来。这里有个常见的考点:什么情况下SJF可能产生饥饿?答案是持续有短作业到达时,长作业永远得不到CPU。备选选项里往往会有一个“RR算法会产生饥饿”,这个是错的,因为时间片轮转保证了每个进程都能轮流获得CPU。
2.3 计算机网络考点
计算机网络在京东技术笔试中的分量很高,毕竟做平台和电商业务,对HTTP、TCP这些协议的理解是基本功。
TCP三次握手和四次挥手的过程是必考的,需要用画图理解的方式去记忆。三次握手分别是SYN、SYN+ACK、ACK,目的是确认双方的收发能力都正常。四次挥手是FIN、ACK、FIN、ACK,因为TCP是全双工通信,每个方向的连接必须单独关闭。有些题目考的是挥手时TIME_WAIT状态,问为什么主动关闭方要停留在TIME_WAIT状态。答案是两个:一是为了保证最后一个ACK能够到达对方,如果丢失还能重传;二是为了让旧连接的延迟报文段在网络中消失,避免影响新连接。
TCP和UDP的对比也是高频考点。记住一句话:TCP面向连接、可靠、按序、提供流量控制和拥塞控制;UDP无连接、不可靠、不保证按序、没有拥塞控制。京东的题特别喜欢考“哪些应用适合用UDP”,答案一般是实时视频、语音通话、DNS查询这些对时延敏感、允许少量丢包的业务。这里有个容易错的细节,很多同学以为QUIC是UDP的,这个理解不准确,QUIC基于UDP没错,但它自己在应用层实现了可靠传输,所以不适合和UDP一概而论,好在校招笔试很少考到QUIC这么深的点,但如果你在回答里提到了,要说得严谨。
HTTP这块,2017年的题目还主要集中在HTTP/1.1的特性上,比如持久连接、管道化机制这些。但现在你再去面试,HTTP/2、HTTP/3的考点已经越来越多了。有一点是通用的:HTTP协议的无状态性和Cookie/Session机制对状态的补充,这个点多次出现在京东的客观题和面试题里。无状态不好理解的话,可以把它想象成一个没有记忆的服务员,每次客人来点单他都要重新问一遍需求,而Cookie和Session就是挂在客人身上的小纸条和前台存的档案,这样就让服务员有了“记忆”。
TCP拥塞控制也是个高频考点,慢启动、拥塞避免、快重传、快恢复这四大部分要理清楚。选择题常见考法:慢启动阶段拥塞窗口的增长方式是什么?答案是每经过一个RTT,拥塞窗口翻倍,是指数增长。还有一个容易混淆的点是,什么时候从慢启动切换到拥塞避免?答案是当拥塞窗口达到慢启动阈值(ssthresh)的时候。别小看这些小细节,笔试就是靠这些筛人的。
2.4 数据库考点
数据库这边,主考SQL语法、索引原理、事务特性和隔离级别、范式设计这些内容。京东这种电商公司,对数据库的考察绝对不会少,毕竟核心业务就是商品、订单、用户这些数据的存储和操作。
索引原理是重中之重,尤其是B+树索引。出题官很喜欢问:为什么数据库索引用B+树而不是B树、红黑树或者哈希表?参考思路是:B+树的数据都存放在叶子节点,且叶子节点之间用指针连成一个链表,方便范围查询和排序;B+树的非叶子节点不存数据,只存索引键值,所以树更矮更宽,减少磁盘I/O次数。而哈希索引只能做等值匹配,做不了范围查询;红黑树太高,磁盘I/O次数多。这个知识点在选择题里经常以“描述错误的是”的形式出现,比如选项里说“B+树和B树的区别在于B+树非叶子节点也存储数据”,这就是错的。
事务的ACID特性也是必考。原子性(A)是指事务中的操作要么全部成功要么全部回滚;一致性(C)是事务执行前后数据都满足约束;隔离性(I)是多个事务并发执行互不干扰;持久性(D)是提交后数据永久保存。这里容易出多选题,让你挑出哪些是ACID的,选项中会塞一些编造的特性进来,比如“共享性”、“并行性”,这类纯干扰项,看清楚就行。
隔离级别和并发问题对应关系,是个经典考点。脏读对应的是“允许读取未提交数据”,不可重复读对应的是“读取过程中数据被其他事务修改”,幻读对应的是“查询结果集被其他事务插入或删除”。四个隔离级别的区别,一张表说清楚:
| 隔离级别 | 脏读 | 不可重复读 | 幻读 |
|---|---|---|---|
| Read Uncommitted | 可能 | 可能 | 可能 |
| Read Committed | 不可能 | 可能 | 可能 |
| Repeatable Read | 不可能 | 不可能 | 可能(InnoDB可避免) |
| Serializable | 不可能 | 不可能 | 不可能 |
京东有一道题考的是MySQL默认隔离级别,答案是Repeatable Read(可重复读),这和Oracle的默认级别Read Committed不一样。这个对比在校招笔试里很常见,因为考察了你对“理论”和“工程实现”的差异是不是有感知。MySQL在Repeatable Read级别下通过MVCC和间隙锁已经可以避免幻读,所以这个默认级别实际使用起来不会出现典型的幻读问题,但理论上按SQL标准,Repeatable Read仍允许幻读发生。懂这个细节,面试时能给你加分不少。
SQL语法这边,考察的核心是JOIN、GROUP BY、HAVING、聚合函数这些。有一个特别容易出错的点,WHERE和HAVING的区别:WHERE是在分组前对记录进行过滤,不能使用聚合函数;HAVING是在分组后对组进行过滤,可以使用聚合函数。题目通常是给出一个需求,让你判断哪个SQL语句能正确实现。这时候你把WHERE当成“先筛选再分组”,HAVING当成“分组后再筛选”,基本不会错。
3. 高频题目逐题解析与选项分析
3.1 典型数据结构题解析
先说一道印象深的题目,大致内容如下:有一个序列,需要频繁地在头部和尾部进行插入和删除操作,问最合适的数据结构是什么。选项给了数组、链表、栈、双端队列。
很多人一看“链表”就选,觉得链表插入删除都是O(1)。但仔细看题目说的是“头部和尾部”都要频繁操作,如果是单链表,尾部的插入删除还是得先遍历到尾节点,O(n)。而双端队列(Deque)两头操作都是O(1)。这道题的关键在于:链表确实是O(1)插入,但尾部操作需要额外的指针维护,如果不带头尾指针的实现版本,尾部操作实际上是O(n)。选项里如果出现“双向链表”那是可以选的,如果只说“链表”其实不严谨。这就是京东喜欢的出题方式,看起来考的是数据结构,实际上考的是你对数据结构实现细节的掌握程度。
再讲一道涉及二叉树遍历的题目。给定前序遍历序列ABDECF和中序遍历序列DBEAFC,求后序遍历序列。这个题按我之前说的方法先找根,前序第一个A是根,中序中A的左边是DBE(左子树),右边是FC(右子树)。然后前序中B是左子树的根,中序中B左边是D,右边是E,所以B的左孩子是D,右孩子是E。右子树同理,C是根,F是左孩子。最后画出树形结构,后序遍历就是DEBFCA。做这种题一个要点是:不要凭空想象,老老实实画树,画对了就不会错。很多细心的同学能直接通过排除法选出来,但前提是你对遍历定义足够熟悉。
还有一道关于哈希表处理冲突的题,用了链地址法,给定哈希函数和一组关键字,问某个哈希地址对应的链表长度。这种题算是送分题,只要算哈希值别算错就行。但我提醒一个细节:链地址法冲突时插入新节点是头插还是尾插,不同教材不一样,有的书是头插(新节点插在链表头部),有的是尾插。历年考题对这两种处理方式的答案不一样,所以审题时一定要看清楚题干的说法,不要带着固定思维做题。
3.2 典型操作系统题解析
有一道关于进程状态的题,问“一个处于阻塞状态的进程在某时刻被唤醒,进入什么状态”。正确答案是就绪状态,很多基础不牢的同学会选成运行状态。原理是这样的:进程被唤醒只代表它等待的事件已经发生,但CPU可能还在被其他进程使用,所以它不能立刻运行,只能进入就绪队列等待调度。这就好比你在食堂排队打饭,饭做好了(事件发生了),但前面的同学还没打完,你得等着(就绪状态),轮到你的时候才能打饭(运行状态)。
还有一道关于虚拟内存的题,问“缺页中断属于什么类型的异常”。答案是程序性异常(软中断),不是外部中断,也不是I/O中断。这里需要理解:缺页中断是由CPU执行指令时发现页表项不存在而触发的,所以是CPU内部主动产生的异常。在选择题里,这类题考察的是操作系统的中断分类体系,如果你复习过“异常”和“中断”的区别,很容易判断。
另外有一道关于线程资源共享的题,问“同一进程的多个线程哪些资源是共享的,哪些是独立的”。这道题比较容易出错,选项很混淆。我建议用一个简单的记忆框架:为了让线程能共享数据、协同工作,线程共享进程的地址空间(代码段、数据段、堆、打开的文件、信号量等),但为了能让线程独立执行,每个线程有独立的栈和寄存器上下文。为什么栈必须是独立的?因为每个线程的执行流不同,调用函数的栈帧和局部变量必须隔离,否则一个线程的函数调用会覆盖另一个线程的数据。
3.3 典型网络题解析
这套题里有一道关于TCP三次握手的题,问的是第二次握手时标志位和确认号的情况。正确答案是:SYN=1,ACK=1,确认号是客户端的初始序列号加1。这里容易混的点是:第二次握手是SYN和ACK同时置位的,它既要确认收到客户端的SYN,又要同步自己的序列号。有些同学只选了ACK,丢掉了SYN,这道题就错了。
还有一道题考的是,TCP连接释放过程中,主动关闭方最后进入的状态是什么。答案是TIME_WAIT,这个状态要持续2个MSL(最长报文段寿命)的时间。我之前去面试一个平台开发岗位时,面试官追问了一句:“为什么TIME_WAIT要等2MSL而不是1MSL?”这个问题的标准答案是:1个MSL用于保证最后一个ACK能到达对方,如果对方没收到会重发FIN;另一个MSL用于保证本次连接的所有报文段在网络中过期消失,防止污染后续的连接。客观题如果考到TIME_WAIT,大概率考的就是这个“原因”,死记硬背可不行,得理解TCP设计的逻辑。
还有一道关于DNS的题目,问DNS使用什么传输层协议。这道题的答案比较灵活:DNS查询通常使用UDP(端口53),区域传送使用TCP。选项里如果只说“UDP”不算全对,如果只说“TCP”也不对。京东这道题把两个场景都列出来了,选了TCP和UDP都有的选项才是正确的。这种题踩坑的人很多,因为大家普遍只记得“DNS用UDP”这一条,忘记了区域传送的场景。
3.4 典型数据库题解析
京考这套题里有一道关于SQL的题目:查询每个部门工资最高的员工信息。这种题在校招笔试里的出场率非常高,基本每个大厂都会考。最简单的写法是使用窗口函数:
SELECT 部门, 员工姓名, 工资 FROM ( SELECT 部门, 员工姓名, 工资, RANK() OVER (PARTITION BY 部门 ORDER BY 工资 DESC) AS rk FROM 员工表 ) t WHERE rk = 1;当然,2017年的时候窗口函数还没那么普及,正确答案往往是使用GROUP BY加MAX子查询的方式:
SELECT e.部门, e.员工姓名, e.工资 FROM 员工表 e JOIN ( SELECT 部门, MAX(工资) AS max_salary FROM 员工表 GROUP BY 部门 ) m ON e.部门 = m.部门 AND e.工资 = m.max_salary;这种题考的是你能不能写出正确的JOIN和GROUP BY逻辑。很多同学写出来的SQL能跑通但结果是错的,原因往往出在没有处理“部门中两个人的工资一样高”这种并列情况,上面两种写法都能把并列的情况查出来。
还有一道关于事务隔离级别的多选题,题干大致是“以下哪些隔离级别可以避免脏读”。答案是Read Committed、Repeatable Read、Serializable三种。Read Uncommitted是允许读未提交数据的,所以无法避免脏读。这道题本身不难,但很多人做错是因为把“可重复读”和“串行化”的特性搞混了,死记硬背不可取,最好从“这个隔离级别到底读什么数据”去理解,理解了就不会错。
4. 客观题的应试策略与避坑指南
4.1 做题顺序与时间分配
这套题题量不小,而且客观题里多选题比单选题更容易丢分,因为多选漏选、错选都不得分。我个人的习惯是:先做单选题,再做多选题。单选题计算量小、概念性强,能够快速建立信心;多选题一般集中在概念辨析和场景分析,需要花时间逐项检查,放到后面做比较从容。
做题时间分配上,我给自己的规定是:选择题平均每题不超过1分钟,如果一道题卡了2分钟还没思路,直接跳过,先做后面会的题。等到全部题做完一遍,再回头啃那些跳过的题。为什么这么做?因为客观题有一个特点,你看后面的题目时,前面的概念会在你脑子里自动“发酵”,有时候你跳过的那道题会在做另一道题时突然想明白。这在心理学上叫“酝酿效应”,在考试里实际效果非常明显。另外,越到后面你越熟悉这套题的出题风格,回过头去看之前的题,更容易发现出题者设置的陷阱。
4.2 多选题的“最小风险”策略
多选题是客观题里最不友好的题型,京东的评分规则通常是不选全不得分,错选也不得分。这种情况下,我的策略是“能确定几个选几个,不确定的坚决不选”。这么做虽然可能拿不到满分,但至少能保证部分得分,比冒险选错一分不得要强。
多选题的解题技巧,关键在于排除绝对化表述。比如选项里出现“一定”“完全”“所有”“任何”这种绝对化词语,大概率是错的。技术世界里很少有绝对的说法,因为真实环境里总有边界情况和例外。比如“所有排序算法在最坏情况下时间复杂度都不低于O(n log n)”,这句话表面看是对的,但排序里还有计数排序、基数排序这种非比较排序,时间复杂度是O(n+k),所以选项是错的。如果你能养成“看到绝对化表述先怀疑”的习惯,多选题的正确率至少能提高20%。
4.3 审题时要记住的“关键词陷阱”
京东这套题里“正确的是”和“错误的是”反复出现。有些同学一看到熟悉的选项就直接选,完全没注意题目要求找的是“错误项”。这是客观题里最常见的低级错误,原因就是审题不仔细。建议做题时把题干里的“正确”或“错误”圈出来,如果是机试就心里默念一遍:这题找的是“错”的。
还有一个关键词陷阱是“能”和“不能”。比如“以下哪些机制能避免死锁”和“以下哪些机制不能避免死锁”,选项完全一样,答案完全相反。别觉得这是出题人在玩文字游戏,校招笔试就是通过这些细节筛选出细心的人,因为实际工作中,需求文档上也充满了这种需要仔细辨析的描述。
4.4 复习时的查漏补缺方法
做完这套题之后,最重要的不是看分数,而是把错题对应的知识点找出来,认真搞懂。我的做法是给每道错题标记一个“错因标签”:
- 概念混淆型:两个知识点没区分开,比如B树和B+树的区别。
- 记忆模糊型:知道有这件事,但细节记不清,比如TCP四次挥手里的TIME_WAIT时间。
- 计算失误型:过程没问题,但算错了,比如哈希函数计算时粗心。
- 审题失误型:题目要求找“错误”的,自己选了“正确”的。
把错因分好类之后,你会立刻看清自己的薄弱环节。概念混淆型说明该回头精读教材对应章节;记忆模糊型说明该做归纳总结;计算失误型说明平常刷题不够,手生了;审题失误型不是知识问题,是做题习惯问题,下次做题时放慢速度、圈关键词就能改善。
5. 从客观题看校招技术笔试的命题趋势
5.1 基础为王,但考察方式越来越活
京东2017年的这套题,放到今天的大厂校招里,知识点的重合度依然很高。这几年技术笔试的变化,不在于考什么,而在于怎么考。现在的题目越来越喜欢把多个知识点揉在一个场景里考察,比如给你一个电商下单的场景,让你分析用户点击“提交订单”到订单生成的过程中,哪些协议、哪些数据结构、哪些并发控制机制参与了工作。
所以我的建议是:不要掰碎了孤立地复习每个知识点,而是要把它们织成一张网。学TCP时想一想HTTP基于它做了哪些优化;学线程同步时想一想数据库的锁和操作系统的信号量有什么异同;学B+树时想一想磁盘I/O为什么比内存访问慢几个数量级,这个差距为什么决定了索引结构的选择。这种关联式的学习方式,才是应对客观题最稳的办法。
5.2 从客观题到面试题的思维转换
客观题和面试题实际上是同一批知识点的不同考核方式。客观题考察的是“你能认出正确答案”,面试题考察的是“你能不能清晰地把答案讲出来”。很多同学客观题能拿高分,但面试时被问到同一个知识点,讲得支离破碎。原因是复习时只做了选择题,没有练习输出式表达。
我建议你在复习这套题时,每做完一道题,尝试着把这道题的知识点用三句话讲给一个完全不懂的人听,讲不清楚的地方就是你的知识盲区。这个方法比反复刷题更高效,因为你是在主动构建知识索引,而不只是在被动刷新记忆。
6. 最后的复盘与心得
这套京东2017校招技术类客观题(三),整体难度中等偏上,计算量不大但概念密度很高,是一套很适合用来做基础能力测试的题目。做完一遍之后,如果你想测试自己的掌握程度,可以试着把每个题目的考点写在一张纸上,然后看看能不能不看题目说出每个知识点的核心结论。如果能做到,那么你的基础在笔试环节基本上是过关了。
我自己做题时还有一个习惯:不只做对,还要把每个错误的选项为什么错想明白。这套题里有不少很经典的错项,比如把稳定排序说成不稳定、把线程描述为资源拥有单位、把UDP描述为可靠传输。这些错项单独拎出来都很离谱,但放进一堆专业术语里的时候,特别具有迷惑性。你只有在复习时主动分析这些“离谱选项”,才可能在考场上第一时间看穿它们。
最后再分享一个小技巧:考前一周不建议再刷新题了,回头把做过的错题重新做一遍,比做十套新题都管用。错题是你的薄弱环节,也是考场上最容易拉分的地方。把错题彻底吃透,再把每个相关的知识点在脑海里过一遍,这套题就算真正发挥了它的价值。