中电金信25/3/18面前笔试(需求分析岗+数据开发岗)

部分相同题目在第二次数据开发岗中不做解析,本次解析来源于豆包AI,正确与否有待商榷,本文只提供一个速查与知识点的补充。

一、需求分析

第1题,单选题,Hadoop的核心组件包括HDFS和以下哪个?

MapReduce

Spark

Storm

Flink

解析:Hadoop 的核心组件是 HDFS(分布式文件系统)和 MapReduce(分布式计算框架)。Spark、Storm、Flink 虽然也是大数据处理相关技术,但并非 Hadoop 的核心组件。

第2题,单选题,在 SQL 语言的 SELECT 语句中,能实现投影操作的是

SELECT

FROM

WHERE

GROUP BY

解析:在 SQL 的 SELECT 语句中,SELECT 子句用于指定要查询的列,实现投影操作,即选择显示哪些列。FROM 子句指定数据来源表;WHERE 子句用于筛选行;GROUP BY 用于分组。

第3题,单选题,下列聚合函数中不忽略空值(null)的是

SUM(列名)

MAX(列名)

AVG(列名)

COUNT(*)

解析:SUM(列名)、MAX(列名)、AVG(列名) 在计算时会忽略空值,而 COUNT(*) 统计的是所有行的数量,包括含有空值的行,不忽略空值。

第4题,单选题,下列的SQL语句中,不是数据定义语句的是

CREATE TABLE

DROP VIEW

CREATE VIEW

GRANT

解析:CREATE TABLE 用于创建表,DROP VIEW 用于删除视图,CREATE VIEW 用于创建视图,它们都属于数据定义语句(DDL)。而 GRANT 用于授予用户权限,属于数据控制语句(DCL)。

第5题,单选题,聚合函数用法正确的是

SUM(*)

COUNT(*)

MAX(*)

AVG(*)

解析:SUM、MAX、AVG 等聚合函数需要指定具体列名进行计算,不能使用 *。COUNT(*) 用于统计所有行的数量,用法正确。

第6题,单选题,下列选项,与select * from a where data_dt between date'2015-01-01' and date'2015-01-31'语句等价的是

select * from a where data_dt >=date'2015-01-01' and data_dt < date'2015-01-31'

select * from a where data_dt > date'2015-01-01' and data_dt < date'2015-01-31'

select * from a where data_dt > date'2015-01-01' and data_dt <= date'2015-01-31'

select * from a where data_dt >= date'2015-01-01' and data_dt <= date'2015-01-31'

解析:BETWEEN... AND... 操作符在 SQL 中包含边界值,即 data_dt 大于等于 2015 - 01 - 01 且小于等于 2015 - 01 - 31。

第7题,单选题,下列选项,与Select * from student where stu_no = 's101' Union Select * from student where stu_no = 's102'语句等价的是

select * from student where stu_no = 's101' and stu_no = 's102'

select * from student where stu_no = 's101' or stu_no = 's102'

select * from student where stu_no = 's101'

select * from student where stu_no = 's102'

解析:UNION 操作符用于合并两个或多个 SELECT 语句的结果集,去除重复行,等价于 OR 逻辑关系。

第8题,单选题,查询书籍(book)表中书名含有"数据库"的图书信息,正确的选项是

Select * from book where bname = '数据库'

Select * from book where bname like '数据库'

Select * from book where bname like '数据库'

Select * from book where bname like '%数据库%'

解析:要查询书名含有 "数据库" 的图书信息,需使用 LIKE 关键字和通配符 %,% 表示任意字符序列(包括空字符序列),bname like '%数据库%' 表示 bname 中包含 "数据库"。

第9题,单选题,给出A(ID,DES),B(ID,DES)相同结构的两张表,查询出ID(同一张表中不重复)在A表中同时不在B表中的数据,下列选项中不正确的是

select a.id from a a where a.id not in (select b.id from b b)

select a.id from a a where a.id not exists (select 1 from b b where a.id = b.id)

select a.id from a a minus select b.id from b b

select a.id from a a full join b b on a.id = b.id where b.id is not null

解析:FULL JOIN 是全连接,会返回左表和右表的所有行,where b.id is not null 不能正确筛选出只在 A 表中且不在 B 表中的数据。select a.id from a a where a.id not in (select b.id from b b)、select a.id from a a where a.id not exists (select 1 from b b where a.id = b.id) 以及在支持 MINUS 操作符的数据库中 select a.id from a a minus select b.id from b b 都能实现该功能。

