- 以下哪个方法用于定义线程的执行体? ()
A.start()
B.join()
C.run()
D.synchronized()
正确答案: C 你的答案: C (正确)
解析:run()方法是用来定义这个线程在启动的时候需要做什么,但是,直接执行run()方法那就不是线程,必须使用start()启动,那样才是线程
2.下列关于java抽象类的说法哪个正确?
A.某个抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法
B.接口和抽象类是同一回事
C.可以用抽象类直接去实例化创建对象
D.一个类只能继承一个抽象类
正确答案: D 你的答案: A (错误)
解析:
A.非抽象类继承抽象类,必须将抽象类中的方法重写,否则需将方法再次申明为抽象。所以这个方法还可再次声明为抽象,而不用重写。而用重载也错了,重载是在同一个类中,重写、覆盖才是在父子类中。
B.抽象类可以没有抽象方法,接口是完全的抽象,只能出现抽象方法。
C.抽象类无法实例化,无法创建对象。现实生活中也有抽象类的类子,比如说人类是一个抽象类,无法创建一个叫人类的对象,人继承人类来创建对象。况且抽象类中的抽象方法只有声明,没有主体,如果实例化了,又如何去实现调用呢?
D因为类是单继承的,类继承了一个抽象类以后,就不能再继承其他类了。
3.Java语言与其它语言相比,独有的特点是( )
A.面向对象
B.多线程
C.平台无关
D.网络编程
正确答案: C 你的答案: A (错误)
解析:java的“一次编写,到处运行”的跨平台性是独有的特点
4.以下程序的输出结果是
public class Print{
static boolean out(char c){
System.out.println©;
return true;
}
public static void main(String[] argv){
int i = 0;
for(out(‘A’);out(‘B’) && (i<2);out(‘C’)){
i++;
out(‘D’);
}
}
}
A.ABDCBDCB
B.BCDABCD
C.编译错误
D.运行错误
正确答案: A 你的答案: A (正确)
解析: 答案选A
for循环执行开始
首先执行out(‘A’) 输出A;
然后执行out(‘B’)&&(i<2)此时输出B,i=0,判断条件为真,执行for循环的循环体;
执行i++,out(‘D’),输出D i=1;
执行out(‘C’),输出C
然后执行out(‘B’)&&(i<2) 此时输出B,i=1 判断条件为真 ,执行for循环的循环体;
执行i++,out(‘D’),输出D i=2;
执行out(‘C’),输出C
然后执行out(‘B’)&&(i<2) 此时输出B,i=2,不满足i<2 判断条件为假 ,跳出循环;
所以结果为ABDCBDCB
5.关于java编译和运行命令叙述不正确的是?
A.运行“java Scut.class”
B.运行“java Scut”
C.运行“javac Scut.java”的输出文件是Scut.class
D.java这个命令的运行对象是Scut.class
正确答案: A 你的答案: D (错误)
解析: A 错误 运行命令是 java + 你的 Java 程序的名字但是不加后缀 所以这道题错在多了 .class这个后缀
B 正确
C javac 是编译命令,后跟 你的 Java 程序名字加后缀,也就是 YourClassName.java 所以答案正确
D JVM (Java 虚拟机)运行的是编译后的字节码文件(以.class为后缀的文件),也就是 YourClassName.class 所以答案正确
6.变量a是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF;变量b是一个64位有符号的整数,初始值用16进制表示为:0x8000000000000000。则a+b的结果用10进制表示为多少?
A.1
B.-1
C.263+262+…+22+21+2^0
D.–(263+262+…+22+21+2^0)
正确答案: B 你的答案: C (错误)
解析:
(1)a+b的16进制表示为:OxFFFFFFFFFFFFFFF(16位F),转为2进制为111……111(64位1,每个F->4位2)。
(2)有符号数:是针对二进制来讲的。用最高位作为符号位,“0”代表“+”,“1”代表“-”。所以a+b的结果是一个负数。
(3)计算机中负数是以补码的形式保存的,将补码转换成原码的计算方式如下:
①. 对于正数,原码与补码相同。
②.对于负数,将补码除符号位之外,按位取反,末位加1,即得到原码。
(4)a + b = 111……111(64位1)
取反:100……000(1位1,后面63位0)
加一:100……00(中间62位0)
10进制:-1。
7.在创建派生类对象,构造函数的执行顺序()
A.基类构造函数,派生类对象成员构造函数,派生类本身的构造函数
B.派生类本身的构造函数,基类构造函数,对象成员构造函数
C.基类构造函数,派生类本身的构造函数,派生类对象成员构造函数
D.对象成员构造函数,基类构造函数,派生类本身的构造函数
正确答案: A 你的答案: C (错误)
解析:父类静态域——》子类静态域——》父类成员初始化——》父类构造块——》1父类构造方法——》2子类成员初始化——》子类构造块——》3子类构造方法;
8. Java 多线程有几种实现方法?( )
A.继承Thread类
B.实现Runnable接口
C.实现Thread接口
D.以上都不正确
正确答案: A B 你的答案: A B (正确)
解析:
实现多线程的方法:
1.继承Thread类
2.实现Runnable接口
3.实现Callable接口,然后使用 FutureTask包装,因为Callable接口没有实现Runnable接口不能做为Thread的target,而FutureTask是在Java程序中可以取消的异步运算,有可以开始,取消运算,查询运算是否结束,获得查询结果的功能,特别注意的是,如果查询结果时,运算还没完成则会阻塞线程。
4.使用,java.util.current.ThreadPoolExecutor来获取线程,执行多线程
9.下面属于java包装类的是?
A.String
B.Long
C.Character
D.Short
正确答案: B C D 你的答案: A B D (错误)
解析:
在JDK中针对各种基本类型分别定义相应的引用类型–称为封装类
Boolean Byte Short Integer Long Float Double Character
10true、false、null、sizeof、goto、synchronized 哪些是Java关键字?
A.true
B.false
C.null
D.sizeof
E.goto
F.synchronized
正确答案: E F 你的答案: A B C E F (错误)
解析:
牛客网第22天
最新推荐文章于 2024-08-22 20:10:05 发布