Java选择题(十八)

1.设Tree为已定义的类名,下列语句能正确创建 Tree 对象的是 。

正确答案: B 你的答案: B (正确)
A.Tree t=new Tree;
B.Tree t=new Tree();
C.Tree t=Tree();
D.Tree t[ ]=new Tree[10];

解释:
A: 少括号
B: 正确(但是要前提,Tree类中存在无参构造器,并且是public的。如果Tree中存在有参构造器且无参构造器不存在或者无参构造器为private的话,选B也是错误的)
C: 缺少new,没有创建新的对象
D:题中创建的是数组对象,而不是Tree对象。

2.列哪种异常是检查型异常,需要在编写程序时声明?

正确答案: C 你的答案: C (正确)
A.NullPointerException
B.ClassCastException
C.FileNotFoundException
D.IndexOutOfBoundsException

解释:
Java异常

  • 检查型异常(编译时异常 checked exceptions)

  • 需要在编写程序时声明

  • 需要我们手动的进行捕捉处理,也就是我们用try…catch块进行捕捉处理。或者在方法签名里通过throws子句声明

  • Throwable、Exception、IOException、ClassNotFoundException、CloneNotSupportedException、EOFException、FileNotFoundException、MalformedURLException、UnknownHostException

  • 运行异常(runtime exceptions)

    • 只有在编译器在编译运行时才会出现,这些不需要我们手动进行处理
    • 需要程序员自己分析代码决定是否捕获和处理,比如 空指针,被0除…
    • RuntimeException、ArithmeticException、ClassCastException、IllegalArgumentException、IllegalStateException、IndexOutOfBoundsException、NoSuchElementException、NullPointerException
  • Error

    • 属于严重错误,如系统崩溃、虚拟机错误、动态链接失败等,这些错误无法恢复或者不可能捕捉,将导致应用程序中断,Error不需要捕捉。

3.关于下面的程序,说法正确的是:

1. class StaticStuff
2 {
3.     static int x = 10;
4.
5.     static { x += 5; }
6.
7. public static void main(String args[])
8. {
9.     System.out.println(“x =+ StaticStuff .x);
10. }
11.    static
12.     {x /= 3; }
13.}

正确答案: D 你的答案: E (错误)

A.第5行和12行不能编译,因为该方法没有方法名和返回值。
B.第12 行不能编译,因为只能有一个static初始化块。
C.代码编译并执行,输出结果x = 10.
D.代码编译并执行,输出结果 x = 5.
E.代码编译并执行,输出结果 x = 15.

解释:
执行顺序为:
父类静态代码块、静态变量 ps:按声明顺序执行

子类静态代码块、静态变量 ps:按声明顺序执行

父类局部代码块、成员变量 ps:按声明顺序执行

父类构造函数

子类局部代码块、成员变量 ps:按声明顺序执行

子类构造函数

4.下面代码运行结果是?

public class Test
{
    static boolean foo(char c)
    {
        System.out.print(c);
        return true;
    }
    public static void main( String[] argv )
    {
        int i = 0;
        for ( foo('A'); foo('B') && (i < 2); foo('C'))
        {
            i++ ;
            foo('D');
        }
    }
}

正确答案: A 你的答案: A (正确)
A.ABDCBDCB
B.ABCDABCD
C.Compilation fails.
D.An exception is thrown at runtime.

解释:
for(条件1;条件2;条件3) {
//语句
}
执行顺序是条件1->条件2->语句->条件3->条件2->语句->条件3->条件2…
如果条件2为true,则一直执行。如果条件2位false,则for循环结束

5.以下代码输出的是:

public class SendValue{
    public String str="6";
    public static void main(String[] args) {
        SendValue sv=new SendValue();
        sv.change(sv.str);
        System.out.println(sv.str);
    }
    public void change(String str) {
        str="10";
    }
}

正确答案: A 你的答案: A (正确)
A.6
B.10
C.都不对
D.16

Java中String类型变量是immutable(不可变的)。
尽管 change()方法中的str与sv.str都是新的对象实例成员变量值"6"的引用, 由于String类型的 不可变 性,change()方法中的str="10"语句实际上是将传入的str副本引用指向了一个值为“10”的新的内存地址,但 原数据引用 sv.str的引用值(也就是“6”的内存地址) 并没有发生改变,因此sv.str指向的值仍旧为6.

6.一般情况下,以下哪个选项不是关系数据模型与对象模型之间匹配关系?

