Java日常练习题,每天进步一点点(43)

目录
  • 1、在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。
  • 2、下面有关servlet中init,service,destroy方法描述错误的是?
  • 3、以下描述错误的一项是( )?
  • 4、JSP 表达式的写法:
  • 5、Panel 和 Applet 的默认布局管理器是( )
  • 6、What will be printed when you execute the following code?
  • 7、下列选项中是正确的方法声明的是?()
  • 8、Java是一门支持反射的语言,基于反射为Java提供了丰富的动态性支持,下面关于Java反射的描述,哪些是错误的:( )
  • 9、在Java中下面Class的声明哪些是错误的?
  • 10、以下哪些方法可以取到http请求中的cookie值()?
    • 答案汇总:
  • 总结

承蒙各位厚爱,我们一起每天进步一点点!(鼠标选中空白处查看答案)

1、在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。

正确答案: A

正确

错误

题解:
首先所有异常都是Exception的子类。
比如用Exception
因为所有异常都是Exception的子类,如果你把Exception放在前边捕获,后边的catch将永远不会执行

2、下面有关servlet中init,service,destroy方法描述错误的是?

正确答案: D

init()方法是servlet生命的起点。一旦加载了某个servlet,服务器将立即调用它的init()方法

service()方法处理客户机发出的所有请求

destroy()方法标志servlet生命周期的结束

servlet在多线程下使用了同步机制,因此,在并发编程下servlet是线程安全的

题解:
servlet在多线程下其本身并不是线程安全的。
如果在类中定义成员变量,而在service中根据不同的线程对该成员变量进行更改,那么在并发的时候就会引起错误。最好是在方法中,定义局部变量,而不是类变量或者对象的成员变量。由于方法中的局部变量是在栈中,彼此各自都拥有独立的运行空间而不会互相干扰,因此才做到线程安全。

3、以下描述错误的一项是( )?

正确答案: C

程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行 到了第几行,是线程隔离的

原则上讲,所有的对象都是在堆区上分配内存,是线程之间共享的

方法区用于存储JVM加载的类信息、常量、静态变量,即使编译器编译后的代码等数据,是线程隔离的

Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的

题解:
方法区和堆内存是线程共享的。
程序计数器、虚拟机栈、本地方法栈是线程隔离的。
Java运行时内存
1.程序计数器,线程私有。可以看作是当前线程所执行的字节码的行号指示器,字节码解释器工作时就是通过改变整个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能。
由于JVM的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(对于多核处理器来说是一个内核)都只会执行一条线程中的指令。因此为了线程切换后能恢复到正确的执行位置,每条线程都需要一个独立的程序计数器,各条线程之间计数器互不影响,独立存储,所以线程私有。
程序计数器是唯一一个在Java虚拟机规范中没有规定任何OOM的区域。
2.Java虚拟机栈,线程私有。生命周期和线程相同。虚拟机栈描述的是Java方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧。每个方法从调用到执行完成的过程,就对应着一个栈帧在虚拟机中入栈到出栈的过程。
3.本地方法栈,线程私有。和虚拟机栈的区别就在于一个是为了执行Java方法服务,一个是为了虚拟机使用到的Native方法服务。
4.堆,线程共享。存放对象实例和数组。
5.方法区,线程共享。存放已经被JVM加载的类信息,常量,静态变量,即时编译器编译后的代码。

4、JSP 表达式的写法:

正确答案: C

<% expression %>

<=% expression %>

<%= expression %>

<expression/>

题解:
(1)<%…%>:可以插入一些语句。
(2)<%! … %>:只能放置全局变量、全局常量、类、函数。
(3)<%= … %>:只能放置一个变量、常量。

5、Panel 和 Applet 的默认布局管理器是( )

正确答案: B

CardLayout

FlowLayout

BorderLayout

GridLayout

题解:
BorderLayout布局管理器,是Frame默认布局管理器,它是一个布置容器的边框布局,它可以对容器 组件 进行安排,并调整其大小,使其符合下列五个区域:北、南、东、西、中。每个区域最多只能包含一个组件,并通过相应的常量进行标识:NORTH、SOUTH、EAST、WEST、CENTER。
FlowLayout流式布局管理器,是Panel和Applet默认布局管理器,它具有指定的对齐方式以及指定的水平和垂直间隙。
GridLayout布局管理器,GridLayout(int rows,int cols,int hgap,int vgap);建立一个表格的版面对象。rows代表有几行,cols代表有几列;hgap是组件之间的水平距离,vgap是组件之间的竖直距离。