第10题,多选题,以下哪些技术属于大数据技术栈?

Hadoop

Kafka

MongoDB

Elasticsearch

解析:Hadoop 是大数据处理框架;Kafka 是分布式消息队列,常用于大数据流处理;MongoDB 是 NoSQL 数据库,适合存储和处理海量数据;Elasticsearch 是分布式搜索引擎,常用于大数据的全文检索和分析,它们都属于大数据技术栈。

第11题,多选题,Spark中,以下哪些组件是Spark核心库的一部分?

Spark SQL

Spark Streaming

MLlib

Flink

解析:Spark SQL 用于处理结构化数据,Spark Streaming 用于实时流处理,MLlib 用于机器学习,它们都是 Spark 核心库的一部分。而 Flink 是另一个独立的流批一体化计算框架,不属于 Spark 核心库。

第12题,多选题,在SQL中,以下哪些语句用于修改数据库中的数据?

INSERT

UPDATE

DELETE

TRUNCATE

DROP

解析:INSERT 用于插入新数据;UPDATE 用于更新现有数据;DELETE 用于删除数据;TRUNCATE 用于删除表中的所有数据,它们都用于修改数据库中的数据。DROP 用于删除数据库对象(如表、视图等),并非直接修改数据。

第13题,多选题,在SQL中,以下哪些命令用于控制事务?

BEGIN TRANSACTION

COMMIT

ROLLBACK

SAVEPOINT

SET TRANSACTION

解析:BEGIN TRANSACTION 开始一个事务;COMMIT 提交事务,使事务中的所有更改永久化;ROLLBACK 回滚事务,撤销事务中的所有更改;SAVEPOINT 在事务中设置保存点,以便部分回滚;SET TRANSACTION 设置事务的特性,它们都用于控制事务。

二、数据开发

第1题,单选题,以下哪个关键字用于声明泛型?

final

static

abstract

extends

解析: final用于声明常量、不可变的类或方法;static用于声明静态成员;abstract用于声明抽象类或抽象方法;extends用于类继承或泛型上限限定(如T extends Number),但都不是声明泛型本身的关键字。

第2题,单选题,在Java中,哪个类提供了线程安全的HashMap实现?

Hashtable

ConcurrentHashMap

Collections.synchronizedMap

AtomicHashMap

解析:Hashtable 是线程安全的哈希表,但性能在高并发场景下不如 ConcurrentHashMap。ConcurrentHashMap 采用分段锁机制,允许多个线程同时访问不同段的数据,提高了并发性能。Collections.synchronizedMap 是通过包装普通 Map 来实现线程安全,但内部使用的是全局锁,性能相对较低。Java 中没有 AtomicHashMap 这个类。

第3题,单选题,以下哪个方法用于启动一个线程?

start()

run()

main()

execute()

解析:在 Java 中,start() 方法用于启动一个新线程,它会让线程进入就绪状态,等待 CPU 调度执行 run() 方法中的代码。run() 方法包含了线程要执行的具体逻辑,但直接调用 run() 方法不会启动新线程,而是在当前线程中执行。main() 是 Java 程序的入口方法。execute() 一般不是启动线程的标准方法(在 ExecutorService 中有 execute 方法用于提交任务到线程池执行,但不是启动单个线程的方式)。

第4题,单选题,在Java中,try-catch-finally语句块中,哪个部分可以省略?

try

catch

finally

都可以

解析:在 try - catch - finally 语句块中,try 块是必须存在的,用于包含可能会抛出异常的代码。finally 块可选,无论 try 块中是否抛出异常,finally 块中的代码通常都会执行(除非在 try 或 catch 块中执行了 System.exit())。catch 块用于捕获并处理 try 块中抛出的异常,可以省略,如果省略则 try 块中抛出的异常会向上层调用栈传递。

第5题,单选题,Hadoop的核心组件包括HDFS和以下哪个?

MapReduce

Spark

Storm

Flink

解析:Hadoop 的核心是 HDFS(Hadoop 分布式文件系统)和 MapReduce(分布式计算框架)。Spark、Storm 和 Flink 虽然也用于大数据处理,但并非 Hadoop 的核心组件。

