2026年腾讯技术岗笔考前冲刺练习试题及答案详解【基础+提升】_第1页
2026年腾讯技术岗笔考前冲刺练习试题及答案详解【基础+提升】_第2页
2026年腾讯技术岗笔考前冲刺练习试题及答案详解【基础+提升】_第3页
2026年腾讯技术岗笔考前冲刺练习试题及答案详解【基础+提升】_第4页
2026年腾讯技术岗笔考前冲刺练习试题及答案详解【基础+提升】_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2026年腾讯技术岗笔考前冲刺练习试题及答案详解【基础+提升】1.在以下排序算法中,平均时间复杂度为O(nlogn)的是?

A.冒泡排序

B.快速排序

C.插入排序

D.选择排序【答案】:B

解析:本题考察排序算法的时间复杂度。A选项冒泡排序平均时间复杂度为O(n²);B选项快速排序平均时间复杂度为O(nlogn)(最坏O(n²));C选项插入排序平均时间复杂度为O(n²);D选项选择排序平均时间复杂度为O(n²)。因此正确答案为B。2.在微信等即时通讯场景中,优先选择的传输层协议是?

A.TCP

B.UDP

C.HTTP

D.HTTPS【答案】:B

解析:即时通讯需低延迟、高频数据传输(如语音/视频),允许少量丢包。**UDP**无连接、传输速度快,适合此类场景;TCP虽可靠但重传机制导致延迟高。C、D为应用层协议(基于TCP),非传输层协议,不适用。3.Java线程池中,用于控制核心线程最大数量的参数是?

A.corePoolSize

B.maximumPoolSize

C.keepAliveTime

D.workQueue【答案】:A

解析:本题考察Java线程池核心参数。corePoolSize定义线程池的核心线程数量(常驻线程);maximumPoolSize是线程池允许的最大线程数(含核心和临时线程);keepAliveTime是临时线程空闲后的存活时间;workQueue是任务等待队列。B选项控制最大线程数而非核心线程;C、D分别是空闲时间和队列参数,均不符合题意。4.TCP三次握手过程中,客户端发送的第一个报文段的标志位是什么?

A.SYN

B.ACK

C.SYN+ACK

D.FIN【答案】:A

解析:本题考察TCP三次握手的报文标志位。TCP三次握手的过程为:客户端发送SYN(同步序列号)报文段请求连接,服务器返回SYN+ACK(同步序列号+确认序列号)报文段,客户端再返回ACK报文段确认连接。因此,客户端发送的第一个报文段仅包含SYN标志位,故正确答案为A。选项B的ACK是第三次握手客户端发送的确认报文;选项C的SYN+ACK是服务器第二次发送的报文;选项D的FIN是四次挥手过程中结束连接的标志位,均错误。5.以下关于数据库索引的说法,错误的是?

A.主键索引一定是唯一索引

B.InnoDB中唯一索引允许NULL值(最多一个NULL)

C.InnoDB中聚簇索引一定是主键索引

D.普通索引一定是聚簇索引【答案】:D

解析:本题考察数据库索引原理。A正确:主键索引默认唯一;B正确:InnoDB引擎中唯一索引允许最多一个NULL值;C正确:InnoDB仅支持主键作为聚簇索引;D错误:普通索引(非主键)属于非聚簇索引,聚簇索引在InnoDB中只能有一个且为表的主键。6.在Java的HashMap中,解决哈希冲突的主要方法是?

A.开放寻址法

B.链地址法

C.再哈希法

D.公共溢出区【答案】:B

解析:本题考察哈希表冲突解决方法知识点。Java的HashMap底层采用数组+链表(JDK1.8后优化为数组+链表/红黑树)的结构,通过将哈希值冲突的元素链入同一链表(或红黑树)实现,属于链地址法(Chaining)。A选项开放寻址法是通过重新计算地址寻找空槽位,Java未使用;C选项再哈希法需多次计算不同哈希函数,JDK未采用;D选项公共溢出区是将冲突元素存入独立数组,非HashMap主要方法。故正确答案为B。7.关于Java垃圾回收机制的描述,错误的是?

A.垃圾回收线程是低优先级线程,默认情况下不会抢占用户线程资源

B.System.gc()方法会强制JVM立即进行一次垃圾回收

C.标记-清除算法会导致回收后产生内存碎片

D.新生代的垃圾回收算法通常采用复制算法【答案】:B

解析:本题考察Java垃圾回收机制。选项A正确,GC线程优先级低于用户线程;选项B错误,System.gc()仅为“建议”,JVM可能延迟或忽略执行;选项C正确,标记-清除算法不移动对象,回收后会产生内存碎片;选项D正确,新生代GC(如SerialGC、ParallelGC)通常采用复制算法减少碎片。故错误选项为B。8.在操作系统中,关于进程和线程的描述,以下哪项是错误的?

A.进程拥有独立的地址空间,线程共享进程的地址空间

B.进程切换的开销比线程切换的开销大

C.线程是CPU调度的基本单位,进程是资源分配的基本单位

D.同一进程内的多个线程间通信需要通过共享内存,无需系统调用【答案】:D

解析:本题考察进程与线程的核心区别。正确答案为D。分析:A正确,进程有独立地址空间,线程共享进程资源;B正确,进程切换需切换地址空间/页表,线程切换仅需寄存器/栈切换,开销更小;C正确,线程是CPU调度基本单位,进程是资源分配基本单位;D错误,同一进程内线程通信虽可共享内存,但复杂同步(如互斥锁)仍需系统调用,且共享内存需处理线程安全问题。9.Java中使用synchronized关键字修饰静态方法时,锁的对象是?

A.当前实例对象(this)

B.类的Class对象

C.调用该方法的线程对象

D.方法所属的接口对象【答案】:B

解析:本题考察Javasynchronized锁机制。synchronized修饰实例方法时,锁是当前实例对象(this);修饰静态方法时,锁是该类的Class对象(因静态方法属于类,与实例无关)。A错误,仅实例方法锁this;C错误,锁与线程对象无关;D错误,接口对象不参与锁控制。10.在MySQL中,关于索引的说法,正确的是?

A.索引一定能提高查询效率

B.主键索引在InnoDB引擎中默认是唯一且非空的

C.只有InnoDB引擎支持索引

D.普通索引的字段值不能为NULL【答案】:B

解析:本题考察MySQL索引原理。选项A错误,索引可能因数据量小、查询条件频繁命中全表扫描等情况降低效率;选项B正确,InnoDB主键索引默认唯一且非空;选项C错误,MyISAM、Memory等引擎也支持索引;选项D错误,普通索引允许字段值为NULL(仅主键索引和唯一索引不允许)。故正确答案为B。11.关于Java中的synchronized关键字,以下说法错误的是?

A.synchronized是可重入锁

B.synchronized会自动释放锁

C.synchronized只能修饰方法,不能修饰代码块

D.多线程竞争锁时会阻塞等待【答案】:C

解析:本题考察Java并发编程中synchronized的特性。A正确,synchronized支持可重入锁,同一线程可多次获取锁;B正确,synchronized在方法执行完毕或异常退出时会自动释放锁;C错误,synchronized既可以修饰方法(隐式锁对象),也可以通过synchronized代码块(显式锁对象)使用;D正确,当多个线程竞争锁时,未获取到锁的线程会进入阻塞状态。因此正确答案为C。12.关于数据库索引,以下说法错误的是?

A.B+树索引是MySQL中InnoDB存储引擎默认的索引类型

B.哈希索引不支持范围查询,适用于等值查询

C.聚簇索引的叶子节点存储的是数据本身,而非指针

D.索引可以提高查询性能,因此在所有场景下都应该为表添加尽可能多的索引【答案】:D

