JSDTN2303毕业分流考试-A卷副本
一、单项选择题(每题1分,共计30分)
1、如下哪个不是Java中有效的关键字? ( D )
A: const
B: null
C: super
D: TRUE
2、如下Java代码的运行结果( C )
Java |
A:0
B:2
C:10
D:4
试题来源:云灿信息
3、阅读如下代码,其运行结果正确的是?(D)
Java |
A:10,20
B:11,21
C:11,20
D:10,21
4、如下对于数组的定义说法正确的是?(A)
SQL |
A:1,2,3,4都正确(正确答案)
B:只有1,2正确
C:只有1正确
D:只有1,3正确
5、阅读如下代码,对运行结果说法正确的是:(D)
Java |
A:编译错误
B:11
C:12
D:13
试题来源:云灿信息笔试题
6、请指出以下代码的运行结果?(D)
SQL |
A:15,5,20
B:编译失败
C:15,5,15
D:运行时出现NullPointerException
7、以下程序在JDK1.8的环境下,描述正确的是( C )
Java |
A:10
B:20
C:编译失败
D:0
8、在使用super 和this关键字时,以下描述正确的是?(A)
A:假如有super()显式调用,则必须写在子类构造方法的第一行,否则编译不通过。
B:super()和this()不一定要放在构造方法内第一行
C:this()和super()可以同时出现在一个构造函数中
D:this()和super()可以在static方法中使用
9、以下代码,描述正确的有( A )
Java |
A:第1行错误,没有给变量赋值。
B:第2行错误,方法没有修饰符。
C:第3行错误,没有方法的实现。
D:第4行错误,没有实现接口的全部方法。
10、下面的程序输出的结果是?(D)
Java |
A:true,10,30
B:false,10,30
C:true,20,30
D:编译失败
11、如下代码运行时,正确的输出结果应该是什么?(D)
Java |
A:[100]
B:[100,100]
C:输出list对象地址
D:编译错误(正确答案)
12、在try-catch-finally语句块中,以下可以单独与finally一起使用的是( B )
A:catch
B:try
C:throws
D:throw
13、JDK8中如下代码的运行结果是?(A)
Java |
A:男士
B:女士
C:未知
D:编译错误
14、以下程序运行结果是( A )
Java |
A:编译报错
B :Exception finally 商是:0
C:finally商是:0
D:ArithmeticException finally 商是:0
15、阅读如下代码,给出正确运行结果?(C)
Java |
A:obj
B:编译错误
C:运行时会出现空指针异常
D:null
16、阅读如下代码,给出正确的输出结果。(B)
Java |
A:{A=100, B=200, C=300, D=400}
B:{A=100, C=300, D=400, B=200}
C:{B=200, A=100, D=400, C=300}
D:不确定
17、阅读如下代码,给出正确的输出结果。(A)
Java |
A:{A=100, B=500, C=300, D=400}
B:{A=100, C=300, D=400, B=500}
C:{B=500, A=100, D=400, C=300}
D:不确定
18、HashSet集合是的特点,描述正确的是( A )
A: HashSet集合是一个无序集合,不允许元素重复。
B: HashSet集合是一个无序集合,不允许元素重复。
C: HashSet集合是一个有序集合,允许元素重复。
D: HashSet集合是一个有序集合,不允许元素重复。
19、对以下程序说法正确的是?(D)
SQL |
A:程序会抛出RuntimeException
B:程序会抛出Exception
C:程序会抛出RuntimeException,Exception
D:编译失败(正确答案)
20、下列有关查询的说法中,错误的是( C )
A:GROUP BY子句用于对查询结果进行分组输出。
B:HAVING子句后面可以跟上统计函数。
C:子查询返回的是单个值,且不可以嵌套。
D:EXISTS子查询实际上不产生任何数据,只返回TRUE或FALSE值。
21、如下描述错误的是? ( C )
A:@FunctionalInterface 描述的是JDK8推出的函数式接口。
B:@FunctionalInterface 描述的接口中只能有一个抽象方法。
C:@FunctionalInterface 描述的接口中可以有多个抽象方法。
D:@FunctionalInterface 描述的接口中允许有静态方法。
22、阅读如下代码,正确的说法是?(C)
Java |
A:JDK8环境下编译失败。
B:输出的结果为 6
C:输出的结果为 4
D:输出的结果为 3
23、ISO-8859-1是用来拓展()编码的( C)
A: GBK
B: UTF-16
C: ASCII
D: GB2312
24、如下哪个算法不是缓存淘汰算法有?(D)
A:FIFO
B:LRU
C:LFU
D:FILO
25、Mybatis中哪个mybatis注解用于描述数据层方法参数( A )。
A:@Param
B:@RequestParam
C:@PathVariable
D:@Params
26、Mybatis中1对多关联查询中可以使用以下哪一项做结果映射( A )
A:resultMap
B:List
C:result
D:resultType
27、如下元素哪个不是MyBatis的动态SQL元素(B)
A:if
B:else
C:foreach
D:choose
28、Spring AOP 中环绕通知方法参数的类型只能是( B )
A:JoinPoint
B:ProceedingJoinPoint
C:PointCut
D:String
29、如下API中哪个是SpringMVC中的拦截器类型( C )
A:HandlerFilter
B:ControllerInterceptor
C:HandlerInterceptor
D:DispatcherInterceptor
30、MyBatis中#{}和${}表达式描述错误的是?(D)
A:#{}是mybatis参数占位符,运行时#{}会替换为?号。
B:#{}表达式应用在SQL参数中可以有效防止SQL注入。
C:${}应用于静态文本替换,就是字符串替换,有SQL注入风险。
D:${}用于替换SQL参数,可有效防止SQL注入。
二、多项目选择题(每题2分,共计30分)
1、在以下程序中的代码插入位置,插入哪行代码可以编译通过?(BD)
Java |
A:static void doSomething(int[] args){}
B:static void doSomething(int...args){}
C:static void doSomething(int...args,int x){}
D:static void doSomething(int x,int...args){}
2、下面语句中,表示过虑条件是vend_id=1002或vend_id=1003的是 ( AB )
A:select * from products where vend_id=1002 or vend_id=1003
B:select * from products where vend_id in (1002,1003);
C:select * from products where vend_id not in (1004,1005);
D:select * from products where vend_id=1002 and vend_id=1003
3、MyBatis框架说法正确的是?(ABD)
A:MyBatis是一个数据持久层框架,实现了对JDBC的封装,简化了JDBC代码的编写。
B:MyBatis支持动态SQL语句,用于更好适配需要的变更。
C:MyBatis支持不支持原生SQL,不便于DBA介入进行SQL调优。
D:MyBatis提供了缓存,延迟加载等特性可以更好提高查询效率。
4、MyBatis中获取insert操作时使用的自增主键值,说法正确的是?(ABD)
A:xml方式可以在insert元素中添加useGeneratedKeys和keyProperty属性
B:insert 操作执行完后主键值可以被设置到传入的参数对象中
C:MyBatis不支持获取自增主键值这种需求。
D:注解方式可以在@Options注解中添加useGeneratedKeys和keyProperty属性。
5、下面有关MyBatis拦截器说法正确的是?(ABCD)
A:@Signature注解用于定义要拦截哪个接口类型的哪个方法。
B:我们自定义MyBatis拦截器时,可以实现MyBatis的Interceptor接口并复写intercept()方法。
C:Mybatis拦截器可以对ParameterHandler、ResultSetHandler、StatementHandler、Executor这4种接口的方法进行拦截。
D:Mybatis使用JDK的动态代理,为需要拦截的接口生成代理对象以实现接口方法拦截功能。
6、MyBatis中的延迟加载说法正确的是?(ABCD)
A:Mybatis仅支持association关联对象和collection关联集合对象的延迟加载
B:MyBatis中的可以通过配置的方法启动和关闭延迟加载。
C:MyBatis中的延迟加载底层是通过CGLIB创建目标对象的代理对象实现的。
D:MyBatis中的延迟加载指的是何时需要何时加载。
7、Spring中用于描述Bean对象生命周期方法的注解是( AC )
A:@PostConstruct
B:@PostDestroy
C:@PreDestroy
D:@PreConstruct
8、下列哪些是Spring AOP的通知注解 ( BCD )
A:@Aspect
B:@Around
C:@Before
D:@After
9、下列关于Spring IOC说法正确的是 ( BC )
A:Spring懒加载模式默认是开启的。
B:Spring懒加载机制可以提升程序启动速度。
C:Spring懒加载机制可以提高内存使用效率。
D:Spring懒加载是多例的一种形式。
10、下列关于Spring AOP描述正确的是 ( ABCD )
A:Spring AOP中创建代理的方式有JDK代理和CGLIB代理。
B:Spring AOP中可以通过@Pointcut注解定义切入点表达式。
C:Spring Aop中可以通过@Aspect注解定义切面。
D:Spring Aop中连接点的类型为JointPoint类型。
11、如下SpringMVC注解中哪些注解用于描述控制层方法请求处理参数 ( ABC )
A:@RequestParam
B:@PathVariable
C:@RequestBody
D:@Param
12、有关索引说法正确的是?(ABCD)
A:索引(Index)是一种数据结构。
B:索引(Index)的优点是可以加大数据的检索速度。
C:索引的缺陷是需要占用物理空间(默认是以数据页进行存储),会降低增/改/删的执行效率。
D:MySQL索引对表中指定列进行排序后可以另外保存
13、下列有关通知方法描述正确的是?(ABCD)
A:@Around描述的通知方法优先级最高
B:@Before描述的方法在目标方法执行之前执行.
C:@AfterThrowing与@AfterReturning描述的方法不可能同时执行
D:@After描述方法无论是否出现异常都会执行.
14、Spring MVC中异常处理的方式是怎样的? (ABCD)
A:可以基于@ExcpetionHandler定义异常处理方法.
B:可以基于@RestControllerAdvice定义全局异常处理类
C:@ExcpetionHandler定义的异常处理方法可以直接写在@Controller描述的类中.
D:全局异常处理类中可以有多个异常处理方法.
15、如下哪些场景可以使用面向切面编程?(ABCD)
A:用户行为日志获取
B:事务的处理
C:鉴权操作
D:异步操作
三、简答题(共计4题,每题5分,20分)
1、说出几种常见的异常类型?(至少写出5个)
- NullPointerException: 空指针异常
- NoSuchMethodException:找不到方法
- IllegalArgumentException:不合法的参数异常
- IndexOutOfBoundException: 数组下标越界异常
- IOException:由于文件未找到、未打开或者I/O操作不能进行而引起异常
- ClassNotFoundException :找不到文件所抛出的异常
- NumberFormatException:字符的UTF代码数据格式有错引起异常;
- InterruptedException:线程中断抛出的异常
评分细则:每写出一个异常得1分(不限于只是上面的异常)
提交一个任务,线程池里存活的核心线程数小于线程数 corePoolSize 时,线程池 会创建一个核心线程去处理提交的任务。 如果线程池核心线程数已满,即线程数已经等于 corePoolSize,一个新提交的任 务,会被放进任务队列 workQueue 排队等待执行。 当线程池里面存活的线程数已经等于 corePoolSize 了,并且任务队列 workQueue 也满,判断线程数是否达到 maximumPoolSize,即最大线程数是否已满,如果 没到达,创建一个非核心线程执行提交的任务。 如果当前的线程数达到了 maximumPoolSize,还有新的任务过来的话,直接采 用拒绝策略处理。
2、描述一下数据库的三大设计范式以及特点?
范式是一种设计规范,一种关系模式,可以对表的设计起到一个指导性作用。
- 第一范式(1NF):字段不可再分(原子性)。例如姓名可再分为姓和名,这属于可再分。
- 第二范式(2NF): 首先要满足1NF,然后不存在非主键字段对主键字段的部分依赖。
- 第三范式(3NF): 首先要满足1NF,然后不存在非主键字段对主键字段的传递依赖。
评分细则:范式的定义正确得2分,每个范式的解释1分。
试题来源:用友
3、描述一下java中sleep()方法和wait()方法?
相同点:
- 它们都可以让线程进入休眠状态。
- 它们都可以响应 interrupt 中断(可以抛出 InterruptedException 异常)。
不同点:
- 所属类不同(wait 方法属于 Object 类的方法,而 sleep 属于 Thread 类的方法)
- 语法使用不同(sleep 可以单独使用,wait 方法必须配合 synchronized 一起使用,由对象锁调用)
- 唤醒方式不同( sleep 方法具有主动唤醒功能,而不传递任何参数的 wait 方法只能被动的被唤醒。)
- 释放锁不同(wait 方法会主动的释放锁,而 sleep 方法则不会)
评分细则:每个点1分【此题为中关村提交的面试题库中的题】。
4、描述一下Spring中@Autowired可以描述的元素以及底层依赖注入过程?
- @Autowired由spring框架定义,用于描述类中属性或相关方法(例如构造方法)。
- 使用@Autowired注解描述的属性或方法,可以按照指定规则为属性赋值(DI)。
- 基于@Autowired注解方式实现依赖注入,底层首先会检测容器中是否有与属性或方法参数类型相匹配的对象,假如有并且只有一个则直接注入。其次,假如检测到有多个,还会按照@Autowired描述的属性或方法参数名查找是否有名字匹配的对象,有则直接注入,没有则抛出异常。
- 假如我们有明确要求,必须要注入类型为指定类型,名字为指定名字的对象还可以使用@Qualifier注解对其属性或参数进行描述(此注解必须配合@Autowired注解使用)。
评分细则:第三项2分,其它每项1分。
四、程序编写题(共计3题,总计20分)
1、不用中间变量,实现int a,b两个变量值的交换。 (6分)
Java |
评分细则:3,4,5行每个步骤2分。
2、现有关系表R(ID,NAME),主键为ID,NAME为角色名。基于MySQL数据库写一个SQL从R表中删除name值重复的记录。(7分)
Java |
评分细则:写出思路(找name相同的id值,留一个最大的或最小的,其它的都删除)給3分,代码正确給4分。
3、现有雇员表EMP(ID,NAME,SALARY),主键为ID,NAME为雇员名,SALARY为薪资。基于MySQL数据库写一个SQL分别统计薪资大于10000的,薪资小于8000的雇员人数?(7分)
Java |
评分细则:写出思路(可以使用case when表达式,然后用sum函数求和或count函数统计)給3分,代码正确給4分。