6、What will be printed when you execute the following code?

class C {
    C() {
        System.out.print("C");
    }
}
class A {
    C c = new C();
    A() {
        this("A");
        System.out.print("A");
    }
    A(String s) {
        System.out.print(s);
    }
}
class Test extends A {
    Test() {
        super("B");
        System.out.print("B");
    }
    public static void main(String[] args) {
        new Test();
    }
}

正确答案: B

BB

CBB

BAB

None of the above

题解:
初始化过程是这样的:
1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化;
2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化;
3.其次,初始化父类的普通成员变量和代码块,在执行父类的构造方法;
4.最后,初始化子类的普通成员变量和代码块,在执行子类的构造方法;
(1)初始化父类的普通成员变量和代码块,执行 C c = new C(); 输出C
(2)super(“B”); 表示调用父类的构造方法,不调用父类的无参构造函数,输出B
(3) System.out.print(“B”);
所以输出CBB

7、下列选项中是正确的方法声明的是?()

正确答案: A B C D

protected abstract void f1();

public final void f1() {}

static final void fq(){}

private void f1() {}

题解:
A:抽象方法只可以被public 和 protected修饰;
B:final可以修饰类、方法、变量,分别表示:该类不可继承、该方法不能重写、该变量是常量
C:static final 可以表达在一起来修饰方法,表示是该方法是静态的不可重写的方法
D:private 修饰方法(这太常见的)表示私有方法,本类可以访问,外界不能访问

8、Java是一门支持反射的语言,基于反射为Java提供了丰富的动态性支持,下面关于Java反射的描述,哪些是错误的:( )

正确答案: A D F

A:Java反射主要涉及的类如Class, Method, Filed,等,他们都在java.lang.reflet包下

B:通过反射可以动态的实现一个接口,形成一个新的类,并可以用这个类创建对象,调用对象方法

C:通过反射,可以突破Java语言提供的对象成员、类成员的保护机制,访问一般方式不能访问的成员

D:Java反射机制提供了字节码修改的技术,可以动态的修剪一个类

E:Java的反射机制会给内存带来额外的开销。例如对永生堆的要求比不通过反射要求的更多

F:Java反射机制一般会带来效率问题,效率问题主要发生在查找类的方法和字段对象,因此通过缓存需要反射类的字段和方法就能达到与之间调用类的方法和访问类的字段一样的效率

题解:
A Class类在java.lang包
B 动态代理技术可以动态创建一个代理对象,反射不行
C 反射访问私有成员时,Field调用setAccessible可解除访问符限制
D CGLIB实现了字节码修改,反射不行
E 反射会动态创建额外的对象,比如每个成员方法只有一个Method对象作为root,他不胡直接暴露给用户。调用时会返回一个Method的包装类
F 反射带来的效率问题主要是动态解析类,JVM没法对反射代码优化。

9、在Java中下面Class的声明哪些是错误的?

正确答案: A B C

A:

public abstract final class Test {
	abstract void method();
}

B:

public abstract class Test {
	abstract final void method();
}

C:

public abstract class Test {
	abstract void method() {
}
}

D:

public class Test {
	final void method() {
}
}

题解:
A、final修饰的类为终态类,不能被继承,而 抽象类是必须被继承的才有其意义的,因此,final是不能用来修饰抽象类的。
B、 final修饰的方法为终态方法,不能被重写。而继承抽象类,必须重写其方法。
C、抽象方法是仅声明,并不做实现的方法。

10、以下哪些方法可以取到http请求中的cookie值()?

正确答案: B D

request.getAttribute

request.getHeader

request.getParameter

request.getCookies

题解:
下面的方法可用在 Servlet 程序中读取 HTTP 头。这些方法通过 HttpServletRequest 对象可用:
1)Cookie[] getCookies()
返回一个数组,包含客户端发送该请求的所有的 Cookie 对象。
2)Object getAttribute(String name)
以对象形式返回已命名属性的值,如果没有给定名称的属性存在,则返回 null。
3)String getHeader(String name)
以字符串形式返回指定的请求头的值。Cookie也是头的一种;
4)String getParameter(String name)
以字符串形式返回请求参数的值,或者如果参数不存在则返回 null。