解析:本题考察数据库索引的特性与优化。A选项正确:InnoDB默认使用B+树索引,支持范围查询和排序。B选项正确:哈希索引通过哈希函数定位数据,仅适用于等值查询,不支持范围查询。C选项正确:聚簇索引(如主键索引)的叶子节点直接存储完整数据行,而非指向数据的指针。D选项错误:索引会增加插入、更新、删除的性能开销,且占用存储空间,需根据业务场景(如高频查询表)合理添加,不可过度索引。因此答案为D。13.以下关于数据库索引的说法,正确的是?

A.建立索引后,所有查询操作的性能都会提升

B.聚簇索引一定比非聚簇索引查询效率更高

C.索引会增加存储空间和写入开销,但能加快查询速度

D.MySQL中唯一索引不允许任何NULL值【答案】:C

解析:本题考察数据库索引的核心特性。A选项错误,索引在数据量较小时可能提升查询效率,但在频繁写入(如插入、更新)场景下,索引会因维护开销导致性能下降;B选项错误,聚簇索引(如InnoDB的主键索引)与数据行物理存储顺序一致,适合范围查询,但非聚簇索引(如二级索引)在某些场景下(如等值查询)效率更高,需结合具体数据分布;C选项正确,索引通过存储键值映射关系加快查询(时间复杂度降低),但会额外占用磁盘空间(存储索引结构)并增加写入时的索引维护开销;D选项错误,唯一索引允许字段值为NULL(MySQL中NULL视为不同值,唯一索引最多允许一个NULL),主键索引(非空唯一)才强制不允许NULL。14.在MySQLInnoDB存储引擎中,以下哪种索引类型默认不基于B+树结构?

A.主键索引

B.二级索引

C.聚簇索引

D.哈希索引【答案】:D

解析:本题考察MySQL索引类型与B+树结构知识点。InnoDB存储引擎中,主键索引(聚簇索引)和二级索引均默认基于B+树结构,且主键索引与表数据物理存储在一起。哈希索引(如Memory引擎的某些场景)采用哈希表结构,通过哈希函数定位数据,而非B+树。因此选项A、B、C均为B+树索引,选项D错误,故正确答案为D。15.在TCP/IP协议栈中,关于TCP和UDP协议的描述,错误的是?

A.TCP是面向连接的,UDP是无连接的

B.TCP提供可靠交付服务,UDP不保证可靠交付

C.TCP首部长度固定为20字节,UDP首部长度固定为8字节

D.TCP适用于需要可靠传输的场景(如HTTP),UDP适用于实时传输场景(如视频流)【答案】:C

解析:本题考察TCP/IP协议基础知识。选项A正确,TCP三次握手建立连接,UDP直接发送数据;选项B正确,TCP通过重传、确认机制保证可靠交付,UDP不保证;选项C错误,TCP首部长度是可变的(取决于选项字段),默认最小20字节,可能更长;UDP首部固定8字节。选项D正确,TCP适合需可靠的场景,UDP适合实时性要求高的场景。16.在数据库事务的ACID特性中,哪个特性确保事务执行过程中,对数据的修改在提交前对其他事务不可见?

A.原子性(Atomicity)

B.一致性(Consistency)

C.隔离性(Isolation)

D.持久性(Persistence)【答案】:C

解析:本题考察数据库事务的ACID特性。隔离性(Isolation)指事务之间相互隔离,一个事务的中间状态对其他事务不可见。选项A(原子性)强调事务的“不可分割性”(要么全做要么全不做);选项B(一致性)要求事务执行前后数据满足业务规则;选项D(持久性)确保事务提交后数据永久保存。因此错误选项中,原子性是不可分割,一致性是业务约束,持久性是数据最终状态,均不符合题意。17.在Java的HashMap中,解决哈希冲突的主要方法是?

A.开放寻址法

B.链地址法

C.再哈希法

D.公共溢出区【答案】:B

解析:本题考察Java集合中哈希表的实现原理。Java的HashMap采用数组+链表(JDK1.8后为数组+链表+红黑树)的结构,每个数组元素对应一个链表或红黑树,通过将冲突的哈希值元素链在同一数组位置下的链表中,这种方法称为链地址法。选项A(开放寻址法)常见于数组实现的哈希表(如Redis早期哈希表);选项C(再哈希法)是通过多个哈希函数减少冲突,但非HashMap主要方法;选项D(公共溢出区)是线性探测的变种,JavaHashMap未采用。18.数据库事务的ACID特性中,“原子性”(Atomicity)的定义是?

A.事务中的所有操作要么全部执行成功,要么全部不执行

B.事务对数据库的修改在提交后是永久的,即使系统崩溃也不会丢失

C.多个事务并发执行时,一个事务的执行不能被其他事务干扰

D.事务执行后,数据库状态必须满足所有完整性约束条件【答案】:A

解析:本题考察数据库事务的ACID核心特性。A选项描述了原子性的本质(不可分割的最小执行单元);B是“持久性”(Durability),C是“隔离性”(Isolation),D是“一致性”(Consistency)。原子性强调事务的“要么全做,要么全不做”,例如转账操作中“扣钱”和“加钱”必须同时成功或失败,否则会导致数据不一致。19.Java中,当一个对象被判定为‘不可达’时,可能会被垃圾回收,以下哪种情况会直接导致对象不可达?

A.对象的引用变量超出方法作用域

B.对象的引用变量被赋值为null

C.对象的引用变量被其他对象引用

D.对象的引用变量被声明为static【答案】:B

解析:本题考察Java垃圾回收机制。Java采用可达性分析算法,对象不可达(无任何强引用指向)时会被回收。选项A:局部变量引用超出方法作用域后自动失效,但静态变量或类成员变量的引用不会因作用域结束而消失;选项B:引用变量赋值为null后,原对象失去所有强引用,直接不可达;选项C:被其他对象引用会增强可达性,不会被回收;选项D:static引用变量属于类级,生命周期与类绑定,不会因普通作用域结束而不可达。因此正确答案为B。20.以下关于TCP和UDP的描述,错误的是?

A.TCP是面向连接的,UDP是无连接的

B.TCP提供可靠交付,UDP是不可靠的

C.TCP的首部长度固定为20字节

D.TCP是字节流服务,UDP是数据报服务【答案】:C

解析:本题考察TCP/IP协议栈的核心特性。选项A正确,TCP通过三次握手建立连接,UDP无需连接;选项B正确,TCP通过确认重传、序号确认等机制保证可靠,UDP不提供;选项C错误,TCP首部长度可变(20-60字节,取决于选项字段),而UDP首部固定8字节;选项D正确,TCP以字节流形式传输(无边界),UDP以数据报(报文)形式传输(有边界)。21.在操作系统进程调度中,可能导致低优先级进程长期无法执行的调度算法是?

A.先来先服务(FCFS)

B.短作业优先(SJF)

C.时间片轮转(RR)

D.优先级调度(静态优先级)【答案】:D

解析:本题考察进程调度算法的特性。静态优先级调度中,若高优先级进程持续到达,低优先级进程会因无法竞争到CPU而长期等待(饥饿);选项A(FCFS)按顺序执行,无饥饿问题;选项B(SJF)非抢占式可能导致长作业等待,但非典型饥饿;选项C(RR)按时间片轮流执行,无进程饥饿。因此正确答案为D。22.在Java中,线程调用wait()方法后,线程会进入以下哪种状态?

A.RUNNABLE

B.BLOCKED

C.WAITING

D.TERMINATED【答案】:C

解析:本题考察Java线程状态转换知识点。Java线程状态包括NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED。A选项RUNNABLE:线程正在执行或等待CPU调度,调用wait()后不处于此状态;B选项BLOCKED:线程因等待对象锁进入阻塞,需通过notify()唤醒,wait()不涉及锁等待;C选项WAITING:线程调用wait()后释放对象锁,进入无限等待状态,需被notify()/notifyAll()唤醒;D选项TERMINATED:线程执行完毕状态,与wait()无关。因此正确答案为C。23.关于分布式系统CAP定理的描述,以下哪项是正确的?

A.一致性(Consistency)、可用性(Availability)、分区容错性(PartitionTolerance)三者可以同时满足

