java错题集

来源:互联网 发布:mac os x install dvd 编辑:程序博客网 时间:2024/06/05 06:25

以下题目均来自牛客网:

题1、以下申明合法的是:

   A、default string s;

   B、public final static native int w();
   C、abstract double d;
   D、bstract final double hyperbolicCosine();

选第二个B

default不能修饰属性;

abstract不能修饰属性;

abstract修饰方法时不能再使用final修饰;abstract修饰的方法是抽象方法,是需要被实现的,final修饰的方法是不能被重写的方法;这两个要求矛盾,不能同时用于同一个方法;

native修饰本地方法;


题2、在运行时,由java解释器自动引入,而不用import语句引入的包是()

A、java.lang B、java.system C、java.io D、java.util
选择:A;java.lang提供利用 Java 编程语言进行程序设计的基础类;lang是language的简写,其中包含了String、Boolean、Integer...等等这类java基础类,使用时不需要导入包;

题3、下列Java代码中的变量a、b、c分别在内存的____存储区存放。
1
2
3
4
5
6
7
classA {
    privateString a = “aa”;
    publicboolean methodB() {
        String b = “bb”;
        final String c = “cc”;
    }
}
A、堆区、堆区、堆区

B、堆区、栈区、堆区

C、堆区、栈区、栈区

D、堆区、堆区、栈区

E、静态区、栈区、堆区

F、静态区、栈区、栈区
选择C:一个方法在执行的时候都会开辟一块方法栈内存,这个方法中声明的所有局部变量都会放在这个栈内存中,随着方法的执行结束方法的内存栈也自然的被销毁;在程序中创建一个对象,这个对象是放在运行时数据区的以便反复利用,这个运行时数据区就是堆内存。堆内存中的数据不会随着方法的结束而销毁,一个对象只有当没有任何引用引用它的时候,垃圾回收机制才会在合适的时候回收它。
堆区:只存放类对象,线程共享;
方法区:又叫静态存储区,存放class文件和静态数据,线程共享;
栈区:存放方法局部变量,基本类型变量区、执行环境上下文、操作指令区,线程不共享;


题4、Servlet的生命周期可以分为初始化阶段,运行阶4段和销毁阶段三个阶段,以下过程属于初始化阶段是()
A、加载Servlet类及.class对应的数据
B、创建serletRequest和servletResponse对象
C、创建ServletConfig对象
D、创建Servlet对象

答案:ACD
Servlet的生命周期:第一初始化阶段;第二执行阶段;第三销毁阶段;
初始化阶段:init()  加载servlet类,创建ServletConfig对象,创建Servlet对象
执行阶段:service() 核心方法在调用doGet和doPost方法时会构造servletRequest和servletResponse请求和响应对象作为参数。
销毁阶段:destory()停止并卸载service的执行,并且释放资源

题5、下面关于程序编译说法正确的是()
A、java语言是编译型语言,会把java程序编译成二进制机器指令直接运行
B、java编译出来的目标文件与具体操作系统有关
C、javascript是解释型语言,在运行时才进行翻译指令
D、java编译出来的目标文件,可以运行在任意jvm上

答案 C
编译型语言:先将源代码编译成机器代码,然后机器执行机器码,执行效率高,依赖编译器,跨平台性差;解释型语言:源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行,依靠解释器、跨平台性好,执行速度慢、效率低;java是解释型语言;低版本的jvm未必能执行高版本的java编译后的文件,JavaScript属于解释型语言


题6、下列有关Servlet的生命周期,说法不正确的是?

A、在创建自己的Servlet时候,应该在初始化方法init()方法中创建Servlet实例

B、在Servlet生命周期的服务阶段,执行service()方法,根据用户请求的方法,执行相应的doGet()或是doPost()方法

C、在销毁阶段,执行destroy()方法后会释放Servlet 占用的资源

D、destroy()方法仅执行一次,即在服务器停止且卸载Servlet时执行该方法


答案A

容器通过类加载器加载servlet文件,通过调用servlet的构造函数创建servlet对象这两个操作在调用init()方法之前

0 0