正确答案: D 你的答案: D (正确)
A.表对应类
B.记录对应对象
C.表的字段对应类的属性
D.表之间的参考关系对应类之间的依赖关系

解释:
类与类之间的关系主要体现在表与表之间的关系进行操作,它们都是对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many

7.下面哪个行为被打断不会导致InterruptedException:( )?

正确答案: E 你的答案: B (错误)
A.Thread.join
B.Thread.sleep
C.Object.wait
D.CyclicBarrier.await
E.Thread.suspend

解释:
suspendsuspend方法作用是阻塞一个线程,不会释放锁,直到其他的线程调用resume方法,才能继续向下执行。被打断不会导致InterruptedException。


抛InterruptedException的代表方法有:

  • java.lang.Object 类的 wait 方法
  • java.lang.Thread 类的 sleep 方法
  • java.lang.Thread 类的 join 方法

8.以下说法错误的是( )

正确答案: A B 你的答案: A B (正确)
A.final修饰的方法不能被重载
B.final可以修饰类、接口、抽象类、方法和属性
C.final修饰的方法也不能被重写
D.final修饰的属性是常量,不可以修改

解释:
final表示最终的意思,它修饰的类是不能被继承的;final修饰的方法能被继承(Math类里就有),但是不能够被重写。其实关系并不复杂,你只需要记住这样一句话:final可用于声明属性、方法和类,分别表示属性不可变,方法不可重写,类不可继承。当然final修饰的方法是可以被重载的。

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

正确答案: A C D 你的答案: A B D (错误)
A.加载Servlet类及.class对应的数据
B.创建servletRequest和servletResponse对象
C.创建ServletConfig对象
D.创建Servlet对象

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

  1. 加载Servlet类及.class对应的数据
  2. 创建ServletConfig对象
  3. 创建Servlet对象

每一次请求来到容器时,会产生HttpServletRequest与HttpServlceResponse对象,并在调用service()方法时当做参数传入。
在WEB容器启动后,会读取Servlet设置信息,将Servlet类加载并实例化,并为每个Servlet设置信息产生一个ServletConfig对象,而后调用Servlet接口的init()方法,并将产生的ServletConfig对象当作参数传入。

10.类之间存在以下几种常见的关系:

正确答案: A B C 你的答案: A B C (正确)
A>.“USES-A”关系
B.“HAS-A”关系
C.“IS-A”关系
D.“INHERIT-A”关系

解释:
USES-A:依赖关系,A类会用到B类,这种关系具有偶然性,临时性。但B类的变化会影响A类。这种在代码中的体现为:A类方法中的参数包含了B类。
关联关系:A类会用到B类,这是一种强依赖关系,是长期的并非偶然。在代码中的表现为:A类的成员变量中含有B类。
HAS-A:聚合关系,拥有关系,是关联关系的一种特例,是整体和部分的关系。比如鸟群和鸟的关系是聚合关系,鸟群中每个部分都是鸟。
IS-A:表示继承。父类与子类,这个就不解释了。


要注意:还有一种关系:组合关系也是关联关系的一种特例,它体现一种contains-a的关系,这种关系比聚合更强,也称为强聚合。它同样体现整体与部分的关系,但这种整体和部分是不可分割的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java选择题题库是一种包含了一系列针对Java编程语言选择题的资源库。这些选择题具有不同的难度级别和不同的主题,旨在帮助学习者更好地理解和掌握Java语言的各个方面。 Java选择题题库的使用对于学习者来说具有很大的好处。首先,通过解答选择题,学习者可以检验自己对Java语言的知识掌握程度。这可以帮助他们发现自己的不足之处,并将精力放在需要加强的知识点上。此外,通过解答选择题,学习者还可以加深对Java语言相关概念和知识的理解和记忆。 Java选择题题库可以涵盖Java语言的各个方面,比如基本语法、数据类型、控制流、面向对象编程、异常处理、多线程编程、输入输出、集合框架等等。这样的题库可以帮助学习者全面而系统地学习Java语言,并在各个方面都有所提高。 除了作为学习工具外,Java选择题题库还可以用于考试或评估学习者的水平。教育机构或培训机构可以使用这样的题库来组织考试,评估学生对Java语言的掌握情况。这样的题库可以提供一种客观的评估方式,帮助教育机构或培训机构更好地了解学生的学习状况,进行科学的教学安排。 总之,Java选择题题库是一种有益的学习资源,可以帮助学习者巩固和提高对Java语言的理解和应用能力。无论是个人学习还是教育考试,Java选择题题库都是一个有用的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风儿吹吹吹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值