B.分区容错性是分布式系统必须具备的特性,因此必须在一致性和可用性之间做权衡

C.当系统出现分区时,必须保证所有节点的数据完全一致(Consistency)

D.分布式系统中,可用性(Availability)是指系统永远不会宕机【答案】:B

解析:本题考察CAP定理核心内容。CAP定理指出,分布式系统中C(一致性)、A(可用性)、P(分区容错性)三者不可兼得,P是必须特性(网络分区不可避免),需在C和A间权衡。A选项错误(三者不可同时满足);C选项错误(分区时通常牺牲一致性保障可用性);D选项错误(可用性指正常响应请求,非永不宕机)。因此正确答案为B。24.快速排序算法的平均时间复杂度是以下哪一项?

A.O(n)

B.O(nlogn)

C.O(n²)

D.O(logn)【答案】:B

解析:本题考察排序算法的时间复杂度知识点。快速排序的平均时间复杂度为O(nlogn),其核心思想是分治,每次选择一个基准元素将数组分为两部分,递归处理子数组。选项A(O(n))通常指线性时间排序(如计数排序),非快速排序;选项C(O(n²))是快速排序的最坏时间复杂度(当数组已排序或逆序时);选项D(O(logn))常见于二分查找等算法,与排序复杂度无关。25.在Java中,使用synchronized关键字修饰一个实例方法时,该方法的锁对象是?

A.当前类的Class对象

B.调用该方法的对象(即this)

C.方法参数中指定的对象

D.线程自身的锁【答案】:B

解析:本题考察Javasynchronized锁机制。synchronized修饰实例方法时,锁对象为调用该方法的对象实例(this);修饰静态方法时,锁对象为当前类的Class对象。A选项是静态方法的锁对象;C选项方法参数不参与锁对象指定;D选项错误,synchronized是对象锁而非线程锁。因此正确答案为B。26.以下关于Java中多态的描述,错误的是?

A.多态是指同一操作作用于不同对象产生不同执行结果

B.多态主要通过方法重写(Override)和接口实现实现

C.方法重载(Overload)是多态的编译时表现形式

D.多态的实现必须依赖于类的继承或接口的实现【答案】:D

解析:本题考察Java多态的知识点。A选项是多态的定义,正确;B选项正确,方法重写(运行时多态)和接口实现(多态核心)是多态的主要实现方式;C选项正确,方法重载通过参数列表差异实现编译时多态;D选项错误,多态的实现不依赖于继承,例如接口回调、方法重载(同一类内)也可体现多态。因此正确答案为D。27.在频繁进行中间位置的插入和删除操作的场景下,优先选择以下哪种集合?

A.ArrayList

B.LinkedList

C.Vector

D.HashSet【答案】:B

解析:本题考察Java集合的底层实现与适用场景,正确答案为B。LinkedList基于双向链表实现,中间位置插入/删除时仅需修改指针,时间复杂度为O(1)(已知目标节点位置)。A选项ArrayList基于动态数组,中间操作需移动后续元素,时间复杂度O(n)。C选项Vector是线程安全的ArrayList,效率更低且题目未提线程安全需求。D选项HashSet基于哈希表,无顺序且不支持按索引操作,无法进行中间位置修改。28.以下代码的时间复杂度是?

```

for(inti=0;i<n;i++){

for(intj=i;j<n;j++){

sum+=i*j;

}

}

```

A.O(n)

B.O(n²)

C.O(nlogn)

D.O(2ⁿ)【答案】:B

解析:本题考察算法时间复杂度分析。外层循环变量i从0到n-1,共执行n次;内层循环变量j从i到n-1,每次外层循环中内层循环的执行次数为n-i。总执行次数为1+2+...+n=n(n+1)/2,当n较大时,低阶项和系数可忽略,时间复杂度为O(n²)。选项A是单层循环的复杂度,选项C常见于归并排序等算法,选项D是指数级复杂度(如递归斐波那契数列)。29.在InnoDB存储引擎中,二级索引(非聚簇索引)的叶子节点通常存储的数据是以下哪一项?

A.完整的行数据

B.主键值

C.索引字段的原始值

D.表的元数据ID【答案】:B

解析:本题考察数据库索引结构,正确答案为B。InnoDB中,聚簇索引(主键索引)的叶子节点直接存储行数据,而二级索引(非聚簇索引)的叶子节点仅存储主键值,通过主键值可快速回表查询完整数据。选项A(行数据)是聚簇索引的特性;选项C(索引字段原始值)错误,二级索引需关联主键;选项D(表ID)无此存储逻辑,故排除。30.在InnoDB存储引擎中,关于聚簇索引(ClusteredIndex)的描述,正确的是?

A.聚簇索引必须是表的主键索引,且每个表只能有一个聚簇索引

B.聚簇索引的叶子节点存储指向数据行的指针

C.聚簇索引的顺序与数据物理存储顺序无关

D.一个表可以同时存在多个聚簇索引【答案】:A

解析:本题考察数据库聚簇索引特性。InnoDB中聚簇索引即主键索引,每个表仅支持一个聚簇索引;B错误,聚簇索引叶子节点直接存储数据行;C错误,聚簇索引顺序与数据物理存储顺序一致;D错误,聚簇索引唯一且不可重复。因此正确答案为A。31.在频繁进行随机访问(如根据索引获取元素)的场景下,以下哪种数据结构的效率更高?

A.ArrayList

B.LinkedList

C.两者效率相同

D.取决于数据量大小【答案】:A

解析:ArrayList基于动态数组实现,随机访问通过索引直接定位,时间复杂度为O(1);LinkedList基于双向链表实现,随机访问需从头遍历,时间复杂度为O(n)。因此ArrayList在随机访问场景更高效。32.HTTPS协议在传输数据时,主要采用以下哪种加密方式?

A.仅使用对称加密(如AES)

B.仅使用非对称加密(如RSA)

C.使用对称加密和非对称加密相结合

D.使用哈希函数(如SHA)进行加密【答案】:C

解析:本题考察网络安全协议知识点。HTTPS基于SSL/TLS协议,采用“非对称加密+对称加密”的混合方案:先用RSA等非对称加密交换对称密钥(解决密钥传输安全问题),再用AES等对称加密快速加密传输数据(提升效率)。选项A错误,仅对称加密无法安全传输密钥;选项B错误,非对称加密速度慢,不适合直接加密大量数据;选项D错误,哈希函数用于数据完整性校验而非加密。因此正确答案为C。33.以下关于数据库索引的说法,正确的是?

A.索引可以提高查询效率,同时会降低插入和更新操作的效率

B.InnoDB存储引擎中,所有表必须有主键,否则无法创建聚簇索引

C.MySQL中唯一的索引类型是B+树索引

D.只要为表建立索引,查询时就一定比全表扫描快【答案】:A

解析:本题考察数据库索引的作用与类型。A正确:索引通过减少磁盘IO提升查询速度,但插入/更新需维护索引结构,导致效率下降。B错误,InnoDB允许无主键表(通过隐藏RowID实现),且聚簇索引可基于二级索引创建。C错误,MySQL还支持哈希索引(如Memory引擎)、R树索引等。D错误,若查询条件无法使用索引(如模糊查询以%开头),全表扫描可能更快。因此正确答案为A。34.关于TCP协议的描述,以下哪项是错误的?

A.提供可靠的面向连接的传输服务

B.使用三次握手建立连接

C.传输数据时会有拥塞控制机制

D.是无连接的不可靠传输协议【答案】:D

解析:本题考察TCP/IP协议栈中TCP的核心特性。TCP是可靠的面向连接的传输层协议,其可靠性通过三次握手建立连接、确认重传机制、流量控制和拥塞控制实现。选项A正确(可靠+面向连接);选项B正确(三次握手:SYN→SYN-ACK→ACK);选项C正确(通过慢启动、拥塞避免等机制控制网络拥塞);选项D错误,因为“无连接、不可靠”是UDP协议的特性,TCP与UDP的核心区别之一即是否可靠及是否面向连接。35.在进程调度算法中,以下哪种算法可能导致低优先级进程长期无法获得CPU资源(即“饥饿”现象)?