第6题,单选题,在 SQL 语言的 SELECT 语句中,能实现投影操作的是

SELECT

FROM

WHERE

GROUP BY

第7题,单选题,下列聚合函数中不忽略空值(null)的是

SUM(列名)

MAX(列名)

AVG(列名)

COUNT(*)

第8题,单选题,下列的SQL语句中,()不是数据定义语句。

CREATE TABLE

DROP VIEW

CREATE VIEW

GRANT

第9题,单选题,聚合函数用法正确的是

SUM(*)

COUNT(*)

MAX(*)

AVG(*)

第10题,单选题,下列选项,与select * from a where data_dt between date'2015-01-01' and date'2015-01-31'语句等价的是

select * from a where data_dt >=date'2015-01-01' and data_dt < date'2015-01-31'

select * from a where data_dt > date'2015-01-01' and data_dt < date'2015-01-31'

select * from a where data_dt > date'2015-01-01' and data_dt <= date'2015-01-31'

select * from a where data_dt >= date'2015-01-01' and data_dt <= date'2015-01-31'

第11题,单选题,下列选项,与Select * from student where stu_no = 's101' Union Select * from student where stu_no = 's102' 语句等价的是

select * from student where stu_no = 's101' and stu_no = 's102'

select * from student where stu_no = 's101' or stu_no = 's102'

select * from student where stu_no = 's101'

select * from student where stu_no = 's102'

第12题,单选题,查询书籍(book)表中书名含有"数据库"的图书信息,正确的选项是

Select * from book where bname = '数据库'

Select * from book where bname like '数据库'

Select * from book where bname like '数据库'

Select * from book where bname like '%数据库%'

第13题,单选题,给出A(ID,DES),B(ID,DES)相同结构的两张表,查询出ID(同一张表中不重复)在A表中同时不在B表中的数据,下列选项中不正确的是

select a.id from a a where a.id not in (select b.id from b b)

select a.id from a a where a.id not exists (select 1 from b b where a.id = b.id)

select a.id from a a minus select b.id from b b

select a.id from a a full join b b on a.id = b.id where b.id is not null

第14题,多选题,Java 8中引入了哪些新特性? ------仅数据开发

Lambda表达式

Stream API

Optional类

泛型擦除

解析:Java 8 引入了 Lambda 表达式,简化了匿名内部类的写法,使代码更简洁;Stream API 用于处理集合数据,提供了丰富的操作方法;Optional 类用于解决空指针异常问题。泛型擦除是 Java 泛型的一个特性,在 Java 8 之前就存在,并非 Java 8 新特性。

第15题,多选题,以下哪些技术属于大数据技术栈?

Hadoop

Kafka

MongoDB

Elasticsearch

第16题,多选题,Spark中,以下哪些组件是Spark核心库的一部分?

Spark SQL

Spark Streaming

MLlib

Flink

第17题,多选题,在SQL中,以下哪些语句用于修改数据库中的数据?

INSERT

UPDATE

DELETE

TRUNCATE

DROP

第18题,多选题,在SQL中,以下哪些命令用于控制事务?

BEGIN TRANSACTION

COMMIT

ROLLBACK

SAVEPOINT

SET TRANSACTION

相关推荐
COLDEHY4 分钟前
vue 中常用操作数组的方法
前端·javascript·vue.js
Honeysea_706 分钟前
php的用途和基础语法【初学者进】
开发语言·前端·php
庸俗今天不摸鱼10 分钟前
【万字总结】前端全方位性能优化指南(五)——HTTP/3+QUIC、0-RTT会话恢复、智能压缩决策树
前端·性能优化·http3
予安灵17 分钟前
Vue.js 的计算属性和侦听器:提升数据处理与交互的关键工具
前端·javascript·vue.js·前端框架·计算属性·监听器
祈澈菇凉18 分钟前
解释 一下什么是 React 的 useRef Hook
前端·javascript·react.js
浪裡遊19 分钟前
uniapp特有生命周期钩子
前端·vue.js·uni-app
無名路人21 分钟前
electron-vite 使用 regedit 注册表库获取千牛安装路径
前端·vue.js·electron
盏灯23 分钟前
React 19 新特性详解:提升开发效率与性能
前端
打野赵怀真24 分钟前
Sass中什么是括号运算?
前端·javascript
打野赵怀真26 分钟前
写一个方法记录函数运行的时间
前端·javascript