Bootstrap

每日一练@

题目

选自牛客网

1.关于AOP错误的是?

A.AOP将散落在系统中的“方面”代码集中实现
B.AOP有助于提高系统可维护性
C.AOP已经表现出将要替代面向对象的趋势
D.AOP是一种设计模式,Spring提供了一种实现

选项C “AOP已经表现出将要替代面向对象的趋势” 是错误的。

AOP(面向切面编程)是一种编程范式,它允许开发者将横切关注点(如日志记录、事务管理等)与业务逻辑分离,从而提高代码的模块化和可维护性。AOP
不是设计模式,而是一种编程技术,它通常与面向对象编程(OOP)结合使用,而不是替代它。

以下是对其他选项的简要说明:

A. AOP确实将散落在系统中的“方面”代码集中实现,这是AOP的一个关键特性。

B. AOP通过分离横切关注点,确实有助于提高系统的可维护性。

D. AOP本身不是一种设计模式,但Spring框架提供了AOP的实现,允许开发者以声明式或编程式的方式来使用AOP。


2.关于以下代码的说明,正确的是( )

在这里插入图片描述
A.3行与9行不能通过编译,因为缺少方法名和返回类型
B.9行不能通过编译,因为只能有一个静态初始化器
C.编译通过,执行结果为:x=5
D.编译通过,执行结果为:x=3
正确答案:C


多选题

3.以下类型为Final类型的为()

A.HashMap
B.StringBuffer
C.String
D.Hashtable

答案:BC

解析:
在Java中,final关键字可以用来修饰类、方法和变量。当一个类被声明为final时,它不能被继承。当一个方法被声明为final时,它不能被子类重写。当一个变量被声明为final时,它的值一旦被初始化后就不能再改变。

A. HashMap - 这个类不是final的,它可以被继承和扩展。 B. StringBuffer 在Java中,StringBuffer类是final的,这意味着你不能创建StringBuffer的子类。但是需要注意的是,从Java
5开始,StringBuffer已经被StringBuilder所取代,因为后者在非线程安全的环境下性能更好。
C.String类是final的,这是Java中最常用的不可变类。一旦一个String对象被创建,它的值就不能被改变。 D.
Hashtable - 这个类不是final的,它可以被继承和扩展。

因此,正确答案是BC,即StringBufferString都是final类型

多选题

4.以下说法哪个是正确的()

A.IOException在编译时会被发现
B.NullPointerEception在编译时不会被发现
C.SQLException在编译时会被发现
D.FileNotFoundException在编译时会被发现
正确答案:ABCD
正确答案是 B。

解析如下:

A. IOException - 这是一个受检查异常(checked exception),编译器会在编译时检查它,如果方法可能抛出
IOException 但没有处理(通过 throws 子句或 try-catch 块),编译器会报错。

B. NullPointerException - 这是一个运行时异常(unchecked
exception),它在编译时不会被发现。它通常在运行时发生,当尝试访问或修改一个为 null 的对象的成员时抛出。

C. SQLException - 这也是一个受检查异常,编译器会在编译时检查它,如果方法可能抛出 SQLException
但没有适当的处理,编译器会报错。

D. FileNotFoundException - 这是 IOException
的子类,也是一个受检查异常,编译器会在编译时检查它。

因此,B 选项是正确的,因为 NullPointerException 是运行时异常,在编译时不会被发现。而 A、C 和 D
选项描述的都是受检查异常,它们在编译时会被检查。
在这里插入图片描述

;