A.先来先服务(FCFS)

B.时间片轮转(RR)

C.短作业优先(SJF)

D.静态优先级调度【答案】:D

解析:本题考察进程调度中的饥饿问题。静态优先级调度算法若采用固定优先级且未设置老化机制,高优先级进程会持续抢占CPU,导致低优先级进程无法获得执行机会。FCFS按到达顺序调度,无优先级时不会饥饿;RR通过时间片轮转公平分配资源,无饥饿;SJF(非抢占式)可能导致长作业饥饿,但动态SJF(抢占式)可缓解。静态优先级调度的饥饿现象更典型。因此正确答案为D。36.在MySQL数据库中,以下哪种索引结构通常作为默认的表索引结构?

A.B+树索引

B.哈希索引

C.红黑树索引

D.全文索引【答案】:A

解析:MySQL的InnoDB和MyISAM引擎默认使用B+树索引,其叶子节点通过链表连接,支持高效范围查询和排序,且索引值重复度低。B选项哈希索引仅支持等值查询,不适合范围查询;C选项红黑树是JavaTreeMap的底层结构,非数据库索引;D选项全文索引用于文本搜索,非默认表索引。因此正确答案为A。37.Java线程池创建时,哪个参数决定了任务队列满后允许创建的最大线程数?

A.corePoolSize(核心线程数)

B.maximumPoolSize(最大线程数)

C.keepAliveTime(空闲线程存活时间)

D.workQueue(任务队列容量)【答案】:B

解析:本题考察Java线程池参数。线程池逻辑:核心线程(corePoolSize)满后任务入队列;队列满且仍有任务时,创建新线程至maximumPoolSize(最大线程数)。因此maximumPoolSize决定最大线程数,B正确。A是核心线程数,C是空闲线程超时销毁时间,D是队列容量,均不决定最大线程数。38.在哈希表中,处理冲突的常用方法不包括以下哪一项?

A.开放寻址法

B.链地址法

C.二分查找法

D.再哈希法【答案】:C

解析:哈希表处理冲突的常用方法包括开放寻址法(如线性探测、二次探测)、链地址法(拉链法)和再哈希法。二分查找法是基于有序数组的查找算法,不属于哈希冲突解决方法,因此选C。39.在分布式系统CAP定理中,“P”代表的是?

A.Consistency(一致性)

B.Availability(可用性)

C.Partitiontolerance(分区容错性)

D.Performance(性能)【答案】:C

解析:本题考察分布式系统CAP定理知识点。CAP定理中,C(Consistency)指强一致性(分布式系统各节点数据相同),A(Availability)指服务可用性(节点正常响应请求),P(Partitiontolerance)指分区容错性(允许节点间网络分区)。三者不可兼得,分布式系统需在C/A/P中选择权衡。D选项“性能”非CAP定理核心要素。40.在MySQL数据库中,关于主键索引和唯一索引的描述,正确的是?

A.一个表只能有一个主键索引,但可以有多个唯一索引

B.主键索引允许空值,唯一索引不允许空值

C.主键索引一定是聚簇索引,唯一索引一定是非聚簇索引

D.主键索引和唯一索引都不允许重复值,且都不能为NULL【答案】:A

解析:本题考察数据库索引类型。主键索引的特点是唯一且非空,一个表只能有一个主键索引;唯一索引允许字段值重复(仅禁止重复非空值),且可以有多个。选项B错误:唯一索引允许空值(MySQL中NULL视为不同值);选项C错误:唯一索引若为主键则也是聚簇索引;选项D错误:唯一索引允许NULL值,主键索引不允许NULL值。41.在MySQL数据库中,以下哪种情况最可能导致索引失效,从而触发全表扫描?

A.对索引列使用ISNULL条件查询

B.使用函数或表达式操作索引列(如WHERESUBSTRING(name,1,3)='abc')

C.使用LIKE'%abc'进行模糊查询

D.对主键列使用BETWEEN条件查询【答案】:B

解析:MySQL中,对索引列使用函数或表达式(如SUBSTRING(name))会导致索引失效,优化器无法利用索引。A选项ISNULL通常可走索引;C选项LIKE'%abc'会失效但非最典型场景;D选项BETWEEN对主键(聚簇索引)可走范围扫描。正确答案为B。42.以下哪种排序算法的平均时间复杂度为O(nlogn)?

A.冒泡排序

B.选择排序

C.快速排序

D.插入排序【答案】:C

解析:本题考察排序算法的时间复杂度。冒泡排序、选择排序、插入排序的平均时间复杂度均为O(n²);快速排序的平均时间复杂度为O(nlogn),最坏情况为O(n²);归并排序的平均时间复杂度同样为O(nlogn)但稳定性更好。因此正确答案为C。43.以下排序算法中,平均时间复杂度为O(nlogn)的是?

A.冒泡排序

B.快速排序

C.插入排序

D.选择排序【答案】:B

解析:本题考察排序算法的时间复杂度。冒泡、插入、选择排序的平均和最坏时间复杂度均为O(n²)(A、C、D错误);快速排序平均时间复杂度为O(nlogn),最坏为O(n²),因此B正确。44.下列关于进程和线程的说法中,错误的是?

A.进程拥有独立的地址空间,线程共享进程的地址空间

B.进程切换的开销比线程切换的开销大

C.线程是CPU调度的基本单位

D.线程是资源分配的基本单位【答案】:D

解析:本题考察进程与线程的核心区别。进程是资源分配的基本单位(如内存、文件),线程是CPU调度的基本单位,共享进程资源。因此D错误,线程不具备独立资源分配能力。A正确(进程独立地址空间,线程共享);B正确(进程切换需切换地址空间,开销更大);C正确(线程直接参与CPU调度)。45.设计微信朋友圈点赞等高频写操作的分布式系统时,优先满足CAP中的哪两个特性?

A.一致性(C)和可用性(A)

B.一致性(C)和分区容错性(P)

C.可用性(A)和分区容错性(P)

D.三者同时满足【答案】:C

解析:分布式系统CAP中,分区容错性(P)不可放弃。高频写操作需用户快速响应(高可用性A),允许数据短暂不一致(最终一致性),因此优先满足**可用性(A)和分区容错性(P)**(AP系统)。A选项放弃P不现实,B选项放弃A会导致请求失败,D选项CAP理论不可兼得。46.在Java多线程中,关于start()方法和run()方法的区别,以下说法正确的是?

A.start()方法启动新线程并执行run()方法,run()仅为普通方法调用

B.直接调用run()方法会立即执行线程任务,与普通方法无区别

C.start()方法可被多次调用,run()方法只能调用一次

D.start()方法用于关闭线程,run()方法用于启动线程【答案】:A

解析:本题考察Java线程的基础启动机制。Java中调用start()会创建新线程并自动执行run()方法(线程体),而直接调用run()仅作为普通方法在当前线程执行,不会启动新线程,因此A正确。B错误,run()单独调用不会启动新线程;C错误,start()多次调用会抛出IllegalThreadStateException,run()可多次调用但无线程启动效果;D错误,start()用于启动线程,run()是线程执行逻辑入口,关闭线程通过stop()或interrupt()等方法。47.Java并发编程中,关于synchronized关键字和volatile关键字的区别,以下说法错误的是?

A.synchronized可以保证线程安全,volatile只能保证可见性

B.synchronized是互斥锁,会导致线程阻塞;volatile不会导致线程阻塞

C.synchronized既可以修饰方法也可以修饰代码块,volatile只能修饰变量

D.两者都能保证原子性,volatile比synchronized性能更高【答案】:D

