每日10道JAVA题(20180606)

/**
 * 10道题系列会持续更新,每日的10道题都是我做过的,做错或者觉得需要复习的有价值的
 * 请关注我,每日和我一同进步,有更好的建议或有问题的请在评论区提出或私信我
 */

1.DBMS 中实现事务持久性的子系统是() D

A.安全性管理子系统
B.完整性管理子系统
C.并发控制子系统
D.恢复管理子系统

要想事物具有持久性,就得在事物出错时及时恢复。

原子性-事务管理子系统。一致性-完整子系统。隔离性-并发控制子系统。持久性-恢复管理子系统


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

A.init()方法是servlet生命的起点。一旦加载了某个servlet,服务器将立即调用它的init()方法
B.service()方法处理客户机发出的所有请求
C.destroy()方法标志servlet生命周期的结束
D.servlet在多线程下使用了同步机制,因此,在并发编程下servlet是线程安全的

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


3.从运行层面上来看,从四个选项选出不同的一个。 B
A.JAVA
B.Python
C.objectC

D.C#

脚本语言( JavaScript  Python 等,是弱类型语言)介于 HTML  C , C++ ,Java, C# (强类型语言)等编程语言之间



4.在Jdk1.7中,下述说法中抽象类与接口的区别正确的有哪些? ABCD

A.抽象类中可以有普通成员变量,接口中没有普通成员变量。
B.抽象类和接口中都可以包含静态成员常量。
C.一个类可以实现多个接口,但只能继承一个抽象类
D.抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法。


1.普通成员变量:抽象类中可以有普通成员变量,接口中没有普通成员变量(static final变量);
2.方法:抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法;  
3.静态成员变量:抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。    
4.静态方法:抽象类中可以包含静态方法,但不能是抽象静态方法;接口中不能包含静态方法(静态的方法不能被覆写)  
5.构造方法(静态的):抽象类可以有构造方法,接口中不能有构造方法;

6.方法访问权限:抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。 

5.Given the following code:   
       import EnclosingOne.InsideOne
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1.class Enclosingone
2.{
3.    public class InsideOne {}
4.
5.}
6.public class inertest
7.{
8.    public static void main(string[]args)
9.    {
10.        EnclosingOne eo = new EnclosingOne();
11.        //insert code here
12.    }
13.
14.}
Which statement at line 11 constructs an instance of the inner class?    AD


A.InsideOne ei=eo.new InsideOne();
B.eo.InsideOne ei=eo.new InsideOne();
C.InsideOne ei=EnclosingOne.new InsideOne();
D.EnclosingOne.InsideOne ei=eo.new InsideOne();


1
2
3
4
5
6
7
8
9
10
11
12
13
public class Enclosingone {
    //非静态内部类
    public class InsideOne {}
    //静态内部类
    public static class InsideTwo{}
}
 
class Mytest02{
    public static void main(String args []){
        Enclosingone.InsideOne obj1 = new Enclosingone().new InsideOne();//非静态内部类对象
        Enclosingone.InsideTwo obj2 = new Enclosingone.InsideTwo();//静态内部类对象
    }
}


6.下面有关java threadlocal说法正确的有?ABCD


A.ThreadLocal存放的值是线程封闭,线程间互斥的,主要用于线程内共享一些数据,避免通过参数来传递
B.线程的角度看,每个线程都保持一个对其线程局部变量副本的隐式引用,只要线程是活动的并且 ThreadLocal 实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收
C.在Thread类中有一个Map,用于存储每一个线程的变量的副本。
D.对于多线程资源共享的问题,同步机制采用了“以时间换空间”的方式,而ThreadLocal采用了“以空间换时间”的方式


7.下面那些情况可以终止当前线程的运行?B


A.当一个优先级高的线程进入就绪状态时
B.抛出一个异常时
C.当该线程调用sleep()方法时
D.当创建一个新线程时


当一个优先级高的线程进入就绪状态时,它只是有较高的概率能够抢到CPU的执行权,不是一定就能抢到执行权,所以A错
抛出一个例外时,该线程就终止了,所以B正确
当前线程调用sleep()方法或者wait()方法时,只是暂时停止了该线程的运行,不是终止线程,注意题目说的是“终止”,就是完全停止,所以C错误

当创建一个新的线程时,该线程也加入到了抢占cpu执行权的队伍中,但是是否能抢到,并不清楚,和A的思想一样,所以D错误


8.下列关于容器集合类的说法正确的是?C

A.LinkedList继承自List

B.AbstractSet继承自Set

C.HashSet继承自AbstractSet

D.WeakMap继承自HashMap


A.LinkedList是继承自AbstractSequentialList(抽象类,实现了List接口)的,并且实现了List接口。所以A错误。
B.AbstractSet是实现了Set接口的,本身是一个抽象类。继承自AbstractCollection(抽象类,实现了Collection接口)。所以B错误。
C.HashSet是继承自AbstractSet,实现了Set接口。所以C正确。

D.WeakMap不存在于java集合框架的。只有一个叫做WeakHashMap(继承自AbstractMap)。

每日10道JAVA题(20180606)


9.在 Java 中,属于整数类型变量的是()C

A.single
B.double
C.byte

D.char

Java中的四类八种基本数据类型

第一类:整数类型  byte short int long
第二类:浮点型  float double
第三类:逻辑型    boolean(它只有两个值可取true false)

第四类:字符型  char


10.以下程序段的输出结果为:B

1
2
3
4
5
6
7
8
9
10
11
public class EqualsMethod
{
    public static void main(String[] args)
    {
        Integer n1 = new Integer(47);
        Integer n2 = new Integer(47);
        System.out.print(n1 == n2);
        System.out.print(",");
        System.out.println(n1 != n2);
    }
}


A.false,false
B.false,true
C.true,false
D.true,true



每日10道JAVA题(20180606)
使用Integer a = 1;或Integer a = Integer.valueOf(1); 在值介于-128至127直接时,作为基本类型。
使用Integer a = new Integer(1); 时,无论值是多少,都作为对象。