答案汇总:

1、正确答案: A

2、正确答案: D

3、正确答案: C

4、正确答案: C

5、正确答案: B

6、正确答案: B

7、正确答案: A B C D

8、正确答案: A D F

9、正确答案: A B C

10、正确答案: B D

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Java日常练习题,每天进步一点点(42)

    目录 1.Integer a = 1; 2.对于同一类中的两个方法 , 在判断它们是不是重载方法时 , 肯定不考虑( ) 3.对于Java中异常的描述正确的是( ) 4.下面的方法,当输入为2的时候返回值是多少? 5.下面有关 maven和ant的描述,描述错误的是? 6.下列方法中哪个是执行线程的方法? () 7.java中Hashtable, Vector, TreeSet, LinkedList哪些线程是安全的? 8.关于HashMap和Hashtable正确的说法有() 9.以下关于fi

  • Java日常练习题,每天进步一点点(41)

    目录 1.下列关于计算机系统和Java编程语言的说法,正确的是() 2.变量a是一个64位有符号的整数,初始值用16进制表示为:0Xf000000000000000: 变量b是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF. 则a-b的结果用10进制表示为多少?() 3.以下代码的运行结果是什么( ) 4.下面代码的运行结果为:() 5.下面哪些类可以被继承? Java.lang.Thread.java.lang.Number.java.lang.Doubl

  • Java日常练习题,每天进步一点点(39)

    目录 1.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数.类型或顺序各不相同,传回的值也可以不相同. 2.ArrayList和Vector主要区别是什么? 3.public class Test 4.下面哪种情况会导致持久区jvm堆内存溢出? 5.如果希望监听TCP端口9000,服务器端应该怎样创建socket? 6.What will happen when you attempt to compile and run the following code? 7.下列代码

  • Java日常练习题,每天进步一点点(40)

    目录 1.下面有关JSP内置对象的描述,说法错误的是? 2.Java语言与其它语言相比,独有的特点是( ) 3.下面哪个选项正确创建socket连接? 4.定义有StringBuffer s1=new StringBuffer(10);s1.append("1234")则s1.length()和s1.capacity()分别是多少? 5.下面有关SPRING的事务传播特性,说法错误的是? 6.有一个源代码,只包含import java.util.* ; 这一个import语句,下面叙述

  • Java日常练习题,每天进步一点点(44)

    目录 1.AWT 中用来表示文本框的类是 ( ) 2.以下表达式的类型和值是什么?(注意整数除法)() 3.以下代码段执行后的输出结果为 4.Java的跨平台特性是指它的源代码可以在多个平台运行.() 5.方法通常存储在进程中的哪一区() 6.默认RMI采用的是什么通信协议? 7.J2EE中,当把来自客户机的HTTP请求委托给servlet时,会调用HttpServlet的( )方法 8.String str = new String("abc"),"abc"在内存

  • Java日常练习题,每天进步一点点(43)

    目录 1.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面. 2.下面有关servlet中init,service,destroy方法描述错误的是? 3.以下描述错误的一项是( )? 4.JSP 表达式的写法: 5.Panel 和 Applet 的默认布局管理器是( ) 6.What will be printed when you execute the following code? 7.

  • Java日常练习题,每天进步一点点(47)

    目录 1.public interface IService {String NAME="default";} 2.关于以下程序代码的说明正确的 3.以下 _____ 不是 Object 类的方法 4.try块后必须有catch块.() 5.已知有下列Test类的说明,在该类的main方法内,则下列哪个语句是正确的?() 6.String s = new String("xyz");创建了几个StringObject? 7.下面有关JVM内存,说法错误的是? 8.问

  • Java日常练习题,每天进步一点点

    目录 1.类 ABC 定义如下: 2.后端获取数据,向前端输出过程中,以下描述正确的是 3.在异常处理中,以下描述不正确的有 4.如果一个接口Cup有个方法use(),有个类SmallCup实现接口Cup,则在类SmallCup中正确的是? ( ) 5.下面的程序将来打印什么?() 6.执行以下程序后的输出结果是() 7.java语言的下面几种数组复制方法中,哪个效率最高? 8.有关会话跟踪技术描述正确的是() 9.关于Java内存区域下列说法不正确的有哪些 10.下面的Java赋值语句哪些是有

  • Java日常练习题,每天进步一点点(9)

    目录 1."先进先出"的容器是:( ) 2.不考虑反射机制,一个子类显式调用父类的构造器必须用super关键字.( ) 3.以下是java concurrent包下的4个类,选出差别最大的一个 4.判断对错.在java的多态调用中,new的是哪一个类就是调用的哪个类的方法. 5.下面属于java引用类型的有? 6.有以下程序段, 则下面正确的选项是() 7.往OuterClass类的代码段中插入内部类声明, 哪一个是错误的: 8.Java.Thread的方法resume()负责重新开始

  • Java日常练习题,每天进步一点点(15)

    目录 1.main 方法是 Java Application 程序执行的入口点,以下描述哪项是合法的(). 2.一般情况下,以下哪个选项不是关系数据模型与对象模型之间匹配关系? 3.下列关于修饰符混用的说法,错误的是( ) 4.某程序要求每次输入只能是正整数,并且每次输入的数值要求必须是100的倍数且小于等于500,则下列哪个是正确的无效等价类( ) 5.根据以下代码段,下列说法中正确的是( ). 6.在创建派生类对象,构造函数的执行顺序() 7.关于下面的一段代码,以下哪些说法是正确的: 8.

  • Java日常练习题,每天进步一点点(14)

    目录 1.下面程序的运行结果:() 2.如果int x=20, y=5,则语句System.out.println(x+y +""+(x+y)+y); 的输出结果是() 3.有以下类定义: 4.以下代码的输出的正确结果是 5.下列说法正确的是() 6.以下代码输出的是: 7.非抽象类实现接口后,必须实现接口中的所有抽象方法,除了abstract外,方法头必须完全一致. 8.下列关于容器集合类的说法正确的是? 9.下面说法正确的是?() 10.下面的对象创建方法中哪些会调用构造方法 ()

  • Java日常练习题,每天进步一点点(13)

    目录 1.以下关于java封装的描述中,正确的是: 2.请问所有的异常类皆直接继承于哪一个类?() 3.Which statement is true for the class java.util.ArrayList? 4.以下 b 的值是: byte b = (byte)129; 5.哪个类可用于处理 Unicode? 6.下面代码的运行结果是( ) 7.以下哪些继承自 Collection 接口() 8.程序中常采用变量表示数据,变量具有名.地址.值.作用域.生存期等属性.关于变量的叙述,

  • Java日常练习题,每天进步一点点(12)

    目录 1.Which is the return type of the method main()? 2.java中用()字指明继承关系.用()关键字指明对接口的实现. 3.顺序执行下列程序语句后,则b的值是() 4.下面程序的输出是什么? 5.下面属于JSP内置对象的是? 6.关于抽象类与接口,下列说法正确的有? 7.下面哪些写法能在 java8 中编译执行() 8.Java是一门支持反射的语言,基于反射为Java提供了丰富的动态性支持,下面关于Java反射的描述,哪些是错误的:( ) 9.

  • Java日常练习题,每天进步一点点(11)

    目录 1.对接口的描述正确的是() 2.类中的数据域使用private修饰为私有变量,所以任何方法均不能访问它. 3.已知如下类定义: 4.在java的一个异常处理中,可以包含多个的语句块是 ( ). 5.关于Java语言中的final关键字的使用,下列说法正确的是() 6.在 main() 方法中给出的整型数组,如果将其写到一个文件中,需要( ). 7.下列有关Servlet的生命周期,说法不正确的是? 8.What is displayed when the following is exe

  • Java日常练习题,每天进步一点点(16)

    目录 1.main 方法是 Java Application 程序执行的入口点,以下描述哪项是合法的(). 2.一般情况下,以下哪个选项不是关系数据模型与对象模型之间匹配关系? 3.下列关于修饰符混用的说法,错误的是( ) 4.某程序要求每次输入只能是正整数,并且每次输入的数值要求必须是100的倍数且小于等于500,则下列哪个是正确的无效等价类( ) 5.根据以下代码段,下列说法中正确的是( ). 6.在创建派生类对象,构造函数的执行顺序() 7.关于下面的一段代码,以下哪些说法是正确的: 8.

随机推荐