解析:本题考察Java并发关键字的核心区别。synchronized通过互斥锁保证原子性和可见性,volatile仅保证可见性和禁止指令重排,无法保证原子性(如i++非原子操作)。A正确,synchronized保障线程安全,volatile仅可见性;B正确,synchronized可能阻塞线程,volatile不会;C正确,synchronized可修饰方法/代码块,volatile仅修饰变量;D错误,volatile不保证原子性,且synchronized性能虽低但功能更强。48.分布式系统的CAP定理中,‘P’代表的是?

A.Partitiontolerance(分区容错性)

B.Performance(性能)

C.Parallelism(并行性)

D.Persistence(持久性)【答案】:A

解析:本题考察分布式系统CAP定理。CAP定理中三个核心特性为:一致性(Consistency)、可用性(Availability)、分区容错性(Partitiontolerance),分别对应‘C’‘A’‘P’。其中‘P’指系统在网络分区时仍能对外提供服务的能力,与性能、并行性、持久性无关。因此正确答案为A。49.数据库事务的ACID特性中,‘事务一旦提交,对数据库的修改就是永久性的,即使系统崩溃也不会丢失’,描述的是以下哪个特性?

A.原子性(Atomicity)

B.一致性(Consistency)

C.隔离性(Isolation)

D.持久性(Durability)【答案】:D

解析:本题考察数据库事务ACID特性的定义。正确答案为D(持久性)。分析:A原子性指事务不可分割,要么全执行要么全回滚;B一致性指事务执行后数据状态合法(如转账金额总和不变);C隔离性指并发事务互不干扰;D持久性强调事务提交后修改永久生效,即使系统崩溃也不会丢失,符合题干描述。50.以下关于TCP和UDP协议的描述,错误的是?

A.TCP是无连接的协议

B.UDP不提供可靠传输服务

C.TCP有拥塞控制机制

D.UDP头部开销比TCP小【答案】:A

解析:本题考察TCP/IP协议基础知识点。TCP是面向连接的协议,建立连接需通过三次握手,而UDP是无连接的,因此A选项错误。B选项正确,UDP不保证数据可靠到达,仅提供尽力而为的传输;C选项正确,TCP通过慢启动、拥塞避免等机制实现拥塞控制;D选项正确,UDP头部仅包含源端口、目的端口、长度和校验和(8字节),而TCP头部至少20字节(含序列号、确认号等),因此UDP开销更小。51.以下关于Java中synchronized关键字的说法,错误的是?

A.synchronized是可重入锁

B.synchronized可以修饰方法或代码块

C.synchronized在JDK1.6后引入了偏向锁、轻量级锁、重量级锁等锁优化

D.synchronized在获取锁失败时,线程会进入运行状态【答案】:D

解析:synchronized获取锁失败时,线程会进入BLOCKED状态(阻塞等待),而非RUNNABLE(运行)状态。A正确,synchronized支持同一线程多次获取锁(可重入);B正确,可修饰实例方法、静态方法或代码块;C正确,JDK1.6引入锁优化机制(偏向锁→轻量级锁→重量级锁)。因此错误选项为D。52.在哈希表中,解决哈希冲突的常用方法不包括以下哪一项?

A.线性探测法

B.链地址法

C.二次探测法

D.快速排序【答案】:D

解析:本题考察哈希表冲突解决方法知识点。哈希冲突解决方法包括开放定址法(线性探测、二次探测等)和闭散列法(链地址法),而快速排序是排序算法,与哈希冲突无关,因此选D。53.在Java中,以下哪个集合类是线程安全的?

A.ArrayList

B.HashMap

C.Vector

D.HashSet【答案】:C

解析:本题考察Java集合框架的线程安全性。Vector是Java早期提供的线程安全集合,其方法通过synchronized修饰实现同步;而ArrayList、HashMap、HashSet均为非线程安全类,需手动加锁或使用并发集合(如CopyOnWriteArrayList)保证线程安全。54.以下哪种进程调度算法可能导致进程饥饿现象?

A.先来先服务(FCFS)

B.短作业优先(SJF)

C.时间片轮转(RR)

D.多级反馈队列调度【答案】:B

解析:本题考察进程调度算法特性。A:FCFS可能导致长作业等待,但不会完全饥饿;B:SJF(非抢占式)若持续有短作业到达,长作业会被持续延迟,最终无法执行(饥饿);C:RR中进程轮流获得时间片,无饥饿;D:多级反馈队列通过动态调整优先级,避免饥饿。55.TCP三次握手的主要目的是以下哪一项?

A.同步双方的TCP序列号初始值

B.同步双方的TCP窗口大小

C.防止已失效的连接请求报文导致服务器资源浪费

D.建立可靠的传输层连接并同步数据传输速率【答案】:C

解析:本题考察TCP连接建立过程,正确答案为C。三次握手的核心是确认双方收发能力:客户端发送SYN(同步序列编号),服务端回复SYN+ACK(确认接收并同步自身序列),客户端再回ACK(确认服务端序列)。选项A(仅同步序列号)不完整,三次握手还需确认服务端接收能力;选项B(窗口大小)在后续的ACK报文中携带,非三次握手目的;选项D(同步数据传输速率)是应用层协议(如HTTP)或流量控制的功能,TCP三次握手仅建立连接,不涉及速率同步。56.在MySQL中,关于组合索引(联合索引)的最左前缀原则,以下说法正确的是?

A.只能使用组合索引的最左边列进行查询优化

B.可以使用组合索引中任意连续的前缀列进行查询优化

C.组合索引的顺序不影响查询优化效果

D.组合索引的所有列都必须出现在WHERE条件中才能优化【答案】:B

解析:本题考察MySQL组合索引的最左前缀原则知识点。最左前缀原则是指组合索引的查询优化仅能从最左列开始匹配,且需为连续的前缀列,例如(a,b,c)索引可优化查询条件为a、a+b、a+b+c,无法单独使用b或c。A选项错误,因为允许使用连续前缀列而非仅最左列;C选项错误,组合索引顺序会影响效果(如(a,b)与(b,a)索引适用场景不同);D选项错误,WHERE条件中只需包含连续的最左前缀列即可,无需所有列。57.在MySQL的InnoDB存储引擎中,关于聚簇索引(ClusteredIndex)的说法,正确的是?

A.聚簇索引的叶子节点存储的是数据行本身

B.一个表只能有一个聚簇索引

C.聚簇索引必须是主键索引

D.以上说法都正确【答案】:D

解析:本题考察数据库索引(InnoDB聚簇索引)的核心特性。InnoDB的聚簇索引与表数据物理存储顺序一致,其叶子节点直接存储完整数据行(选项A正确);InnoDB表只能有一个聚簇索引(通常为主键索引,若未定义主键则使用唯一非空索引,无则隐式生成)(选项B正确);聚簇索引默认由主键索引实现,若未定义主键,InnoDB会选择唯一非空索引作为聚簇索引,否则自动生成隐藏主键,因此聚簇索引必须关联主键或等效唯一键(选项C正确)。综上,A、B、C均正确,答案为D。58.Java的HashMap在解决哈希冲突时采用的方法是?

A.线性探测法

B.链地址法(拉链法)

C.二次探测法

D.再哈希法【答案】:B

解析:本题考察哈希表冲突解决方法。Java的HashMap采用链地址法(拉链法),将哈希值相同的元素存储在同一个链表中;线性探测法和二次探测法属于开放定址法,可能导致堆积问题;再哈希法通过多个哈希函数计算不同地址,但实现复杂且不常用。因此正确答案为B。59.Java语言中,垃圾回收机制(GC)的主要作用是?

A.自动管理内存,释放不再使用的对象

B.优化CPU使用效率,减少计算资源浪费

C.提高程序执行速度,避免内存访问延迟

D.防止内存泄漏并保证线程安全【答案】:A

解析:本题考察Java基础知识点。JavaGC的核心功能是自动识别并释放不再被引用的对象内存,解决手动内存管理的复杂性和内存泄漏问题。选项B错误,GC不直接优化CPU使用;选项C错误,GC主要影响内存分配而非执行速度;选项D错误,线程安全与GC无直接关联(GC通过安全点机制保证线程安全,但非核心作用)。因此正确答案为A。60.在Java的HashMap实现中,解决哈希冲突的主要方法是?

