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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
日志服务 SLS,月写入数据量 50GB 1个月
全局流量管理 GTM,标准版 1个月
简介: 那些你曾错过的JAVA题(三)


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,1024m

B.5120m,2048m

C.10240m,1024m

D.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对象


解析:

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


image.png


答案: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

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
安全 Java 数据安全/隐私保护
【用一个故事介绍Java的封装继承多态】
【用一个故事介绍Java的封装继承多态】
|
1月前
|
存储 Java 程序员
Java灵魂拷问13个为什么,你都会哪些?
【11月更文挑战第6天】本文回答了一些常见的 Java“灵魂拷问”,包括 Java 跨平台的原因、垃圾回收机制的作用、接口不能有实例变量的原因、字符串不可变的好处、异常处理机制的意义、类加载机制的双亲委派模型、多线程同步机制的重要性、重写方法访问修饰符的限制、包装类的存在意义、`equals()` 和 `hashCode()` 方法一起重写的原因、静态方法不能被重写的原因、`ArrayList` 扩容策略的权衡,以及 `final` 关键字的多种用途。
阿里P8大牛推荐Java程序员必看的 13 本 Java 书籍
关乎于程序员,除了做项目来提高自身的技术,还有一种提升自己的专业技能就是:多!看!书! 毕竟,书是学习的海洋呢!So,Java程序员你们准备好了吗?双手奉上Java程序员必读之热门书单。 在下面这 13 本书籍中小编还是要建议大家可以先去关注英文原版,毕竟翻译的书籍中都有一定的语法错误。
|
7月前
|
Java 编译器
Java打怪升级宝典:Java中的异常你真的了解吗?
Java打怪升级宝典:Java中的异常你真的了解吗?
89 0
|
存储 缓存 运维
浅谈与JAVA的故事
虽然自己是一名大前端开发者,但是技术涉猎不局限于前端领域,再加上之前工作需要,接触到了JAVA的开发。在之前有一期话题讨论中我讲到,自己在一家美资企业上班的时候,负责部门软件相关的工作,前后端都要开发,所以在那时候才真正的接触到JAVA的开发,虽然在上大学的时候只是学习理论课,但是仅仅是理论课而已,个人感觉没有实际开发的JAVA经历是不算真正的接触JAVA领域的。
92 1
浅谈与JAVA的故事
|
安全 算法 Java
Java 17 VS Java 8: 新旧对决,这些Java 17新特性你不容错过
Java 17 VS Java 8: 新旧对决,这些Java 17新特性你不容错过
2584 0
|
Oracle Java 关系型数据库
JAVA学习第三天
JAVA学习第三天
59 0
|
消息中间件 设计模式 Kubernetes
怎么学Java?最全Java学习路线,总有一款适合你
怎么学Java?最全Java学习路线,总有一款适合你
怎么学Java?最全Java学习路线,总有一款适合你
|
安全 Java 编译器
那些你曾错过的Java题(一)
那些你曾错过的Java题(一)
102 0
那些你曾错过的Java题(一)
|
存储 安全 Java
那些你曾错过的JAVA题(二)
那些你曾错过的JAVA题(二)
123 0
那些你曾错过的JAVA题(二)