那些你曾错过的JAVA题(三)

640

640?wx_fmt=png

温故而知新!大家不要因为满篇文字而头疼,慢慢看总会有收获!

大家可以一起来做一做这些题目!

11

关于spring说法错误的是?
A.spring是一个轻量级JAVA EE的框架集合
B.spring是“依赖注入”模式的实现
C.使用spring可以实现声明事务
D.spring提供了AOP方式的日志系统


解析:

本题考查的就是spring的一些特点,所以翻出一些Spring框架的介绍和特点,大家可以一起看看

Spring Framework是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,Spring中包含的关键特性:

1.强大的基于JavaBeans的采用控制翻转(Inversion of Control,IoC)原则的配置管理,使得应用程序的组建更加快捷简易。

2.一个可用于从applet到Java EE等不同运行环境的核心Bean工厂。数据库事务的一般化抽象层,允许声明式(Declarative)事务管理器,简化事务的划分使之与底层无关。

3.内建的针对JTA和单个JDBC数据源的一般化策略,使Spring的事务支持不要求Java EE环境,这与一般的JTA或者EJB CMT相反。

4.JDBC 抽象层提供了有针对性的异常等级(不再从SQL异常中提取原始代码),简化了错误处理,大大减少了程序员的编码量。再次利用JDBC时,你无需再写出另一个’终止’(finally)模块。并且面向JDBC的异常与Spring通用数据访问对象(Data Access Object)异常等级相一致。

5.以资源容器,DAO实现和事务策略等形式与Hibernate,JDO和iBATIS SQL Maps集成。利用众多的翻转控制方便特性来全面支持,解决了许多典型的Hibernate集成问题。所有这些全部遵从Spring通用事务处理和通用数据访问对象异常等级规范。

6.灵活的基于核心Spring功能的MVC网页应用程序框架。开发者通过策略接口将拥有对该框架的高度控制,因而该框架将适应于多种呈现(View)技术,例如JSP、FreeMarker、Velocity、Tiles、iText以及POI。值得注意的是,Spring中间层可以轻易地结合于任何基于MVC框架的网页层,例如Struts、WebWork或Tapestry。

7.提供诸如事务管理等服务的面向方面编程框架。

另外,Spring并没有提供日志系统,我们需要使用AOP(面向方面编程)的方式,借助Spring与日志系统log4j实现我们自己的日志系统

答案:D

12

对于JVM内存配置参数:


-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3


其最小内存值和Survivor区总大小分别是()A.5120m,1024mB.5120m,2048mC.10240m,1024mD.10240m,2048m

解析:

刚看到这个题,我也是一脸懵逼就随便猜了个答案,果不其然错了,看了大佬们的解析后,才搞懂,下面的解析来自某位大佬:

-Xmx:最大堆大小

-Xms:初始堆大小

-Xmn:年轻代大小

-XXSurvivorRatio:年轻代中Eden区与Survivor区的大小比值

年轻代5120m, 

Eden:Survivor=3,

Survivor区大小=1024m(Survivor区有两个,即将年轻代分为5份,每个Survivor区占一份),总大小为2048m。

-Xms初始堆大小即最小内存值为10240m

 -XXSurvivorRatio=3:代表Eden:Survivor    = 3    根据Generation-Collection算法(目前大部分JVM采用的算法),一般根据对象的生存周期将堆内存分为若干不同的区域,一般情况将新生代分为Eden  ,两块Survivor;     计算Survivor大小,  Eden:Survivor =    3,总大小为5120,3x+x+x=5120  x=1024

新生代大部分要回收,采用Copying算法,快!

老年代  大部分不需要回收,采用Mark-Compact算法


答案:D

13

Servlet的生命周期可以分为初始化阶段,运行阶段和销毁阶段三个阶段,以下过程属于初始化阶段是()。

A.加载Servlet类及.class对应的数据

B.创建servletRequest和servletResponse对象

C.创建ServletConfig对象

D.创建Servlet对象

解析:

有图有真相,这就不必多说了,看图↓↓↓

那些你曾错过的JAVA题(三)_第1张图片

答案:C,D

14

JAVA反射机制主要提供了以下哪些功能?
A.在运行时判断一个对象所属的类
B.在运行时构造一个类的对象
C.在运行时判断一个类所具有的成员变量和方法
D.在运行时调用一个对象的方法

解析: 
Java反射机制主要提供了以下功能:
  1. 在运行时判断任意一个对象所属的类;

  2. 在运行时构造任意一个类的对象;

  3. 在运行时判断任意一个类所具有的成员变量和方法;

  4. 在运行时调用任意一个对象的方法;

  5. 生成动态代理。

答案:ABCD

15

以下代码执行的结果显示是多少( )?

public class Demo { class Super{  int flag=1;
         Super(){
             test();
         }  void test(){
            System.out.println("Super.test() flag="+flag);
         }
    } class Sub extends Super{
        Sub(int i){  flag=i;
            System.out.println("Sub.Sub()flag="+flag);
        }  void test(){
            System.out.println("Sub.test()flag="+flag);
        }
    }  public static void main(String[] args) {  new Demo().new Sub(5);
     }
}

A. Sub.test() flag=1        Sub.Sub() flag=5

B. Sub.Sub() flag=5        Sub.test() flag=5

C. Sub.test() flag=0        Sub.Sub() flag=5

D. Super.test() flag=1    Sub.Sub() flag=5

解析:

在继承中代码的执行顺序为:

1.父类静态对象,父类静态代码块

2.子类静态对象,子类静态代码块

3.父类非静态对象,父类非静态代码块

4.父类构造函数

5.子类非静态对象,子类非静态代码块

6.子类构造函数

对于本题来说:在只想new Sub(5)的时候,父类先初始化了 int flag = 1,然后执行父类的构造函数Super(),父类构造函数中执行的test()方法,因子类是重写了test()方法的,因此父类构造函数中的test()方法实际执行的是子类的test()方法,所以输出为Sub.test() flag=1,接着执行子类构造函数Sub(5) 将flag赋值为5,因此输出结果Sub.Sub() flag=5。最终选择了A

答案:A


往期精彩回顾

640

专栏 | 那些你曾错过的JAVA题(一)

专栏 | 那些你曾错过的JAVA题(二)

专栏 | 持续更新中...

640

一个努力中的公众号

长的好看的人都关注了

640?

关注我,你能变得更牛逼!

长按识别二维码关注

那些你曾错过的JAVA题(三)_第2张图片

那些你曾错过的JAVA题(三)_第3张图片

你可能感兴趣的:(那些你曾错过的JAVA题(三))