A.start()
B.run()
C.exit()
D.getPriority()
答案:
C
解析:
线程常用方法:
start(): 使该线程开始执行;Java 虚拟机调用该线程的run方法。
run():如果该线程是使用独立的Runnable运行对象构造的,则调用该Runnable对象的run方法;否则,该方法不执行任何操作并返回。
join():等待该线程终止。
getPriority():返回线程的优先级。
yield():暂停当前正在执行的线程对象,并执行其他线程
A.所有类的实例和数组都是在堆上分配内存的
B.对象所占的堆内存是由自动内存管理系统回收
C.堆内存由存活和死亡的对象,空闲碎片区组成
D.数组是分配在栈中的
答案:
D
解析:
-
对象存储在堆区。
-
数组是一种对象。
A.使用标准输出流System.out.println()。
B.建立文件字符输出流。
C.建立文件字符输入流。
D.标准输入流System.in.read()。
答案:
C
解析:
一个文件中的字符要写到另一个文件中,首先需要读取这个文件,所以要先建立输入流,然后写到另一个文件,这时再建立输出流.所以要先建立输入流,再建立输出流.
public class MyClass {
long var;
public void MyClass(long param) { var = param; }//(1)
public static void main(String[] args) {
MyClass a, b;
a =new MyClass();//(2)
b =new MyClass(5);//(3)
}
}
A.编译错误将发生在(1),因为构造函数不能指定返回值
B.编译错误将发生在(2),因为该类没有默认构造函数
C.编译错误将在(3)处发生,因为该类没有构造函数,该构造函数接受一个int类型的参数
D.该程序将正确编译和执行
答案:
C
解析:
构造方法就是:public 类名, 没有方法修饰符,所以 (1) 处就是一个普通方法,所以该类没有带参数构造方法 ,编译报错
A.java中的集合类(如Vector)可以用来存储任何类型的对象,且大小可以自动调整。但需要事先知道所存储对象的类型,才能正常使用。
B.在java中,我们可以用违例(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要更大的系统开销。
C.java接口包含函数声明和变量声明。
D.java中,子类不可以访问父类的私有成员和受保护的成员。
答案:
B
解析:
A.vector是线程安全的ArrayList,在内存中占用连续的空间。初始时有一个初始大小,当数据条数大于这个初始大小后会重写分配一个更大的连续空间。如果Vector定义为保存Object则可以存放任意类型。
B.try{}catch{}会增加额外的开销
C.接口中声明的’变量’必须为public final static,所以为常量
D.子类可以访问父类受保护的成员
public static void main(String[] args){
String s;
System.out.println(“s=”+s);
}
A.代码编程成功,并输出”s=”
B.代码编译成功,并输出”s=null”
C.由于String s没有初始化,代码不能编译通过。
D.代码编译成功,但捕获到NullPointException异常
答案:
C
解析:
局部变量没有默认值
A.在控制台打印hello sunline!
B.报异常java.lang.NullPoninterException
C.编译报错
D.报异常java.lang.RuntimeExcception
答案:
C
解析:
1、Java 中单实现通过 implements 关键字,多实现通过 extends 关键字
2、Java 中单继承通过 extends 关键字,没有多继承
3、如果同时出现继承和实现,则必须先继承(extends)再实现(implements)
11.由3 个“1”和 5 个“0”组成的 8 位二进制补码,能表示的最小整数()
A.-126
B.-125
C.-32
D.-3
答案:
B
解析:
既然求最小整数,那肯定先想到负数,则最高位(符号位)一定为1,原码中肯定是1所在的位数越高,值越小,而补码是由原码取反加1得到的,则在补码中1所在的位数一定要越低,即补码为1000 0011;由补码求得原码:1111 1101=-(64+32+16+8+4+1)=-125;
Boolean flag = false;
if(flag = true){
System.out.println(“true”);
}else{
System.out.println(“false”);
}
A.编译错误
B.TRUE
C.FALSE
D.什么也没有输出
答案:
B
解析:
if(flag = true)的时候flag已经是true了,所以输出true;
要是为if(flag == true)输出才为false
A.123
B._name
C.class
D.first
答案:
B D
解析:
Java标识符由 数字、字母、下划线(_)、美元符号($) 组成,首位不能是数字 。并且Java关键字不能作为标识符 。
14.Why would a responsible Java programmer want to use a nested class?
A.To keep the code for a very specialized class in close association with the class it works with.
B.To support a new user interface that generates custom events.
C.To impress the boss with his/her knowledge of Java by using nested classes all over the place.
答案:
A B
解析:
使用嵌套类,其中有几个令人信服的理由:
加强封装—考虑两个顶级类,A和B,如果B需要访问A的private成员,通过在A类隐藏B类,那么即使A的成员声明为private,那么B也可以访问它们。更多的是,B本身也可以隐藏于外部。跟可读性,可维护性的代码—在顶级类里嵌套小类,让代码更靠近使用的地方。
A.一个类可以实现多个接口
B.抽象类必须有抽象方法
C.protected成员在子类可见性可以修改
D.通过super可以调用父类构造函数
E.final的成员方法实现中只能读取类的成员变量
F.String是不可修改的,且java运行环境中对string对象有一个对象池保存
答案:
A C D F
解析:
A对:java类单继承,多实现
B错:被abstract修饰的类就是抽象类,有没有抽象方法无所谓
C错:这道题应该是要考察子类继承父类,并重写父类的protected成员方法,该方法的可见性可以修改,这是对的,因为子类继承父类的方法,访问权限可以相同或往大了改
D对。
E错:final修饰的方法只是不能重写,static修饰的方法只能访问类的成员变量
F对。
A.类不可以多继承而接口可以多实现
B.抽象类自身可以定义成员而接口不可以
C.抽象类和接口都不能被实例化
D.一个类可以有多个基类和多个基接口
答案:
A C
解析:
1.java支持单继承,却可以实现多个接口。a对d错
2.接口没有构造方法,所以不能实例化,抽象类有构造方法,但是不是用来实例化的,是用来初始化的。c对
3.抽象类可以定义普通成员变量而接口不可以,但是抽象类和接口都可以定义静态成员变量,只是接口的静态成员变量要用static final public 来修饰。b错
public class ThreadTest extends Thread {
public void run() {
System.out.println(“In run”);
yield();
System.out.println(“Leaving run”);
}
public static void main(String []argv) {
(new ThreadTest()).start();
}
}
A.程序运行输出只有In run
B.程序运行输出只有Leaving run
C.程序运行输出先有In run后有Leaving run
D.程序运行输出先有Leaving run后有In run
E.程序没有任何输出就退出了
F.程序将被挂起,只能强制退出
答案:
C
解析:
yield()从未导致线程转到等待/睡眠/阻塞状态。在大多数情况下,yield()将导致线程从运行状态转到可运行状态,但有可能没有效果。
A.”\n”
B.”1”
C.”a”
D.”\101”
答案:
A B C D
解析:
四个答案都采用的是双引号关闭,所以是字符串常量而不是字符常量。
忽略这个错误,那么这题就没有答案,因为无论是采用特殊字符的转移序列’\n’还是采用八进制转义’\101’,都是满足Java语言规范中规定的字符常量格式。
A.Semaphore