java抽象类数组初始化,2019年11月2日 java 1

题目1

关于抽象类和接口叙述正确的是? ( )

A 抽象类和接口都能实例化的

B 抽象类不能实现接口

C 抽象类方法的访问权限默认都是public

D 接口方法的访问权限默认都是public

正确答案: D

解析

抽象类

如果一个类含有抽象方法那么这个类就是抽象类。

抽象类需要使用关键字abstract来声明。

抽象类中的抽象方法只需要声明,并不需要实现。

抽象类一定具有子类,并且子类必须覆写抽象类中的所有的抽象方法。

在使用abstract定义抽象方法时,抽象方法的权限不能为private,这是因为抽象方法必须被覆写,如果使用private来定义方法的权限,那么该方法无法被子类覆写,会出现错误

普通通类和抽象类的区别

实际上抽象类相比于普通类,只是在类定义的时候多定义了一个抽象方法,除了不能直接进行对象的实例化之外没有其它区别

题目2

下面属于java合法变量定义的是?

A final

B 1var1

C _var2

D var3&

正确答案: C

解析

标识符可以包括这4种字符:

字母、数字,下划线、$、

开头不能是数字;

不能是关键字

A.final 是关键字

B.不能以数字做首写

C.首写字母可以为下划线

D.符号只能使用美元符合下划线,不能使用&

题目3

运行下面代码,输出的结果是()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22class A{

public A(){

System.out.println("class A");

}

{ System.out.println("I'm A class"); }

static { System.out.println("class A static"); }

}

public class B extends A{

public B(){

System.out.println("class B");

}

{

System.out.println("I'm B class");

}

static {

System.out.println("class B static");

}

public static void main(String[] args){

new B();

}

}

A

1

2

3

4

5

6class A static

class B static

I'm A class

class A

I'm B class

class B

B

1

2

3

4

5

6class A static

I'm A class

class A

class B static

I'm B class

class B

C

1

2

3

4

5

6class A static

class B static

class A

I'm A class

class B

I'm B class

D

1

2

3

4

5

6class A static

class A

I'm A class

class B static

class B

I'm B class

正确答案: A

解析

Java程序初始化顺序:

父类的静态代码块

子类的静态代码块

父类的普通代码块

父类的构造方法

子类的普通代码块

子类的构造方法

题目4

关于如下程序的描述哪个是正确的?( )

1

2

3

4

5

6public class Person{

static int arr[] = new int[5];

public static void main(String a[]){

System.out.println(arr[0]);

}

}

A 编译将产生错误

B 编译时正确,但运行时将产生错误

C 正确,输出0

D 正确,输出 null

正确答案: C

解析

数组会自动初始化

数组无论是在定义为实例变量还是局部变量,若没有初始化,都会被自动初始化

Java中对于整型数组默认初始化0。

对字符数组初始化空格。

对对象数组初始化为null。

成员变量有默认值

只有类的成员变量才有默认初始值。

局部变量必须手动赋值

局部变量必须手动赋初值,否则编译报错

题目5

JSP分页代码中,哪个步骤次序是正确的?

A 先取总记录数,得到总页数,最后显示本页的数据。

B 先取所有的记录,得到总页数,再取总记录数,最后显示本页的数据。

C 先取总页数,得到总记录数,再取所有的记录,最后显示本页的数据。

D 先取本页的数据,得到总页数,再取总记录数,最后显示所有的记录。

正确答案: A

解析

不足:JSP方面的我还不是很了解

先取总记录数,得到总页数,再取所有的记录,最后显示本页的数据

题目6

下面关于程序编译说法正确的是()

A java语言是编译型语言,会把java程序编译成二进制机器指令直接运行

B java编译出来的目标文件与具体操作系统有关

C java在运行时才进行翻译指令

D java编译出来的目标文件,可以运行在任意jvm上

正确答案: C

解析

A:java编译成的是字节码,再被各系统的jvm翻译成本系统可以识别的机器码,这就是java一次编程多平台应用的跨平台性

B:java源文件生成的是class文件,与系统无关

C:注意字节码和机器码不是一回事 java程序在运行时字节码才会被jvm翻译成机 器码,所以说java是解释性语言

D:注意jvm的版本,好比人穿裤子,一条裤子能被任何人穿上吗

低版本的jvm没有办法运行高版本的java代码

题目7

下面说法正确的是?()

A 调用Thread的sleep()方法会释放锁,调用wait()方法不释放锁

B 一个线程调用yield方法,可以使具有相同优先级线程获得处理器

C 在Java中,高优先级的可运行的线程会抢占低优先级线程的资源

D java中,线程可以调用yield方法使比自己低优先级的线程运行

正确答案: BC

解析

yield()让当前正在运行的线程回到可运行状态,以允许具有相同优先级的其他线程获得运行的机会。因此,使用yield()的目的是让具有相同优先级的线程之间能够适当的轮换执行。但是,实际中无法保证yield()达到让步的目的,因为,让步的线程可能被线程调度程序再次选中。

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值