A.链地址法(数组+链表/红黑树)

B.开放寻址法(线性探测)

C.再哈希法(二次哈希)

D.公共溢出区法【答案】:A

解析:本题考察Java哈希表(HashMap)的实现原理。Java的HashMap采用数组+链表/红黑树的结构解决哈希冲突,当多个键哈希到同一数组索引时,通过链表或红黑树将冲突元素串联,因此A正确。B选项的开放寻址法(如线性探测)常见于C++的unordered_map或Redis的简单实现,Java的HashMap未采用;C选项再哈希法(不同哈希函数计算新地址)和D选项公共溢出区法(主表+溢出表分离)多用于其他哈希表设计,非JavaHashMap的主流实现。61.以下Java集合类中,默认是线程安全的是?

A.ArrayList

B.Vector

C.HashMap

D.LinkedList【答案】:B

解析:本题考察Java集合框架的线程安全特性。Vector是Java早期提供的线程安全集合类,其add、get等方法通过synchronized修饰保证线程安全;而ArrayList、LinkedList、HashMap均为非线程安全类,需额外通过Collections.synchronizedList或ConcurrentHashMap等实现线程安全。因此选项A、C、D错误,正确答案为B。62.数据库事务的ACID特性中,“I”指的是?

A.原子性(Atomicity)

B.一致性(Consistency)

C.隔离性(Isolation)

D.持久性(Durability)【答案】:C

解析:本题考察数据库事务ACID的定义。ACID分别对应:原子性(A)、一致性(C)、隔离性(I)、持久性(D)。“I”即隔离性,指多个事务并发执行时互不干扰。A为原子性,B为一致性,D为持久性,均不符合“I”的定义。63.以下关于TCP和UDP协议的描述,错误的是?

A.TCP提供可靠的字节流传输

B.UDP是面向无连接的传输层协议

C.TCP头部包含源端口和目的端口

D.UDP具有确认机制和重传机制【答案】:D

解析:本题考察TCP与UDP协议的核心区别。TCP是面向连接、可靠的字节流传输协议,提供确认、重传、拥塞控制等机制;UDP是无连接、不可靠的传输层协议,不具备确认机制和重传机制。选项D描述错误,正确答案是D。64.在分布式系统中,采用一致性哈希算法的主要目的是?

A.提高数据读取的速度

B.减少数据迁移时的负载

C.确保数据存储的安全性

D.简化节点故障检测的流程【答案】:B

解析:本题考察一致性哈希的核心作用。一致性哈希将节点和数据映射到环形空间,当节点增减时,仅需重新映射少量数据(原属于相邻节点的数据迁移),从而降低数据迁移对系统的负载;A选项“提高读取速度”与哈希算法的映射逻辑无关;C、D选项并非一致性哈希的设计目标。因此正确答案为B。65.数据库事务的哪个特性保证了事务中的所有操作要么全部完成,要么全部不执行,不会出现部分完成的中间状态?

A.原子性(Atomicity)

B.一致性(Consistency)

C.隔离性(Isolation)

D.持久性(Durability)【答案】:A

解析:本题考察数据库事务ACID特性的知识点。原子性(Atomicity)定义事务是不可分割的工作单位,操作要么全部成功,要么全部失败,无中间状态;B选项一致性强调事务执行前后数据库完整性约束未被破坏;C选项隔离性指并发事务互不干扰;D选项持久性指事务提交后修改永久生效。因此正确答案为A。66.Redis中,若需频繁在列表两端进行插入和删除操作(如实现队列或栈),应优先选择哪种数据结构?

A.String

B.List

C.Set

D.SortedSet【答案】:B

解析:本题考察Redis数据结构的应用场景。Redis的List是双向链表实现,支持lpush/rpush(头部/尾部插入)、lpop/rpop(头部/尾部删除)等操作,时间复杂度均为O(1),非常适合频繁操作两端元素的场景(B正确)。A选项String仅存储简单值;C选项Set是无序的哈希表集合,无顺序;D选项SortedSet是有序集合,需通过score排序,不适合简单的队列/栈操作。67.以下排序算法中,平均时间复杂度为O(nlogn)的是?

A.冒泡排序

B.插入排序

C.快速排序

D.选择排序【答案】:C

解析:本题考察常见排序算法的时间复杂度。冒泡排序、插入排序、选择排序均属于简单排序算法,平均时间复杂度为O(n²)(最坏和平均情况均为O(n²));快速排序是分治思想的典型算法,平均时间复杂度为O(nlogn),最坏情况为O(n²)(但实际应用中通过优化可避免)。因此正确答案为C。68.TCP建立连接时,第三次握手的作用是?

A.同步序列号和确认号,确认客户端已准备好接收数据

B.同步客户端和服务器的初始序列号

C.传输数据并确认

D.关闭连接的确认【答案】:A

解析:TCP三次握手过程为:客户端发SYN(同步序列号)→服务器发SYN+ACK(同步双方序列号,确认客户端SYN)→客户端发ACK(确认服务器SYN+ACK)。第三次握手的ACK包同步了确认号(服务器的SYN+ACK已被确认),并完成双方接收数据准备,故A正确。B是前两次握手的作用;C错误,三次握手仅用于建立连接,不传输数据;D是四次挥手的功能。69.以下哪种进程调度算法可能导致低优先级进程长期无法执行?

A.先来先服务(FCFS)

B.短作业优先(SJF)

C.时间片轮转(RR)

D.优先级调度(非抢占式)【答案】:D

解析:本题考察进程调度算法的饥饿问题。非抢占式优先级调度中,若高优先级进程持续到达,低优先级进程可能永远无法获得CPU时间。选项A(FCFS)按到达顺序执行,无饥饿;选项B(SJF)短作业优先,长作业可能等待但非必然饥饿;选项C(RR)通过时间片轮转公平分配资源。故正确答案为D。70.二叉树的前序遍历(Pre-orderTraversal)的访问顺序是?

A.左子树→根节点→右子树

B.根节点→左子树→右子树

C.左子树→右子树→根节点

D.根节点→右子树→左子树【答案】:B

解析:本题考察二叉树遍历顺序。前序遍历定义为“根左右”,即先访问根节点,再递归遍历左子树,最后遍历右子树,因此B正确。A是中序遍历顺序,C是后序遍历顺序,D为错误的镜像遍历顺序。71.MySQLInnoDB中,关于聚簇索引的正确描述是?

A.叶子节点存储索引键值

B.一张表可存在多个聚簇索引

C.物理存储顺序与数据行顺序一致

D.仅用于主键字段【答案】:C

解析:InnoDB的聚簇索引物理存储顺序与数据行逻辑顺序一致,叶子节点直接存储完整数据行。A错误:聚簇索引叶子节点存数据行而非仅键值;B错误:一张表仅能有一个聚簇索引(通常为主键);D错误:聚簇索引可基于主键或唯一非空键定义,非仅主键。72.在以下哪种场景下,更适合使用UDP协议而非TCP协议?

A.即时通讯(IM)消息传输

B.大型文件完整传输

C.网页(HTTP)数据请求

D.远程服务器登录(SSH)【答案】:A

解析:UDP协议无连接、低延迟但不可靠,适合对实时性要求高且允许少量丢包的场景。即时通讯(A选项)需低延迟传输(如微信消息),UDP可提升速度;大型文件传输(B选项)需可靠重传,TCP更适合;网页请求(C选项)基于HTTP+TCP的可靠传输;远程登录(D选项)依赖SSH/TCP的可靠连接。73.在进程调度中,以下哪种算法可能导致进程饥饿现象?

A.先来先服务(FCFS)

B.短作业优先(非抢占式)

C.时间片轮转(RR)

D.最高优先级优先(非抢占式)【答案】:B

