每日刷题总结

匆匆过客 提交于 2020-02-22 05:27:18

1.关于AOP错误的是?(C)

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

解析:AOP和OOP都是一套方法论,也可以说成设计模式、思维方式、理论规则等等。
AOP不能替代OOP,OOP是obejct abstraction,而AOP是concern abstraction,前者主要是对对象的抽象,诸如抽象出某类业务对象的公用接口、报表业务对象的逻辑封装,更注重于某些共同对象共有行为的抽象,如报表模块中专门需要报表业务逻辑的封装,其他模块中需要其他的逻辑抽象 ,而AOP则是对分散在各个模块中的共同行为的抽象,即关注点抽象。一些系统级的问题或者思考起来总与业务无关又多处存在的功能,可使用AOP,如异常信息处理机制统一将自定义的异常信息写入响应流进而到前台展示、行为日志记录用户操作过的方法等,这些东西用OOP来做,就是一个良好的接口、各处调用,但有时候会发现太多模块调用的逻辑大都一致、并且与核心业务无大关系,可以独立开来,让处理核心业务的人专注于核心业务的处理,关注分离了,自然代码更独立、更易调试分析、更具好维护。
核心业务还是要OOP来发挥作用,与AOP的侧重点不一样,前者有种纵向抽象的感觉,后者则是横向抽象的感觉, AOP只是OOP的补充,无替代关系。

2.对抽象类的描述正确的是(D)

A.抽象类的方法都是抽象方法
B.一个类可以继承多个抽象类
C.抽象类不能有构造方法
D.抽象类不能被实例化

解析:
A.抽象类可以有非抽象的方法,而接口中的方法都是抽象方法
B.java中类只能单继承,接口可以‘继承’多个接口
C.抽象类必须有构造方法,接口一定没有构造方法
D.实例化一般指new一个对象,所以抽象类不能实例化

3.内部类(也叫成员内部类)可以有4种访问权限。(A)

A.正确
B.错误

解析:内部类直接在类的内部进行声明。可以声明为private、protected、public或者默认的访问权限

4.关于final说法正确的是?(B)

A.final类的方法肯定不能被同一个包的类访问
B.final类的方法能否被同一个包的类访问不是由final决定
C.final方法等同于private方法
D.final对象本身的引用和值都不能改变

解析:final变量,如果是基本数据类型,则其数值一旦初始化后就不能被改变。如果是引用类型的变量,则对其初始化后,便不能再指向另一个对象,但是其里面的值是可以改变的。引用变量所指向的对象中的内容是可以改变的。

5.关于匿名内部类叙述正确的是?(B)

A.匿名内部类可以继承一个基类,不可以实现一个接口
B.匿名内部类不可以定义构造器
C.匿名内部类不能用于形参
D.以上说法都不正确

解析:由于构造器的名字必须与类名相同,而匿名类没有类名,所以匿名类不能有构造器。

6.final、finally和finalize的区别中,下述说法正确的有?(AB)

A.final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
B.finally是异常处理语句结构的一部分,表示总是执行。
C.finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源的回收,例如关闭文件等。
D.引用变量被final修饰之后,不能再指向其他对象,它指向的对象的内容也是不可变的。

解析:使用 final 关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。
finalize方法,这个选项错就错在,这个方法一个对象只能执行一次,只能在第一次进入被回收的队列,
而且对象所属于的类重写了finalize方法才会被执行。第二次进入回收队列的时候,不会再执行其finalize方法,
而是直接被二次标记,在下一次GC的时候被GC。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!