10、在Java语言中,要想是将一个已编译的类打包成jar文件,可以使用的命令是_jar-cvf_____,
要想在命令行窗口运行jar文件,可以使用的命令是__java-jar___。
二、判断题
1、抽象方法必须定义在抽象类中,所以抽象类中的方法都是抽象方法。错 2、Java中被final关键字修饰的变量,不能被重新赋值。对 3、不存在继承关系的情况下,也可以实现方法重写。错
4、package声明语句应当为Java源文件中的第一条语句。对 5、接口中只能定义常量和抽象方法。错(对) 三、选择题
1、在类的继承关系中,需要遵循以下哪个继承原则B
A、多重 B、单一 C、双重 D、不能继承
2、在Java语言中,以下哪个关键字用于在方法上声明抛出异常C
3、关于super关键字以下说法哪些是正确的(多选)ABD(ABC)
A、super关键字可以调用父类的构造方法 B、super关键字可以调用父类的普通方法
C、super与this不能同时存在于同一个构造方法中 D、super与this可以同时存在于同一个构造方法中 4、以下说法哪些是正确的(多选)ABCD
A、Java语言中允许一个类实现多个接口 B、Java语言中不允许一个类继承多个类
C、Java语言中允许一个类同时继承一个类并实现一个接口 D、Java语言中允许一个接口继承一个接口
5、类中的一个成员方法被下面哪个修饰符修饰,该方法只能在本类被访问C
A、public B、 protected C、 private D、default 6、关于抽象类的说法哪些是正确的(多选)AC
A、抽象类中可以有非抽象方法。
B、如果父类是抽象类,则子类必须重写父类所有的抽象方法。 C、不能用抽象类去创建对象。 D、接口和抽象类是同一个概念。
7、在Java中,要想让一个类继承另一个类,可以使用以下哪个关键字C
A、inherits B、implements C、extends D、modifies 8、System类位于以下哪个包中D
A、 B、 C、 D、 9、已知类的继承关系如下: A
class Employee;
class Manager extends Employee; class Director extends Employee; 则以下语句能通过编译的有哪些
A、 Employee e=new Manager(); B、 Director d=new Manager(); C、 Director d=new Employee(); D、Manager m=new Director(); 10、编译运行下面的程序,结果是什么B
public class A {
public static void main(String[] args) {
}
}
B b = new B(); ();
void test() { }
\
class B extends A { }
void test() { }
(); \
A、产生编译错误 B、代码可以编译运行,并输出结果AB C、代码可以编译运行,但没有输出 D、编译没有错误,但会产生运行时异常
四、分析题
阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。
代码一:进入catch代码块
进入finally代码块(程序编译能通过,这是因为int x = 2 / 0; 这两条语句使用了try块,捕获了程序因为除以0而产生的异常情况,之后程序会继续向下执行,输出“进入catch代码块”,“进入finally代码块”。)
public class Test01 {
public static void main(String[] args) { }
try { }
int x = 2 / 0;
} catch (Exception e) {
\进入catch代码块\ \进入finally代码块\
} finally {
}
代码二:不能,final修饰shout,不能被重写(程序编译不通过,这是因为在程序中使用了final关键字修饰Animal类,使得Animal类不能被继承。shout()方法中同样使用了final关键字,使得该方法不能被重写。)
final class Animal {
public final void shout() {
码一:不能,RunHandler没有继承Thread,不能用Thread创建对象(程序不能编译通过,因为RunHandler类没有实现Runnable接口,因此RunHandler的实例对象不能作为参数传递给Thread的构造方法。)
class RunHandler {
public void run(){ \
} }
public class Test {
public static void main(String [] args) {
Thread t = new Thread(new RunHandler()); (); }
}
2.代码二:this is run(程序不能编译通过,因为Thread的子类A重写的run()方法的访问级别不能低于父类run()方法的。访问级别)
public class A extends Thread{
protected void run() { \is run()\ }
public static void main(String[] args) { }
}
A a = new A(); ();
3.代码三:Exception(程序不能编译通过,因为同步方法中调用wait()方法的对象必须为同步锁对象)
public class Test{ }
private Object obj=new Object(); public synchronized void a(){ }
public static void main(String[] args) { }
new Test().a(); try { }
();改() \ \
} catch (InterruptedException e) {
4.为了使下面的程序能够输出“Thread is running”,请在在空格处填上相应的代码。
public class B implements Runnable {
public static void main(String[] args) {
Thread t = new Thread(new B()); ()_____________________ tart();
另一种就是实现接口,同样是在run()方法中实现运行在线程上的代码。
new Thread(new Runnable(){ public void run(){}
}).start()
1、 sleep() 和 wait() 有什么区别
调用sleep()方法,正在执行的线程主动让出CPU去执行其他线程,在sleep()方法指定的时间过后,CPU才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep()方法并不会释放锁,即使当前线程使用sleep()方法让出了CPU,但其它被同步锁挡住了的线程也无法得到执行。wait()在一个已经进入了同步锁的线程内进行调用,让当前线程暂时让出同步锁,以便其它正在等待此锁的线程可以得到同步锁并运行。当其它线程调用了notify()方法后,调用wait()方法的线程就会解除wait状态,当再次获得同步锁后,程序可以继续向下执行。 六、编程题
请按照题目的要求编写程序并给出运行结果。
1、通过继承Thread类的方式创建两个线程,在Thread构造方法中指定线程的名字,并将这两个线程的名字打印出来。
2、通过实现Runnable接口的方式创建一个新线程,要求main线程打印100此次“main”,新线程打印50次“new”。
3、模拟传智播客的三个老师同时分发80份学习笔记,每个老师相当于一个线程。
4、编写10个线程,第一个线程从1加到10,第二个线程从11加到20...第十个线程从91加到100,最后再把十个线程结果相加。
第5章 JavaAPI
一、填空题
1、在Java中定义了两个类来封装对字符串的操作,它们分别是String_和_StringBuffer____。 2、Java中的操作日期的类有_Date___、_Calendar___、DateFormat____等。
3、在程序中若想取得一个Runtime实例,则可以调用Runtime类的静态方法getRnutime()_____。 4、Math类中用于计算所传递参数平方根的方法是_sqrt()____。 5、Java中专门用于将日期格式化为字符串的类是_DateFormat____。
6、Math类中有两个静态常量PI和E,分别代表数学常量_π___和_e___。 7、Java中的用于产生随机数的类是_Random___,它位于包中。 8、String类中用于返回字符串字符个数的方法是_length()____。
9、System类中所提供的属性和方法都是_静态___的,想要引用这些属性和方法,直接使用System类调用即可。
10、已知 sb 为 StringBuffer 的一个实例,且 () 的值为 \, 则执行sb. reverse()后,()的值为_”edcba_”___。
二、判断题
1、String对象和StringBuffer对象都是字符串变量,创建后都可以修改。错
2、用运算符“==”比较字符串对象时,如果两个字符串的值相同,结果为true。错 3、System类中的currentTimeMillis()方法返回一个long类型的值。对
4、Date、Calendar以及DateFormat类都位于包中。错 分别 、String类的方法 replace (CharSequence srt1, CharSequence srt2)返回一个新的字符串,它是通过用srt2替换此字符串中出现的所有 srt1得到的。对
三、选择题。
1、先阅读下面的程序片段:C
String str = \
String[] arr = (\
程序执行后,打印的结果是几
A、2个 B、 3个 C、4个 D、 5个
2、以下都是Math类的常用方法,其中用于计算绝对值的方法是哪个C
A、ceil() B、 floor() C、 abs() D、random() 3、Random对象能够生成以下哪种类型的随机数D
A、int B、string C、double D、A和C
4、String s = \则(3,4)返回的字符串是以下选项中的哪个C A、cd B、de C、d D、e
5、假若indexOf()方法未能找到所指定的子字符串,则返回以下选项中的哪个C
A、 false B、 0 C、-1 D、以上答案都不对 6、要产生[20,999]之间的随机整数可以使用以下哪个表达式B
A.(int)(20+()*97) B. 20+(int)()*980) C. (int)()*999 D. 20+(int)()*980
7、以下Math类的方法中,通过哪个方法运算后,结果为D(C)
A. round()四舍五入 B. min() C. floor() 小于参数最大整数 D. ceil()大于参数最小整数
8、下面的程序段执行后,输出的结果是以下哪个选项A
StringBuffer buf=new StringBuffer(\ (7,\
、Beijing@2008 B、@Beijing2008 C、Beijing2008@ D、Beijing#2008 9、阅读下面的程序:A
public class test {
public static void main(String args[]) { int i;
float f = ;
double d = ;
i = ((int)(f)) * ((int)(d)); } }
程序执行后,运行结果为以下哪个选项
A、 9 B、 5 C、6 D、 10、先阅读下面的程序片段:B
String str1=new String(\ String str2=new String(\
StringBuffer str3=new StringBuffer(\
对于上述定义的变量,以下表达式的值为true的是哪个
A、 str1==str2; B、(str2); C、str1==str3; D、以上都不对 四、程序分析题。
阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通 过,请说明原因。