解析:短作业优先(B选项,非抢占式)若持续有短作业到达,长作业将长期等待CPU资源,导致饥饿;FCFS(A)按到达顺序调度,无饥饿;RR(C)通过时间片轮转保证公平性;非抢占式HPF(D)若优先级固定且无更高优先级进程,不会导致饥饿。74.在MySQL中,以下哪种操作会导致索引失效?

A.使用函数对索引列进行操作(如SUBSTRING(name,1,3)='abc')

B.使用LIKE'%abc'(以%开头)

C.使用不等于操作符(!=或<>)

D.以上都是【答案】:D

解析:本题考察MySQL索引失效的常见场景。A选项中,对索引列应用函数(如SUBSTRING、UPPER等)会导致索引失效,MySQL无法通过函数结果反推原列值;B选项中,LIKE'%abc'以%开头时,索引无法覆盖前缀匹配,导致全表扫描;C选项中,使用!=或<>操作符(尤其是在B-Tree索引中)会跳过索引范围查询,触发全表扫描。因此A、B、C均会导致索引失效,正确答案为D。75.在以下哪种场景中,通常选择使用UDP协议而不是TCP?

A.文件传输

B.实时视频会议

C.电子邮件发送

D.网页浏览【答案】:B

解析:本题考察TCP与UDP协议特性知识点。UDP协议无连接、不可靠但低延迟,适合对实时性要求高且允许少量丢包的场景。实时视频会议需低延迟传输,少量数据包丢失不影响体验,故选UDP。A文件传输需可靠传输,选TCP;C电子邮件(SMTP)和D网页浏览(HTTP/HTTPS)均依赖TCP的可靠性。故正确答案为B。76.在计算机网络中,HTTPS协议相比HTTP协议,主要通过以下哪种方式提升数据传输安全性?

A.直接使用非对称加密算法(如RSA)加密所有数据

B.使用对称加密算法(如AES)加密所有数据,并用非对称加密算法交换对称密钥

C.通过数字签名验证数据完整性,不涉及加密

D.仅在传输层使用SSL协议加密,应用层仍明文传输【答案】:B

解析:本题考察HTTPS的加密原理。正确答案为B。分析:HTTPS基于HTTP+TLS/SSL协议,核心是‘对称加密+非对称加密’结合:先用非对称加密(如RSA)交换会话密钥(对称密钥),后续数据用对称加密(如AES)传输。此方案既保证密钥交换安全(非对称加密),又通过对称加密提升效率。选项A错误(非对称加密速度慢,无法直接加密大量数据);选项C错误(HTTPS不仅验证完整性,还通过加密保护数据);选项D错误(HTTPS全程加密,包括应用层数据)。77.TCP三次握手的第三次握手的主要目的是?

A.同步双方的序列号

B.建立客户端到服务器的连接

C.确认服务器已收到客户端的SYN包

D.同步双方的确认号【答案】:A

解析:本题考察TCP三次握手机制知识点。三次握手过程为:1)客户端发送SYN包(同步序列号);2)服务器回送SYN+ACK包(同步服务器序列号并确认客户端SYN);3)客户端发送ACK包(确认服务器序列号并同步自身序列号)。第三次握手的核心是同步双方序列号,完成双向确认。B选项“建立连接”是整体目标,非第三次的具体目的;C是第二次握手的作用;D“确认号”在第三次握手时主要用于确认服务器的SYN+ACK,而非同步确认号本身。78.Java中,以下哪种垃圾回收算法主要用于新生代对象的回收,通过将存活对象复制到另一块内存空间实现?

A.标记-清除算法

B.标记-复制算法

C.标记-整理算法

D.分代收集算法【答案】:B

解析:本题考察Java垃圾回收算法的应用场景。选项A标记-清除算法会产生内存碎片,主要用于老年代;选项B标记-复制算法将新生代内存分为两块,存活对象复制到空闲块,回收原块,适用于新生代对象存活率低的特点;选项C标记-整理算法通过移动存活对象减少碎片,用于老年代;选项D分代收集是组合算法(新生代用标记-复制,老年代用标记-整理),非单一算法名称。因此正确答案为B。79.以下关于快速排序算法的平均时间复杂度,正确的是?

A.O(n)

B.O(nlogn)

C.O(n²)

D.O(n²logn)【答案】:B

解析:本题考察排序算法的时间复杂度,正确答案为B。快速排序是一种分治算法,通过选择基准元素将数组分为两部分,平均情况下递归树的深度为logn,每一层的操作时间为O(n),因此平均时间复杂度为O(nlogn)。选项A(O(n))是线性时间复杂度,常见于线性遍历(如桶排序);选项C(O(n²))是快速排序的最坏时间复杂度(当数组已排序且基准选择不当);选项D(O(n²logn))为错误组合,不存在此类典型排序算法的复杂度。80.以下关于Java中ArrayList和LinkedList的说法,错误的是?

A.ArrayList在尾部添加元素的时间复杂度通常为O(1)

B.LinkedList在中间插入元素需先定位节点,时间复杂度O(n)

C.频繁头部插入操作时,LinkedList比ArrayList更高效

D.ArrayList的底层是链表实现,LinkedList的底层是数组实现【答案】:D

解析:本题考察Java集合框架知识点。ArrayList底层是动态数组(Object[]),LinkedList底层是双向链表(Node节点)。A正确:ArrayList尾部添加元素默认无需扩容时为O(1);B正确:LinkedList中间插入需遍历找到前驱节点,时间复杂度O(n);C正确:LinkedList头部插入仅需修改指针,而ArrayList需移动后续元素;D错误,两者底层结构描述颠倒。故正确答案为D。81.根据CAP理论,在分布式系统中,若需同时满足“数据一致性”和“分区容错性”,则必须牺牲哪个特性?

A.数据一致性

B.可用性

C.分区容错性

D.以上都不牺牲【答案】:B

解析:本题考察CAP理论的核心结论。CAP理论指出分布式系统无法同时满足一致性(所有节点数据相同)、可用性(节点响应请求)、分区容错性(网络分区时系统仍能运行)。由于网络分区不可避免(P是分布式系统的基本要求),系统必须在C和A中选择其一:选择CP(一致性+分区容错)时,牺牲可用性(如ZooKeeper);选择AP(可用性+分区容错)时,牺牲一致性(如大部分NoSQL数据库)。题目要求同时满足C和P,因此必须牺牲A(可用性)。正确答案为B。82.在网络编程中,关于TCP和UDP协议的描述,以下哪项是错误的?

A.TCP是面向连接的可靠传输协议

B.UDP是无连接的不可靠传输协议

C.TCP适用于对实时性要求较高的场景(如视频通话)

D.UDP头部开销较小,常用于即时通讯场景【答案】:C

解析:本题考察TCP与UDP的核心特性。TCP(A)是面向连接、可靠的字节流传输协议,通过三次握手建立连接并提供重传机制;UDP(B)是无连接、不可靠的数据报传输协议,无需建立连接且不保证数据完整性;C选项错误,因为TCP的可靠传输依赖重传和拥塞控制,实时性较差,而视频通话等场景更适合UDP(D正确,UDP头部仅8字节,开销小,适合即时通讯)。因此错误选项为C。83.数据库事务的ACID特性中,‘原子性(Atomicity)’指的是?

A.事务中的操作要么全部成功,要么全部失败

B.事务执行期间其他事务无法干扰

C.事务执行后的数据状态保持一致

D.事务执行结果能永久保存【答案】:A

解析:本题考察数据库事务ACID特性的定义。A正确,原子性(Atomicity)要求事务是不可分割的最小执行单元,要么全部执行成功,要么全部回滚;B是隔离性(Isolation)的定义;C是一致性(Consistency)的定义;D是持久性(Durability)的定义。84.在MySQL的InnoDB存储引擎中,二级索引(非主键索引)的叶子节点主要存储的数据是?

A.整行数据

B.主键值

C.表的元数据信息

D.指向数据页的文件指针【答案】:B

