Java选择题(二)

1.HashSet子类依靠(A)方法区分重复元素。

A)toString(),equals()     B)clone(),equals()     C)hashCode(),equals()      D) getClass(),clone()

解析:HashSet内部使用Map保存数据,即将HashSet的数据作为Map的key值保存,这也是HashSet中元素不能重复的原因。而Map中保存key值前,会去判断当前Map中是否含有该key对象,内部是先通过key的hashCode,确定有相同的hashCode之后,再通过equals方法判断是否相同。

2.以下语句的执行结果是什么?A

1+”10”+3+”2”

A.”11032”     B .“16”     C.16     D.“32101”

解析:注意“+”的两边的类型

3.请问输出的结果是:A

1

2

3

4

5

6

7

8

9

10

11

12

class A{

    public A(String str){

         

    }

}

public class Test{

    public static void main(String[] args) {

        A classa=new A("he");

        A classb=new A("he");

        System.out.println(classa==classb);

    }

}

A false .     B true        C报错       D以上选项都不正确

解析:== 表示是否指向的是同一个内存。

4.下面所示的java代码,运行时,会产生(D)类型的异常

1

2

int Arry_a[] = new int[10];

System.out.println(Arry_a[10]);

A. ArithmeticException       B.NullPointException        C.IOException       D.ArraylndexOutOfBoundsException

解析:定义的数组长度为10,角标即为0-9;访问数组角标10会出现数组角标越界异常。

5.为AB类的一个无形式参数无返回值的方法method书写方法头,可以用AB.method()方式调用,该方法头的形式为(   )。

A.static void method( )       B.public void method( )     C.final void method( )      D.abstract void method( )

解析:AB为一个类,可以不创建对象,直接使用AB.method  ("类名.方法名"的方式),所以method是static修饰的静态方法;其次method无返回值,所以method是void类型的方法。

6.Java中只有整型才能使用的运算符为?C

A.*       B./     C.%    D.+

解析:ABD选项的操作符都可用于float和double,只有%取余操作,只适用于整型

7.明朝时期张居正改革的一条鞭法的主要思想是(C)

A面向过程               B万物皆数                  C统一接口             D泛型编程

解析:一条鞭法的主要思想是“税以银征收”,取消了原本的田赋、力役和其他杂税,促进自然经济的瓦解和商品经济的发展。面向过程是指以过程为中心的编程思想,形成模块化特点。万物皆数是毕达哥拉斯学派的数学哲学理念(特指有理数),属于世界观的一种。泛型编程是一种语言机制,能够帮助实现一个通用的标准容器库。所谓通用的标准容器库,就是要能够做到,比如用一个List类存放所有可能类型的对象这样的事;泛型编程让你编写完全一般化并可重复使用的算法,其效率与针对某特定数据类型而设计的算法相同。泛型即是指具有在多种数据类型上皆可操作的含意,与模板有些相似。一条鞭法的主要思想并不是以征税过程为中心的思想,同时也不是在多种类型上的操作。

8.用户不能调用构造方法,只能通过new关键字自动调用。(B

A.正确      B.错误

解析:在类内部可以用户可以使用关键字this.构造方法名()调用(参数决定调用的是本类对应的构造方法);在子类中用户可以通过关键字super.父类构造方法名()调用(参数决定调用的是父类对应的构造方法);反射机制对于任意一个类,都能够知道这个类的所有属性和方法,包括类的构造方法。

9.定义有StringBuffer s1=new StringBuffer(10);s1.append(“1234”)则s1.length()和s1.capacity()分别是多少?A

A.4 10    B.4 4     C.10 10     D.10 4

解析:length 返回当前长度;如果字符串长度没有初始化长度大,capacity返回初始化的长度;如果append后的字符串长度超过初始化长度,capacity返回增长后的长度。

10.在Java中,关于HashMap类的描述,以下错误的是(A)?

A.HashMap能够保证其中元素的顺序
B.HashMap允许将nulI用作值
C.HashMap允许将null用作键
D.HashMap使 用键/值得形式保存数据

解析:HashMap的底层是由数组加链表实现的,对于每一个key值,都需要计算哈希值,然后通过哈希值来确定顺序,并不是按照加入顺序来存放的,因此可以认为是无序的,但不管是有序还是无序,它都一个自己的顺序。故A错。最开始有Hashtable,Hashtable是不允许key和value的值为空的,但后来开发者认为有时候也会有key值为空的情况,因为可以允许null为空,通过查看HashMap的源代码就知道:if(key = null) {putForNullKey(value);};Map底层都是用key/value键值对的形式存放的。

11.下列哪些针对代码运行结果的描述是正确的?A

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

class Car extends Vehicle

{

    public static void main (String[] args)

    {

        new  Car(). run();

    }

    private final void run()

    {

        System. out. println ("Car");

    }

}

class Vehicle

{

    private final void run()

    {

        System. out. println("Vehicle");

    }

}

A.Car     B.Vehicle     C.Compiler error at line 3     D.Compiler error at line 5      E.Exception thrown at runtime

解析:首先final声明的方法是不能被覆盖的,但是这里并不错误,因为方法是private的,也就是子类没有继承父类的run方法,因此子类的run方法跟父类的run方法无关,并不是覆盖。new Car().run()也是调用子类的run方法。

12.以下代码的输出的正确结果是D

1

2

3

4

5

6

public class Test {

public static void main(String args[]) {

String s = "祝你考出好成绩!";

System.out.println(s.length());

}

}

A.24     B.16   C.15     D.8

解析:length得到的是字符,不是字节。

13.以下程序的运行结果是:(  )

1

2

3

4

5

6

7

8

9

10

TreeSet<Integer> set = new TreeSet<Integer>();

 TreeSet<Integer> subSet = new TreeSet<Integer>();

 for(int i=606;i<613;i++){

 if(i%2==0){

 set.add(i);

 }

 }

 subSet = (TreeSet)set.subSet(608,true,611,true);

 set.add(629);

 System.out.println(set+" "+subSet);

A编译失败
B发生运行时异常
C[606, 608, 610, 612, 629] [608, 610]
D[606, 608, 610, 612, 629] [608, 610,629]

14.如果一个list初始化为{5,3,1},执行以下代码后,其结果为(B)?
nums.add(6);
nums.add(0,4);
nums.remove(1);

A.[5,3, 1, 6]        B.[4,3, 1, 6]        C. [4,3, 6]        D.[5,3,6]

解析:nums.add(6); //往后边加一个6,{5,3,1,6};nums.add(0,4);//往下标为0的数加一个4,{4,5,3,1,6};nums.remove(1); // 移除下标为1 的元素,{4,3,1,6}

15.如果一个接口Cup有个方法use(),有个类SmallCup实现接口Cup,则在类SmallCup中正确的是?  (C )

A.void use() { ..}
B.protected void use() { ...
C.public void use() {…}
D.以上语句都可以用在类SmallCup中

解析:既然是实现接口,就要实现接口的所以方法,相当于重写方法,方法的重写需要满足:三同一大一小(方法名、返回值类型、形参相同;访问权限>=重写前;抛出异常<=重写前)

16.给出以下代码,请给出结果:(B

1

2

3

4

5

6

7

8

9

10

public class TestObj{

    public static void main(String[] args){

        Object o=new Object(){

            public boolean equals(Object obj){

                return true;

            }

        };

        System.out.println(o.equals(“Fred”));

    }

}

A.运行时抛出异常
B.true
C.Fred
D.第三行编译错误

解析:创建了一个匿名内部类,并将所创建的匿名对象赋给 Object (多态:子类对象赋给超类引用)。同时,该匿名内部类重写了 Object 类的 equals 方法。在执行语句时,根据多态及覆盖原则,会调用匿名内部类重写后的 equals 方法。

17.表达式(short)10/10.2*2运算后结果是什么类型?C

A.short       B.int      C.double      D.float

解析:要注意是(short)10/10.2*2,而不是(short) (10/10.2*2),前者只是把10强转为short,又由于式子中存在浮点数,所以会对结果值进行一个自动类型的提升,浮点数默认为double,所以答案是double;后者是把计算完之后值强转short。

18.下面有关servlet service描述错误的是?B

A.不管是post还是get方法提交过来的连接,都会在service中处理
B.doGet/doPost则是在javax.servlet.GenericServlet中实现的
C.service()是在javax.servlet. Servlet接口中定义的
D.service判断请求类型,决定是调用doGet还是doPost方法

解析:doGet/doPost 则是在 javax.servlet.http.HttpServlet 中实现的。

19.抽象类方法的访问权限默认都是public。( B

A.正确      B.错误

20.下列在Java语言中关于数据类型和包装类的说法,正确的是(B
A.基本(简单)数据类型是包装类的简写形式,可以用包装类替代基本(简单)数据类型
B.long和double都占了64位( 64bit)的存储空间。
C.默认的整数数据类型是int,默认的浮点数据类型是float。
D.和包装类-样,基本(简单) 数据类型声明的变量中也具有静态方法,用来完成进制转化等。

解析:A包装和基本类型不是同一个概念 C默认的浮点数据类型是double,如果要指明使用float,则需要在后面加f  D基本数据类型是没有静态方法的,但是基本数据类型的包装类却有。

21.输出结果为:B

1

2

String str = "";

System.out.print(str.split(",").length);

A.0      B.1      C.出现异常

解析:String获取长度用的是length()方法,而数组类型我们直接用属性length获取长度,所以String[]数组类型我们应该用length获取长度;总结来说,因为原字符串不包含分隔符,所以直接返回原字符串,分割出来只有一个空的字符串数组。

22.下面程序的运行结果(D

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

        Object obj=new Object();

        List aList=new ArrayList();

        List bList=new LinkedList();

         

        long t1=System.currentTimeMillis();

        for(int i=0;i<50000;i++){

            aList.add(0,obj);

        }

        long t2=System.currentTimeMillis()-t1;

         

        t1=System.currentTimeMillis();

        for(int i=0;i<50000;i++){

            bList.add(0,obj);

        }

        long t3=System.currentTimeMillis()-t1; 

A.t2       B.t2=t3      C.不确定      D.t2>t3

解析:ArrayList内部是动态数组实现,在增加空间时会复制全部数据到新的容量大一些的数组中。而LinkedList内部为双向链表,可以按需分配空间,扩展容量简单,因此LinkedList用时少。

23.下列语句正确的是:D

A形式参数可被字段修饰符修饰

B形式参数不可以是对象

C形式参数为方法被调用时真正被传递的参数

D形式参数可被视为local variable

24.以下代码的输出结果是?C

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

public class B

{

    public static B t1 = new B();

    public static B t2 = new B();

    {

        System.out.println("构造块");

    }

    static

    {

        System.out.println("静态块");

    }

    public static void main(String[] args)

    {

        B t = new B();

    }

}

A静态块构造块构造块构造块
B构造块静态块构造块构造块
C构造块构造块静态块构造块
D构造块构造块构造块静态块

解析:开始时JVM加载B.class,对所有的静态成员进行声明,t1 t2被初始化为默认值,为null,又因为t1 t2需要被显式初始化,所以对t1进行显式初始化,初始化代码块→构造函数(没有就是调用默认的构造函数),咦!静态代码块咋不初始化?因为在开始时已经对static部分进行了初始化,虽然只对static变量进行了初始化,但在初始化t1时也不会再执行static块了,因为JVM认为这是第二次加载类B了,所以static会在t1初始化时被忽略掉,所以直接初始化非static部分,也就是构造块部分(输出''构造块'')接着构造函数(无输出)。接着对t2进行初始化过程同t1相同(输出'构造块'),此时就对所有的static变量都完成了初始化,接着就执行static块部分(输出'静态块'),接着执行,main方法,同样也,new了对象,调用构造函数输出('构造块')。

25.在java语言中,如果你编写一个多线程序,可以使用的方法是(AB

A扩展类Thread
B实现Runnable接口
C扩展类Runnable
D实现接口Thread

解析:继承Thread类(Override它的run方法);实现Runnable接口(实现run方法);使用ExecutorService、Callable、Future实现有返回结果的多线程。

26.已知 boolean result  = false,则下面哪个选项是合法的:BD

A.result=1       B.result=true;       C.if(result!=0) {//so something..}       D.if(result) {//do something...}

解析:boolean类型只有两个直接量值:true和false.    除成员变量会有默认初始值外,其他变量必须在第一次使用之前初始化。

27.下面有关java的instanceof、?、&、&&说法正确的有?ABCD

A.instanceof可用来判断某个实例变量是否属于某种类的类型。
B."?:"三目运算符
C.&在逻辑运算中是非短路逻辑与,在位运算中是按位与.
D.&&逻辑运算:逻辑与

解析:instanceof  用来判断某个实例变量是否属于某种类的类型。这句话不准确,instanceof可以用来判断某个实例变量是否属于某种类的类型,但它的功能不局限于此,比如还可以判断某个类是否属于某个类的子类的类型。

28.如下哪些是 java 中有效的关键字(AD

A.native          B.NULL          C.false        D.this

解析:true、false、null都不是关键字;goto、const、是保留的关键字。

29.有关hashMap跟hashTable的区别,说法正确的是?ABCD

A.HashMap和Hashtable都实现了Map接口
B.HashMap是非synchronized,而Hashtable是synchronized
C.HashTable使用Enumeration,HashMap使用Iterator
D.HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。

30.下列哪些方法是针对循环优化进行的 ABD

A强度削弱
B删除归纳变量
C删除多余运算.
D代码外提

解析:常见的代码优化技术有:复写传播,删除死代码, 强度削弱,归纳变量删除。

31.下面不是类及类成员的访问控制符的是(   C   )。(不考虑内部类的情况)

A.public     B.private     C.static     D.protected

解析:类访问控制符只有三种:public ,private, protected

static和访问控制无关

32.下列类在多重catch中同时出现时,哪一个异常类应最后一个列出(C

A.ArithmeticException

B.NumberFormatException

C.Exception

D.ArrayIndexOutOfBoundException

解析:这是多重catch块的顺序问题,由于异常处理系统就近寻找匹配异常处理程序,应先子类后父类。

33.以下有关构造方法的说法,正确的是:(A

A.一个类的构造方法可以有多个

B.构造方法在类定义时被调用

C.构造方法只能由对象中的其他方法调用

D.构造方法可以和类同名,也可以和类名不同

解析:A一个类有多个构造方法便是重载的表现。重载参数列表不同。所以A是正确的。B构造方法是在对象创建时就被调用,用于初始化。C构造方法是给与之对应的对象进行初始化,初始化的动作只执行一次。D构造方法必须与所在类的名称同名。

34.局部变量能否和成员变量重名?A

A.可以,局部变量可以与成员变量重名,这时可用“this”来指向成员变量

B.可以,这时可用“local”关键字来指向局部变量

C.不能,局部变量不能与成员变量重名

D.不能,在一个类中不能有重名变量,不管是成员变量还是函数中的局部变量

解析:局部变量可以和成员变量重名,不加“this”修饰时,优先使用最近的变量。

35.后端获取数据,向前端输出过程中,以下描述正确的是D

A.对于前端过滤过的参数,属于可信数据,可以直接输出到前端页面

B.对于从数据库获得的数据,属于可信数据,可以直接输出到前端页面

C.对于从用户上传的Excel等文件解析出的数据,属于可信数据,可以直接输出到前端页面

D.其它选项都不属于可信数据,输出前应该采用信息安全部发布的XSSFilter做进行相应编码

解析:后端获取数据,向前端输出的过程中,输出前应该采用信息安全部发布的XSSFilter进行相应编码。

36.如下Java语句 double x=2.0; int y=4; x/=++y; 执行后,x的值是(C

A.0.5     B.2.5   C.0.4    D.2.0

解析:++y 是先加再运行

37.以下代码执行的结果显示是多少(B

public class Demo{

    public static void main(String[] args){

        System.out.print(getNumber(0));

        System.out.print(getNumber(1));

        System.out.print(getNumber(2));

        System.out.print(getNumber(4));

    }

       public static int getNumber(int num){

        try{

            int result = 2 / num;

            return result;

        }catch (Exception exception){

            return 0;

        }finally{

            if(num == 0){

                return -1;

            }

            if(num == 1){

                return 1;

            }

        }

    }

}

A.0110

B.-1110

C.0211

D.-1211

解析:finally一定会在return之前执行,但是如果finally使用了return或者throw语句,将会使trycatch中的return或者throw失效

38.Java语言与其它语言相比,独有的特点是( C

A.面向对象

B.多线程

C.平台无关

D.网络编程

解析:跨平台

39.以下程序的执行结果是:A

1

2

3

4

5

6

7

8

9

10

11

12

13

static boolean foo(char c)

 {

 System.out.print(c);

 return true;

 }

 public static void main(String[] args) {

 int i =0;

 for(foo('A');foo('B')&&(i<2);foo('C'))

 {

 i++;

 foo('D');

 }

 }

A.ABDCBDCB
B.ABCDABCD
C.编译时出错
D.运行时抛出异常

40.类A1和类A2在同一包中,类A2有个protected的方法testA2,类A1不是类A2的子类(或子类的子类),类A1可以访问类A2的方法testA2。( A

A.正确     B.错误

解析:public:可以被所有其他类所访问;private:只能被自己访问和修改;protected:自身、子类及同一个包中类可以访问;default:同一包中的类可以访问,声明时没有加修饰符,认为是friendly。

41.下面代码的执行结果是 :A

class Chinese{

    private static Chinese objref =new Chinese();

    private Chinese(){}

    public static Chinese getInstance() { return objref; }

}

public class TestChinese {

    public static void main(String [] args) {

    Chinese obj1 = Chinese.getInstance();

    Chinese obj2 = Chinese.getInstance();

    System.out.println(obj1 == obj2);

}

}

A.true

B.false

C.TRUE

D.FALSE

解析:单例模式: 第一步,不让外部调用创建对象,所以把构造器私有化,用private修饰。 第二步,怎么让外部获取本类的实例对象?通过本类提供一个方法,供外部调用获取实例。由于没有对象调用,所以此方法为类方法,用static修饰。 第三步,通过方法返回实例对象,由于类方法(静态方法)只能调用静态方法,所以存放该实例的变量改为类变量,用static修饰。 最后,类变量,类方法是在类加载时初始化的,只加载一次。所以由于外部不能创建对象,而且本来实例只在类加载时创建一次。

42.以下哪项是错误的( A)。

A.JPanel中不能包含按钮。
B.Frame 中可以设置Panel。
C.Applet 中可以包含按钮。
D.Dialog 中不可以设置菜单条。

解析:JPanel 是 Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing 包中,是一种轻量级容器,可以加入到JFrame窗体中。JPanel默认的布局管理器是FlowLayout,其自身可以嵌套组合,在不同子容器中可包含其他组件(component),如JButton、JTextArea、JTextField 等,功能是对对窗体上的这些控件进行组合,A是错误的。

43.下面哪种情况会导致持久区jvm堆内存溢出?C

A.循环上万次的字符串处理

B.在一段代码内申请上百M甚至上G的内存

C.使用CGLib技术直接操作字节码运行,生成大量的动态类

D.不断创建对象

44.面向对象方法的多态性是指(C

A.一个类可以派生出多个特殊类

B.一个对象在不同的运行环境中可以有不同的变体

C.针对一消息,不同的对象可以以适合自身的方式加以响应

D.一个对象可以是由多个其他对象组合而成的

解析:对于同一个父类方法,不同的子类会有不同的实现方式

45.What results from the following code fragment? C

1

2

3

int i = 5;

int j = 10;

System.out.println(i + ~j);

A.Compilation error because”~”doesn’t operate on integers
B.-5
C.-6
D.15


解析:公式-n=~n+1可推出~n=-n-1,所以~10=-11再加5结果为-6

46.下面有关struts1和struts2的区别,描述错误的是?B

A.Struts1要求Action类继承一个抽象基类。Struts 2 Action类可以实现一个Action接口
B.Struts1 Action对象为每一个请求产生一个实例。Struts2 Action是单例模式并且必须是线程安全的
C.Struts1 Action 依赖于Servlet API,Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试
D.Struts1 整合了JSTL,Struts2可以使用JSTL,但是也支持OGNL

解析:从action类上分析:
1.Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。 
2. Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。
从Servlet 依赖分析: 
3. Struts1 Action 依赖于Servlet API ,因为当一个Action被调用时HttpServletRequest 和 HttpServletResponse 被传递给execute方法。 
4. Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2 Action仍然可以访问初始的request和response。但是,其他的元素减少或者消除了直接访问HttpServetRequest 和 HttpServletResponse的必要性。
从action线程模式分析: 
5. Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。 
6. Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)

47.SSH MVC开发模式说法正确的是( B

A.Struts进行业务流转
B.Hibernate进行数据库操作的封装
C.Spring进行流程控制
D.其他选项均不正确

解析:Struts 主要控制逻辑关系的处理  ;Spring  是一个轻量级的控制反转 (IoC) 和面向切面 (AOP) 的容器框架;Hibernate  是数据持久化层 , 是一种新的对象、关系的映射工具 , 提供了从 Java 类到数据表的映射,也提供了数据查询和恢复等机制

48.下面哪些接口直接继承自Collection接口(AC

A.List

B.Map

C.Set

D.Iterator

49.不能用来修饰interface的有( ACD)(仅限外部接口)

A.private
B.public
C.protected
D.static

50.以下哪些类是线程安全的(ADE

A.Vector
B.HashMap
C.ArrayList
D.StringBuffer
E.Properties

解析:Vector相当于一个线程安全的List;HashMap是非线程安全的,其对应的线程安全类是HashTable;Arraylist是非线程安全的,其对应的线程安全类是Vector;StringBuffer是线程安全的,相当于一个线程安全的StringBuilder;Properties实现了Map接口,是线程安全的。

51.final方法等同于private方法。( B  )

 A.正确    B.错误

private方法只可以在类的内部使用,在类外根本访问不到, 而final方法可以在类外访问,但是不可以重写该方法,就是说可以使用该方法的功能但是不可以改变其功能

52.下列叙述错误的是(C

A.java程序的输入输出功能是通过流来实现的
B.java中的流按照处理单位可分成两种:字节流和字符流
C.InputStream是一个基本的输出流类。
D.通过调用相应的close()方法关闭输入输出流

"基本的",其实就是将流分为节点流和处理流,而“基本的”是表示节点流所以C选项可以看成:InputStream是属于节点输出流;

所以我们就要判断InputStream是节点流还是处理流,是输出流还是输入流

53.在Java中,main()方法的返回值的类型是:C

A.public
B.static
C.void
D.String

54.有以下程序片段,下列哪个选项不能插入到第一行 ( A)。

1)

2)public  class  A{

3)//do sth

4) }

A.public class  MainClass{ }
B.package  mine;
C.class ANotherClass{   }
D.import  java.util.*;

Java一个源程序只能有一个public类存在,且类名与文件名相同。Java程序是从main方法开始执行的,public为类加载器提供入口,然后找到public类中的main方法开始执行。如果存在多个public类,程序将不知道该从哪里执行。内部类可以是public的,因为内部类是作为外部类的成员存在的。

55.What is the result?C

1

2

3

4

5

6

7

8

9

10

public class IfTest{

    public static void main(string[]args){

        int x=3;

        int y=1;

        if(x=y)

            System.out.println(“Not equal”);

        else

            System.out.println(“Equal”);

     }

}

A.The output is “Equal”
B.The output in “Not Equal”
C.An error at line 5 causes compilation to fall.
D.The program executes but does not print a message.

if()语句括号中为比较表达式,返回值要么是true,要么是false,if(x=y)是将y赋值给x,但是数据类型是int类型的,编译不能通过

56.事务隔离级别是由谁实现的?C

A.Java应用程序
B.Hibernate
C.数据库系统
D.JDBC驱动程序

我们写java程序的时候只是设定事物的隔离级别,而不是去实现它;Hibernate是一个java的数据持久化框架,方便数据库的访问;事物隔离级别由数据库系统实现,是数据库系统本身的一个功能;JDBC是java database connector,也就是java访问数据库的驱动

57.在java的一个异常处理中,可以包含多个的语句块是 ( D)。

A.try
B.finally
C.throws
D.catch

58.关于继承和实现说法正确的 是 ? (   )

A.类可以实现多个接口,接口可以继承(或扩展)多个接口
B.类可以实现多个接口,接口不能继承(或扩展)多个接口
C.类和接口都可以实现多个接口
D.类和接口都不可以实现多个接口

类与类之间的关系为继承,只能单继承,但可以多层继承。 类与接口之间的关系为实现,既可以单实现,也可以多实现。 接口与接口之间的关系为继承,既可以单继承,也可以多继承。 

59.JVM内存不包含如下哪个部分( D  )

A.Stacks
B.PC寄存器
C.Heap
D.Heap Frame

java好像只有栈帧 没有堆帧 pc寄存器 就是 程序计数器;程序计数器是一个以线程私有的一块较小的内存空间,用于记录所属线程所执行的字节码的行号指示器;字节码解释器工作时,通过改变程序计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳准、异常处理、线程恢复等基础功能都需要依赖程序计数器来完成 

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

1

2

3

4

5

6

7

8

9

10

11

12

13

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.}

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

61.下列语句中,正确的是B

A.float x=0.0
B.boolean b=3>5
C.、char c="A"
D.double  =3.14

62.下面字段声明中哪一个在interface主体内是合法的? (B

A.private final static int answer = 42;
B.public static int answer = 42;
C.final static answer = 42;
D.int answer;

在接口中,属性都是默认public static final修饰的,所以: A(错误):不能用private修饰; B(正确):在接口中,属性默认public static final,这三个关键字可以省略;

 C(错误):没写属性的类型;   D(错误):final修饰的属性必须赋值;

63.(D)运算符把其操作数中所有值为0和所有值为1的位分别在结果的相应中设置1和0

A.&
B.|
C.!
D.~

~是位运算符,意义是 按位非(NOT),按位非也叫做补,一元运算符NOT“~”是对其运算数的每一位取反。

64.下面程序段的时间复杂度是(B

1

2

3

4

5

i = k = 0;

while( k < n ){

   i ++ ;

k += i ;

}

A.O(n)
B.O(n^1/2)
C.O(n*i)
D.O(n+i)

加是开根号,乘是取对数

65.下面哪个方法与Applet的显示无关?A

A.draw
B.paint
C.repaint
D.update

66.以下哪几种是java的基本数据类型。BC

A.String
B.int
C.boolean
D.Double

基本数据类型:byte,short,int,long,double,float,boolean,char

67.jdk1.8中,下面有关java 抽象类和接口的区别,说法错误的是?BD

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

接口可以有default、static方法

68.下列哪些操作会使线程释放锁资源?BC

A.sleep()
B.wait()
C.join()
D.yield()

所谓的释放锁资源实际是通知对象内置的monitor对象进行释放,而只有所有对象都有内置的monitor对象才能实现任何对象的锁资源都可以释放。又因为所有类都继承自Object,所以wait()就成了Object方法,也就是通过wait()来通知对象内置的monitor对象释放,而且事实上因为这涉及对硬件底层的操作,所以wait()方法是native方法,底层是用C写的。

其他都是Thread所有,所以其他3个是没有资格释放资源的,而join()有资格释放资源其实是通过调用wait()来实现的

69.What is Static Method in Java(ABC

A.t is a method which belongs to the class and not to the object(instance)
B.A static method can access only static data. It can not access non-static data (instance variables)
C.A static method can call only other static methods and can not call a non-static method from it.
D.A static method can not be accessed directly by the class name and doesn’t need any object

不管实例成员还是实例方法,都可以在静态方法里实例化一个对象再去调用

70.下面关于面向对象的一些理解哪些是错误的(    C    )

A.面向对象的最重要的特性是支持继承、封装和多态
B.系统设计应该遵循开闭原则,系统应该稳定不不可修改,但应支持通过继承、组合等方式进行扩展
C.函数式的语言必然是面向对象的语言
D.面向对象设计时,每个类的职责应该单一,不要再一个类中引入过多的接口
E.过程式语言和面向对象的语言各有其优势,过程式语言更加灵活,面向对象语言更加强调抽象和封装
F.Java和C++都是静态类型的面向对象编程语言

猜你喜欢

转载自blog.csdn.net/weixin_49811734/article/details/113459377