解析:本题考察InnoDB索引结构。InnoDB中,主键索引(聚簇索引)的叶子节点直接存储整行数据,而二级索引(非主键索引)的叶子节点存储对应的主键值,通过主键值回表查询整行数据。因此B正确。A错误,整行数据是主键索引叶子节点的内容;C错误,表的元数据存储在系统表中;D错误,二级索引不直接存储文件指针,而是通过主键值关联。85.用户在浏览器中输入URL后,服务器返回403Forbidden状态码,这通常表示什么?

A.请求的资源不存在

B.服务器内部错误

C.服务器拒绝了该请求

D.请求的资源需要身份验证【答案】:C

解析:本题考察HTTP状态码的含义。403Forbidden表示服务器理解请求,但拒绝执行,常见于权限不足场景。A选项对应404NotFound,B对应500InternalServerError,D选项通常对应401Unauthorized(未认证)或407ProxyAuthenticationRequired(代理认证)。86.以下哪种排序算法的平均时间复杂度为O(nlogn)?

A.冒泡排序

B.快速排序

C.插入排序

D.选择排序【答案】:B

解析:本题考察排序算法的时间复杂度知识点。冒泡排序(A)、插入排序(C)和选择排序(D)的平均时间复杂度均为O(n²);快速排序(B)的平均时间复杂度为O(nlogn),最坏情况为O(n²)。因此正确答案为B。87.在分布式系统中,CAP定理指出系统无法同时满足三个特性,以下哪一项不属于CAP定理中的三个特性?

A.一致性(Consistency)

B.可用性(Availability)

C.分区容错性(PartitionTolerance)

D.高性能(HighPerformance)【答案】:D

解析:本题考察分布式系统CAP定理知识点。CAP定理中三个核心特性为:C(Consistency,一致性):所有节点同时看到相同的数据;A(Availability,可用性):系统提供及时响应;P(PartitionTolerance,分区容错性):系统在网络分区时仍能运行。D选项“高性能”不属于CAP定理的核心特性,属于系统性能优化范畴。因此正确答案为D。88.以下哪种排序算法是稳定的?

A.快速排序

B.归并排序

C.堆排序

D.希尔排序【答案】:B

解析:本题考察排序算法的稳定性。稳定排序指相等元素在排序前后的相对顺序保持不变。选项A快速排序通过分区交换实现,相等元素可能因分区操作交换位置,不稳定;选项B归并排序在合并两个有序子数组时,若左数组元素等于右数组元素,可保留左数组元素的原顺序,因此是稳定排序;选项C堆排序通过堆调整实现,相等元素的相对顺序可能改变,不稳定;选项D希尔排序是插入排序的改进,因步长分组可能破坏相等元素顺序,不稳定。正确答案为B。89.在MySQL中,关于B+树索引的描述,以下哪项是正确的?

A.B+树索引的叶子节点不存储数据记录,只存储指针

B.B+树索引是聚簇索引,叶子节点直接包含数据

C.每个表只能有一个B+树索引

D.B+树索引只能用于主键列【答案】:A

解析:本题考察数据库索引结构(B+树)知识点。InnoDB存储引擎中,B+树索引分为聚簇索引(主键索引)和二级索引(非主键索引)。A选项正确:二级索引的叶子节点仅存储主键值(指针),而聚簇索引的叶子节点直接包含数据;B选项错误:只有聚簇索引的叶子节点包含数据,二级索引不包含;C选项错误:一个表可包含多个B+树索引(如主键索引和多个二级索引);D选项错误:B+树索引可用于非主键列(如二级索引)。因此正确答案为A。90.TCP三次握手过程中,客户端发送的SYN报文的核心作用是?

A.建立TCP连接的初始请求

B.确认服务端已接收数据

C.同步双方的序列号初始值

D.终止当前TCP连接【答案】:C

解析:本题考察TCP协议三次握手的机制。TCP三次握手第一步(SYN)的核心是客户端向服务端发送初始序列号(ISN),服务端通过SYN+ACK回复自己的ISN,最终完成双方序列号同步,因此C正确。A选项是三次握手的整体目标(建立连接),但SYN报文本身仅负责同步序列号;B选项的“确认接收”由ACK报文完成,非SYN功能;D选项是四次挥手(FIN+ACK)的内容,与SYN无关。91.以下哪种排序算法的平均时间复杂度为O(nlogn)?

A.快速排序

B.冒泡排序

C.选择排序

D.插入排序【答案】:A

解析:本题考察排序算法的时间复杂度特性。快速排序的平均时间复杂度为O(nlogn),最坏情况下为O(n²);而冒泡排序、选择排序、插入排序的平均时间复杂度均为O(n²)。因此正确答案为A。92.在MySQL中,关于复合索引的最左前缀匹配原则,以下说法错误的是?

A.复合索引(a,b,c),仅查询条件包含a时,可使用索引

B.复合索引(a,b,c),仅查询条件包含b时,可使用索引

C.复合索引(a,b,c),仅查询条件包含a和b时,可使用索引

D.复合索引(a,b,c),仅查询条件包含a、b、c时,可使用索引【答案】:B

解析:本题考察MySQL复合索引的最左前缀匹配规则。最左前缀匹配原则要求索引查询必须从最左侧列开始,不可跳过左侧列直接使用右侧列。A选项正确:复合索引(a,b,c)包含最左列a,可通过a定位到对应哈希桶,进而匹配后续列。B选项错误:仅包含b时,不满足最左前缀(跳过了a),无法使用索引。C选项正确:包含a和b时,满足最左两列,可使用索引。D选项正确:包含全列时,自然满足最左前缀,可完全使用索引。因此错误选项为B。93.在操作系统进程调度中,可能导致“饥饿”现象的调度算法是?

A.先来先服务(FCFS)

B.短作业优先(SJF,非抢占式)

C.时间片轮转(RR)

D.非抢占式优先级调度【答案】:D

解析:本题考察进程调度算法的饥饿问题。非抢占式优先级调度中,若高优先级进程持续到达,低优先级进程将长期无法获得CPU时间片,导致**饥饿**。A错误:FCFS可能因长作业导致短作业等待,但短作业最终会执行;B错误:非抢占式SJF若短作业持续到达,长作业可能等待,但饥饿概率低于D;C错误:RR通过时间片轮转,每个进程公平获得CPU,不会出现饥饿。94.以下哪个场景最适合使用Redis作为缓存?

A.存储用户购物车信息,需高频读写且实时性要求高

B.存储大量历史订单数据,需长期保留且查询条件复杂

C.存储用户个人信息(姓名、年龄),需严格事务一致性

D.存储大型文件(如视频、图片),需快速随机访问【答案】:A

解析:本题考察Redis的典型应用场景。Redis适合高频读写、数据量小、内存存储的场景(如购物车)。B选项历史订单量大且查询复杂,适合数据库+分表;C选项事务一致性高的场景需数据库事务;D选项文件存储适合对象存储(如腾讯云COS),Redis内存有限且不适合大文件。95.以下关于TCP和UDP的描述中,错误的是?

A.TCP是面向连接的,UDP是无连接的

B.TCP提供可靠传输,UDP提供不可靠传输

C.TCP头部开销较小,UDP头部开销较大

D.TCP适用于需要可靠传输的场景(如文件传输),UDP适用于实时性要求高的场景(如视频通话)【答案】:C

解析:本题考察TCP与UDP的核心区别。TCP是面向连接的可靠传输协议(如三次握手建立连接),UDP是无连接的不可靠传输协议(A、B正确)。TCP头部固定20字节(不含选项),UDP头部仅8字节,因此“TCP头部开销较小,UDP头部开销较大”描述错误(C错误)。D选项符合两者典型应用场景,正确。96.以下哪种SQL操作可能导致索引失效?

A.SELECT*FROMtableWHEREid=1;

B.SELECT*FROMtableWHEREnameLIKE'张%';

C.SELECT*FROMtableWHEREage>18ANDname='张三';

D.SELECT*FROMtableWHERESUBSTRING(name,1,1)='张';【答案】:D

解析:本题考

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论