JAVA复习资料
JAVA复习资料含答案
A、 额外的定义一个实例变量
B、 实现接口中的所有方法
C、 扩展该接口
D、 以上答案都不对
38、利用多态,使用同一个【 D 】可产生不同的操作,这取决于调用方法
的参数类型。
A、方法返回类型 B、 实例变量
C、 局部变量 D、 方法名
39、对静态成员(用 static 修饰的变量或方法)的不正确描述是【 D 】。
D、class
22、下列语句中,对构造方法的描述错误的是【 D 】。
A、构造方法的名称必须和类名相同
B、构造方法没有返回值,返回类型也不能用 void
C、构造方法在一个类中可以多次出现
D、当重写了带参数的构造方法,系统默认的不带参数的构造方法依然存在
23、下面关于 java 中类的说法哪个是不正确的【 C 】。
B、 int x( int a,int b) { return a-b; }
C、 int x( int a,int b ); { return a*b; }
D、 int x(int a,int b) { return 1.2*(a+b); }
19、Java 中所有的类都是通过直接或间接地继承( )类得到的。【 A 】。
45、定义一个包的关键字是【 B 】。
A、import
B、 package C、 interface D、 protected
46、使用 Class 类的【 D 】方法可载入一个数据库驱动
A 、getClass
B、 getName C 、 forClass
D 、 forName
A、类体中只能有变量定义和成员方法的定义,不能有其他语句
B、构造方法是类中的特殊方法
C、类一定要声明为 public 的,才可以执行
Java高级语言程序设计期末复习资料(1)
第1章、Java语言简介第2知识点、Java程序的开发过程【单项选择】1 、下列关于classpath环境变量的说法中,哪一个是正确的(难度系数:易)A、classpath配置一次后可永久使用B、没有classpath环境变量就不能运行Java程序C、classpath环境变量可以让虚拟机找到class文件的目录D、查看当前classpath配置的命令是:classpath参考答案:C答案解析:classpath环境变量可以让虚拟机找到class文件目录,没有配置classpath环境变量时,java虚拟机会自动将其设置为“.”。
查看当前classpath的命令是set classpath;【单项选择】2 、在下列说法中,选出最正确的一项是( )。
(难度系数:易)A、Java语言是以类为程序的基本单位的B、Java语言是不区分大小写的C、多行注释语句必须以//开始D、在Java语言中,类的源文件名和该类名可以不相同参考答案:A【单项选择】3 、Java属于以下哪种语言? (难度系数:易)A、机器语言B、汇编语言C、高级语言D、以上都不对参考答案:C答案解析:Java是一门高级编程语言【单项选择】4 、下列选项中不属于Java虚拟机的执行特点的一项是( )。
(难度系数:易)A、异常处理B、多线程C、动态链接D、简单易学参考答案:D【单项选择】5、下列命令中,可以将文档注释提取出来生成帮助文档的是()(难度系数:易)A、javacB、javaC、javadocD、jar参考答案:C答案解析:可以使用javadoc命令将文档注释提取出来生成帮助文档【单项选择】6 、下列关于Java特点的描述中,错误的是?(难度系数:易)A、Java语言不支持指针B、Java具有自动垃圾回收的机制C、Java只能运行在Window和Linux平台D、Java允许多个线程同时执行参考答案:C答案解析:JAVA是一门面向对象的语言,它没有指针的概念,并提供了自动垃圾回收的机制,具有跨平台,多线程等特点。
Java期末复习
第一章1.面向过程和面向对象程序设计语言的区别2.编译执行和解释执行语言的区别3.java的各个版本,javase javaee javame4.什么是java虚拟机?工作原理是什么?jdk和jre的区别?5.各个命令的含义:javac.exe java.exe Javadoc.exe jar.exe(考试不要求)6.path和classpath的区别(考试不要求)第二章1.标识符的命名规则2.变量使用三部曲:声明,赋值,使用3.如何定义常量?4.基本数据类型(8种),占用的空间大小,给定一个常数,默认的类型,浮点数的两种表示方法5.基本数据类型的转换,向上和向下6.参数可变的方法定义(考试不要求)第三章类和对象(一)类和对象的基本概念*****1.面向对象语言的基本特点2.什么是类和对象,什么是封装性3.java中所有对象都是引用类型。
(内存分析)4.对象的创建和使用(new,.,)5.JVM内存分配,堆、栈、数据、代码(考试不要求)6.java对象生命周期,什么是gc?工作原理?好处?7.构造函数作用,定义要求。
默认构造方法和对类成员的初始化。
构造和初始化顺序(4步)。
8.对象变量的传递,值传递和引用传递9.什么是方法重载?要求是什么?和方法重写有什么区别?10.this引用的作用11.静态数据成员和静态方法成员。
静态成员和普通成员的互相访问(二)包的概念12.什么是包?如何定义包?命名规则是什么?如何使用包?哪些常用包?哪个包不显式导入就可使用?13.使用jar打包(考试不要求)(三)继承的概念*****14.什么是继承?带来的好处是什么?15.如何实现继承?子类成员和父类成员有哪三种关系?新增,重用,重写16.什么是重写?有哪些语法要求?17.super关键字的作用什么?18.子类的构造函数的执行过程。
能否继承父类?如何显式调用父类构造函数?19.类成员的可访问性。
(4个关键字)20.对象转型,向上,向下,instanceof关键字。
JAVA期末复习资料2
Java期末复习题一、判断题1、在Java程序中发生异常时,JVM会找到每个符合条件的catch都执行一次。
( F )2、在Java程序中异常分为运行时异常和非运行时异常,非运行异常必须进行处理( F )3、异常处理的try-catch块后必须有finally块。
( F )4、异常处理器的排列次序影响处理异常的方法。
( T )5、用catch(Exception exception)语句可以捕获所有异常和错误。
( F )6、启动多线程必须调用start()方法, 如果调用run()方法则没有启动新的线程( T )7、run()方法是运行线程的主体,若run方法运行结束,线程就消亡了。
( T )8、线程可以用yield()方法使同优先级的线程运行。
( T )9、一个线程创建并启动后,它将执行自己的run()方法。
( T )10、线程可以用yield()方法使较低优先级的线程运行。
( F )11、每个Java线程的优先级都设置在常数1~12之间,默认的优先级设置为常数6。
(F )12、JFrame,JPanel,JApplet和JButton四种组件都属于容器组件.( F )13、BorderLayout是面板(JPanel)的缺省布局管理器。
( F )14、BorderLayout最多可以使用5个组件。
( T )15、一个面板(JPanel)不能被加入另一个面板(JPanel)中。
( F )16、菜单需要一个JMenuBar对象,以使他们能被添加到JFrame。
( T )17、标签(JLabel)可以在屏幕上显示一个字符或一幅图片。
( T )18、BorderLayout是容器javax.swing.JFrame默认的布局管理器。
(T )19、JTextArea可以用来接收多行文本的输入。
( T )20、在Java坐标系统中,X值从左向右增加。
( T )21、BorderLayout布局管理器把组件排列在北、南、东、西和中间区域。
《Java基础入门》复习资料.doc
A.java.io B.java.util C.java.awt ng
34.己知类的继承关系如下:
class Employee;
class Manager extends Employee;
class Director extends Employee;
A.tryB.catchC.th rows D.throw
28.关于super关键字以下说法哪些是正确的?(多选)
A.super关键字可以调用父类的构造方法
B.super关键字可以调用父类的普通方法
C.super与this不能同时存在于同一个构造方法中
D.super与this可以同时存在于同一个构造方法中
C.线程进入死亡状态,但是该线程对象仍然是一个Thread对象,在没有被垃圾回收器回收之前仍可以像 引用其它对象一样引用它
D.线程进入死亡状态后,调用它的start。方法仍然可以重新启动
40.对于死锁的描述,下面四种说法正确有哪些?(多选)
A.当两个线程互相等待对方释放同步锁时会发生死锁
BJava虚拟机没有检测和处理死锁的措施
42.线程调用sleep()方法后,该线程将进入以下哪种状态?
A.就绪状态B.运行状态C.阻塞状态D.死亡状态
43.在以下哪种情况下,线程进入就绪状态?
A.线程调用了sleep()方法时B.线程调用了join。方法(终止)
C.线程调用了yield。方法时D.线程调用了notify()方法??
44.下面四个选项中,对线程同步的目的描述正确的有哪些?(多选)
D.编写简单,可以不通过Thread类直接创建线程
39.对于线程的生命周期,下面四种说法正确的有哪些?(多选)
Java语言及面向对象技术复习资料
Java语言及面向对象技术复习资料一、单项选择题。
1、下列哪个是Java应用程序主类中正确的main方法?()A.public void main(String args[])B.static void main(String args[])C.public static void Main(String args[])D.public static void main(String args[])2、下列哪项是正确的float变量的声明?()A.float foo=-1; B.float foo=1.0;C.float foo=2.02f; D.float foo=0x0123;3、对于int a[]=new int[3];下列哪个叙述是错误的?()A.a.length的值是3。
B.a[1]的值是1。
C.a[0]的值是0。
D.a[a.length-1]的值等于a[2]的值。
4、下列哪个叙述是正确的?()A.5.0/2+10的结果是double型数据。
B.(int)5.8+1.0的结果是int型数据。
C.’苹’+’果’的结果是char型数据。
D.(short)10+’a’的结果是short型数据。
5、对于下列Hello类,哪个叙述是正确的?()A.Hello类有2个构造方法。
B.Hello类的int Hello()方法是错误的方法。
C.Hello类没有构造方法。
D.Hello无法通过编译,因为其中的hello方法的方法头是错误的(没有类型)。
class Hello {Hello (int m) {}int Hello() {Return 20;}hello() {}}6、下列哪个叙述是正确的?()A.成员变量的名字不可以和局部变量的名字相同。
B.方法的参数的名字可以和方法中声明的局部变量的名字相同。
C.成员变量没有默认值。
D.局部变量没有默认值。
7、下列哪个叙述是正确的?()A.子类继承父类的构造方法B.abstract类的子类必须是非abstract类C.子类继承的方法只能操作子类继承和隐藏的成员变量D.子类重写或新增的方法也能直接操作被子类隐藏的成员变量8、下列程序中注释的哪个代码(A,B,C,D)是错误的(无法通过编译)?()class A {static int m;static void f() {m=20; //A}}class B extends A {void f() //B{ m=222; //C}}class E {public static void main(String args[]) {A.f();}}9、将下列哪个代码(A,B,C,D)放入程序中标注的【代码】处将导致编译错误?()A.public float getNum() {return 4.0f;} B.public void getNum() {};C.public void getNum(double d) {}D.public double getNum(float d) {return 4.0d;}class A {public float getNum() {return 3.0f;}}public class B extends A {【代码】}10、下列哪个叙述是正确的?()A. 一个类最多可以实现两个接口B. 如果一个抽象类实现某个接口,那么它必须要重写接口中的全部方法C. 如果一个非抽象类实现某个接口,那么它可以只重写接口中的部分方法D. 允许接口中只有一个抽象方法二、程序填空题。
java复习资料(学生版)
1、在Java语言中,所有的数组都有一个length属性,这个属性存储了该数组的(元素个数)。
2、程序中实现多线程的方法有两种:继承( Thread )类和实现( Runnable )接口。
3、下面程序段的执行结果是( 65432 )。
public class l1 {public static void main(String[] args){int a[] = { 2, 3, 4, 5, 6 };for (int i = a.length - 1; i >= 0; i--)System.out .print(a[i] + "");}}4、定义类的构造方法不能有返回值类型,其名称与(类)名相同。
5、取得当前线程的语句是:(Thread.currentThread();)6、构造函数(没有)返回值7、若有类定义:class B extends A{…} ,则类B是类A的(子类)。
8、接口中的成员只有静态常量和(抽象方法)。
9、方法覆盖是指子类重新实现了(父)类中的方法,子类方法的名称、参数列表和(返回值类型)必须与(父)类方法的一致10、在子类中使用关键字( super )做前缀可调用被子类覆盖的父类中的方法。
11、Java语言中, 通常把可能发生异常的代码放到try块中,并用紧跟其后的( catch )块来捕获和处理异常。
12、当线程被创建后,其所处的状态是(新建状态)13、(抽象)方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
14、鼠标事件的监听器接口MouseListener能实现的事件包括(单击,按下、释放、移入、移出)。
MouseMotionListener 拖拽移动15、Java语言的类与类之间的是(单)重继承。
16、如果一个类被声明为( final )类型,意味着它在继承关系中必须处于最末端,不能作为父类被继承。
17、在Java中,无需在程序中用import导入的包是(ng.*; )18、使用关键字( final )修饰的方法不允许再以任何形式进行修改,是不能被当前类的子类重新定义的方法。
计算机(专升本)java程序设计复习资料
一卷一、简答题1. 什么是类?什么是对象?2. 方法的重载和覆盖(重写)有什么区别?3. 简述抽象类与接口的异同。
4. 简述JDBC访问数据库的步骤。
二、编程题1. 定义一个类Circle,计算并输出圆(半径=3)的面积2.在D盘创建文件test.txt,文件中的内容为Hello,world!,然后利用输入流输出流把文件拷贝到E盘根目录下。
卷一答案一、简答题 1. 什么是类?什么是对象?类是对某一类事物的描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,也称实例。
2. 方法的重载和覆盖(重写)有什么区别?方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。
重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重载对返回类型没有特殊的要求。
重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常。
3. 抽象类与接口的异同抽象类和接口都不能够实例化,但可以定义抽象类和接口类型的引用。
一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类。
接口比抽象类更加抽象,因为抽象类中可以定义构造器,可以有抽象方法和具体方法,而接口中不能定义构造器而且其中的方法全部都是抽象方法。
抽象类中的成员可以是private、默认、protected、public的,而接口中的成员全都是public的。
抽象类中可以定义成员变量,而接口中定义的成员变量实际上都是常量。
有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法。
4. 简述JDBC访问数据库的步骤a) 加载JDBC驱动程序b) 建立数据库连接c) 创建Statement对象d) 执行SQL语句e) 处理返回结果f) 关闭创建的对象二、编程题1. public class Circle {double radius;public Circle(double r){radius=r;}public double area(){return 3.14*r*r;}(8分)public static void main(String[] args) {Circle c=new Circle(3);System.out.println("圆的面积是"+c.area());}}(7分)2.public class FileCopy {public static void main(String[] args) {try {。
《Java基础入门》复习资料(打印).doc
《Java基础入门》选择题1•以下选项中,哪些属于JDK工具?(多选)AJava编译器BJava运行工具CJava文档生成工具DJava打包工具2.Java属于以下哪种语言?A.机器语言B.汇编语言C.高级语言D.以上都不对3.下面哪种类型的文件可以在Java虚拟机中运行?A.javaB.jreC.exeD.class4.安装好JDK后,在其bin冃录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?AJava文档制作工具 B.Java解释器CJava编译器DJava启动器5.如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令, 需要将环境变量path设置为以下哪个选项?A.d:\jdk;B. d:\jdk\bin;C.d:\jre\bin;D.d:\jre;6•以下选项中,哪些属于合法的标识符?(多选)A.Hello_WorldB.classC.123usernameer namel237.关于方法重载的描述,以下选项中哪些是止确的?(多选)A.方法名必须一致B.返回值类型必须不同C.参数个数必须一致D.参数的个数或类型不一致8.以下关于变量的说法错误的是?A.变量名必须是一个有效的标识符B.变量在定义时可以没有初始值C.变量一旦被定义,在程序中的任何位置都可以被访问D.在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声明9•以下选项中,switch语句判断条件可以接收的数据类型有哪些?(多选)A.intB.byteC.charD.short10.假设int x = 2,三元表达式x>0?x+l:5的运行结果是以下哪一个?A.OB.2C.3D.511.下面的运算符中,用于执行除法运算是哪个?A./B.\C.%D.*12.下列语句哪些属于循环语句?(多选)A.for语句B.if语句C.while语句D.switch语句13.下面哪种写法可以实现访问数组arr的第1个元素?A.arr[0]B.arr(O)C.arr[l]D.arr(l)14.以下哪个选项可以正确创建一个长度为3的二维数组?A.new int [2][3];B.new int[3][];C. new int[][3];D.以上答案皆不对15.请先阅读下面的代码。
java期末考试复习资料
复习:一,选择题(1)Java中,负责对字节代码解释执行的是(C)A:垃圾回收器B:虚拟机C:编译器D:多线程机制(2)下列叙述中,正确的是(A)A:Java语言的标识符是区分大小写的B:源文件名与public类名可以不相同C:源文件名其扩展名为.jarD:源文件中public类的数目不限(3)下列语句中,错误的Java语句是(C)A:连续出现多个分号B:try......catch语句C:include语句D:switch语句(4)在Java程序中,已将FileWriter对象接到BufferedWriter对象上,要实现缓冲式输出,可对BufferedWriter对象使用的方法是(B)A:read()B:write()C:readLine()D:writeLong()(5)接口的所有变量和方法分别默认为是(A)A:final static和public abstractB:final static和public finalC:public static和public abstractD:public static和public final(6)当线程A使用某个对象,而此对象又需要线程B修改后才能符合A线程的需要,这时线程A就要等待线程B完成修改工作,这种现象称为(A)A:线程的同步B:线程的互斥C:线程的调度D:线程的就绪(7)在Java程序中,已将FileWriter对象接到BufferedWriter对象上,要实现缓冲式输出,可对BufferedWriter对象使用的方法是(B)A:read()B:write()C:readLine()D:writeLong()(8)下列有关数组的叙述错误的是(D)A:数组是将一组相同类型的数据顺序存储,组成一种复合数据类型B:在Java语言中,数组是一种引用类型,数组名如同对象名一样,是一种引用C:对于多维数组,从最高维开始,可以对每一维分配不等长的空间D:在Java语言中,数组元素可以互相赋值,而数组名不能直接赋值(9)下列有关Java的叙述错误的是(D)A:强类型语言B:与平台无关C:可以使用汉字变量名D:不检查数组下标越界(10)一个实现Runnable接口的类必须要实现的方法是(B)A:start()B:run()C:sleep()D:init()(11)在 Java 中,表示换行符的转义字符是(A)A:‘\n’B:BC:CD:D(12)能够支持 javadoc 命令的文档注释形式是(D)A:/**...//B:/*...*/C://D:/**...*/(13)当使用FileInputStream类中的read()方法时,如果没有读入一个字节数据时,返回值为(B)A:0B:-1C:trueD:false(14)下列正确的句子是(D)A:float 3.14;B:byte i=225;C:int k=33L;D:int p[][];(15)按运算符操作数的数目划分,运算符?:的类型是(A)A:三目B:双目C:四目D:单目(16)有关在Java中定义实例方法和类方法的叙述正确的是(D)A:前者有public修饰,后者没有public修饰B:前者没有public修饰,后者有public修饰C:前者有static修饰,后者没有static修饰D:前者没有static修饰,后者有static修饰(17)有Java语句如下,则说法正确的是(C)int []a,b=new int[3];A:此语句是错误的B:a.length的值为3C:b.length的值为3D:a.length和b.length的值都为3(18)如果发生多个线程形成一个等待环,这样,所有线程都陷入相互等待的状态。
Java复习重点
JA V A 考试重点复习第一章Java 概述1. Java 如何实现跨平台?通过Java 虚拟机JVM 来实现跨平台,先将Java 源程序编译成字节码(后缀为.class 的代码),字节码可以在Java 虚拟机上运行,不同的平台有不同的Java 虚拟机JVM ,相同的字节码可以不同的平台上运行。
2. Java 开发的三个平台是什么?J2SE 、J2EE 和J2ME3. 如何编译与运行java 程序?在Dos 命令提示符状态下通过命令行来实现的。
例如:如果用命令行运行test 的话,后面不可以写“.class”,若写成test.class 系统会把class 当成类名test 当成类包,所以在没有类包的情况下不要写成“.class”形式。
第二章Java 基础1. 什么是标识符?如何定义标识符? 标识符是用来标识变量、常量、方法、类、对象等元素的有效字符序列。
Java 语言规定标识符由字母、下划线、美元符号和数字等组成,并且第一个字符不能是数字。
对标识符的约定:(1)变量名、对象名、方法名、报名等标识符全部采用小写字母;如果标识符由多个单词构成,则首字母小写,其后单词的首字母大写,其余字母小写,如getAge 。
(2)类名首字母大写。
(3)常量名全部字母大写。
2. 关键字的定义? 关键字是由Java 语言定义的、具有特殊含义的字符序列。
其首字母不能大写。
如:this ,super ,extends ,if ,class ,instanceof 3.Java 中数据类型的结构?float 与double 定义时的区别: float 型的数要在后面要加f ,如34.5f4. 常量与变量的声明方式?常量: final[修饰符]类型标识符 常量名=(直接)常量如: final public double PAI=3.14;变量: [修饰符] 类型标识符 变量名[=常量];如: public float x=25.4f ;Outputtest.javacc javac test.class ava 数据类型 类型lel 类型布尔(boolean)数值类型 短整数(short) 字节(byte) 字符(char)长整数(long)整数(int) 双精度浮点数(double ) 单精度浮点数(float) 定点类型浮点类型基本数据类型引用数据类型 类接口数组常量与变量的区别:一旦定义为常量了,其值不能改变,若要改变其值,只能改变声明时的值。
2024年java自学考试考前知识点复习
一、Java基础知识1. Java语言的特点及优势2.JDK、JRE、JVM的概念及其作用3. Java的数据类型、变量和常量4.表达式、运算符和控制流程语句5.数组和字符串的使用6.面向对象的程序设计思想7.类、对象、方法和构造器的定义与使用8.封装、继承和多态的概念和应用9.抽象类和接口的定义及其使用场景二、Java核心类库1. Java集合框架和常用集合类的使用2.输入输出流的概念和应用3.异常处理机制及其编写规范4.文件操作和序列化的基本原理和使用5.多线程的概念和线程的创建与管理6.网络编程的基础知识和常用类的使用7. Java反射机制及动态代理的原理和应用8.注解的定义及其常见的内置注解三、Java高级特性1.泛型的概念和应用2. Java 8的新特性(Lambda表达式、Stream API等)3. Java 9、10、11的新特性(模块化系统、局部变量类型推断等)4.设计模式的基本原则和常见设计模式的应用5.集合框架的并发访问控制和线程安全性6.JVM的垃圾回收机制和性能优化策略7.国际化和本地化的概念和应用8. Java与数据库的交互和常见数据库操作四、Web开发相关技术1. Servlet的概念、生命周期和开发基础2.JSP的基础语法和内置对象的使用3. MVC架构的理解和Web应用的开发流程4. Servlet和JSP的整合开发和常见问题解决5. Session和Cookie的概念和使用6. JavaWeb开发中的过滤器和监听器8. JavaWeb开发中的权限控制和安全性五、其他相关知识1.XML的基础概念和语法规范2.JSON的基本结构、解析与生成3.HTTP协议的基本原理和请求响应过程4. RESTful风格的接口设计和开发5. 前端开发基础知识(HTML、CSS、Javascript)6.单元测试和集成测试的概念和使用7. Maven的基本使用和项目构建流程8. 版本控制工具Git的基本使用和常见操作以上是2024年Java自学考试的考前知识点复习内容,希望对你能有所帮助。
Java复习
一.填空1. 1996年,SUN公司专门成立Javasoft分公司来发展Java.2. 作为面向对象编程语言,Java支持封装、多态和继承等面向对象特性。
3. 字节码由Java虚拟机(JVM)在不同平台上解释执行。
4. Java提供了多线程支持,即支持并行机制。
5. Java 2版本以后,按应用主要分为三个主要分支:J2SE(Java2 Platform Standard Edition) 针对个人用户或客户端的Java开发(标准版本);J2EE(Java2 Platform Enterprise Edition) 针对企业或服务器端的Java开发(企业版本);J2ME(Java2 Platform Micro Edition) 针对嵌入或手持设备的Java开发(微型版本)6. Java开发需安装JDK。
7. Javac:Java编译器,用来将Java源程序(扩展名为java)编译成字节码(Bytecode)形式的类文件(扩展名为class),该文件在解释器的的作用下能够执行。
Java:Java解释器,能够解释执行经过编译后产生的字节码Java类文件。
8. 标识符由一串字符序列组成,是程序中不带空格和分隔符的字符串。
标识符只能有大写和小写英文字母、数字(0~9)、下划线(_)和美元符号($)组成。
并且组成标识符的第一个字符必须是英文字母、下划线或者美元符号,数字不能作为标识符的开头字符。
下面是合法的标识符:HelloJavaWorld _xy3c $histk Ad_gs下面是不合法的标识符:Hello&Java Xy—3c 3histk Ad gsJava标识符对英文字母的大小写敏感,同一个英文字母的大写和小写被认为是不同两个字符。
9. 关键字(Keyword)是Java语言中由系统规定的标识符,具有固定的含义,其含义和用法由系统事先规定,用户只能按系统规定的方法使用它们,不能另作他用。
Java复习资料
单选题1.用于将java源代码文件编译成字节码的编译器是()。
A. javacB. javaC. jdbD. javah2.Java应用程序的入口方法是()。
A. start()B. init()C. paint()D. main()3.下列选项在java中属于不合法的标识符的是()。
A. BigMeaninglessNameB. _whatavariableC.#myvar D. $dollar4."当在命令行输入:java myprog good morning 运行以下代码,输出结果是()。
public class myprog{public static void main(String argv[]){System.out.println(argv[2]);}}" A. myprog B. good C. morning D. Exception raised: "ng.ArrayIndexOutOfBoundsException: 2"5.下列整型数据类型中,需要内存空间最少的是()。
A. shortB. longC. intD. byte6.执行完代码int[ ] x = new int[25];后,下列选项说明正确的是()。
A. x[24]为0B. x[24]未定义C. x[25]为0D. x[0]为空7."设有下面两个类的定义:class Person{ long id; // 身份证号String name; // 姓名}class Student extends Person{ int score; // 入学总分int getScore(){ return score; }}问:类Person和类Student的关系是()。
" A. 包含关系 B. 继承关系 C. 关联关系 D. 无关系,上述类定义有语法错误8.设 x,y 均为已定义的类名,下列声明对象x1的语句中正确的是()。
Java复习
Java复习1. Java中创建类的时候,不写类的修饰符默认是 default 权限,是可以在同包下相互访问的;如果是 public 类型,是允许跨包访问的;如果是 Private类型,仅允许在类内访问,连⼦类都访问不了protect: 介于public 和 private 之间的⼀种访问修饰符,⼀般称之为“保护形”。
被其修饰的类、属性以及⽅法只能被类本⾝的⽅法及⼦类访问,即使⼦类在不同的包中也可以访问2.同样,Java⽅法中默认的修饰符也是default ,默认什么都不加,就是default(不⽤把default写出来)。
意思就是只能由跟这个类在同⼀个包中的类来访问,⽐private限制更少,但⽐protected限制更多。
'3.记住静态⽅法和对象完全⽆关,所以静态⽅法不存在⽅法覆盖这么⼀说!!静态⽅法⼀般⽤类名来进⾏调⽤4.静态变量是属于类的,5.⾮静态⽅法既可以访问静态⽅法⼜可以访问⾮静态⽅法,⽽静态⽅法只能访问静态数据⽅法。
(这个要切记,在Java复习第⼀个笔记中就有这个记录,静态⽅法是不能访问⾮静态变量的,但是⾮静态变量是可以访问静态⽅法的)6.弄清⽅法覆盖和⽅法重载的区别⽅法覆盖必须发⽣在具有继承关系的⽗⼦关系中(重写后的⽅法必须的之前的⽅法具有相同的⽅法名,参数列表以及返回值!!)⽅法重载是在⼀个类中,⽅法名必须相同,但参数列表不⼀致7.弄清楚 super() 的作⽤,A类继承B类,B类有两个构造⽅法,⼀个有参,⼀个⽆参,A类在写构造⽅法的时候,第⼀⾏会默认加上 super() (你看不见。
),但是这个默认调⽤的是B类的⽆参构造,所以⽗类写构造⽅法的时候⼀定要注意8.Java⼀个类中只能有⼀个 public 类9.Java单引号表⽰字符,双引号才表⽰字符串10.final 修饰的类⽆法被继承,final 修饰的⽅法⽆法被重写11.注意,抽象类中的抽象⽅法是不可以写⽅法体的例如: public abstract void eat() ;12.抽象类中可以有抽象⽅法和⾮抽象⽅法⾮抽象类可以继承抽象⽅法,但是,但是,前提是必须实现(其实就是重写)抽象⽅法!!《别记混了》⾮静态⽅法既可以访问静态⽅法⼜可以访问⾮静态⽅法,⽽静态⽅法只能访问静态数据⽅法。
Java复习资料讲解
1.每个Java程序至少应该有一个类。
2.为了运行某个类,该类必须包含名为main的方法。
程序是从main方法开始执行的。
3.Java源程序是区分大小写的。
4.源文件的扩展名必须为。
Java,而且文件名必须与公用类名完全相同5.在编译和运行程序前必须先安装和配置JDK6.编译器就会生成一个扩展名为。
class的字节码文件7.Java虚拟机(JVM)标识符是由字母,数字,下划线和美元符号构成字符序列标识符必须以字母,下划线或美元符号开头,不能以数字开头标识符不能是保留字标识符不能是true false null标识符的长度是任意的8.用于编译welcome.Java的命令是javac 编译器生成welcome.class文件,使用命令Java执行这个文件9.声明的变量在使用之前必须被赋值10.在赋值语句中,左边变量的数据类型必须与右边值的数据类型兼容。
Double f=1 float a=1.8f11.int四个字节float4个字节double 8个字节12.整形直接量默认为int型13.浮点型直接量带小数点,默认情况下是double型的14.字符型直接量用单引号括住,转义符也行。
字符串直接量必须括在双引号中15字符型占两个字节。
16比特。
‘\uFFFF’16.如果操作数之一是字符串,加号(+)就是连接运算符。
如果操作数之一不是字符串(例如是一个数字),非字符串值先转换为字符串,再与另一个字符串连接起来。
17. “x+y=”+2+3 x+y=2318.如果操作数都不是字符串,那么加号就是将两个数值加起来的加法运算符。
19.Boolean型变量只能是:true或false20.短路运算:当计算p1&&p2时,Java先计算p1,如果p1位true在计算p2;如果p1位false,则不再算p221.格式化控制台输出:system.out.printf(format,item1,item2...itemk)22.P112 4.323.方法定义包括方法头和方法体24.定义方法的语法:修饰符返回值类型方法名(参数列表){//方法体}25.声明一个数组变量时并不在内存中给数组分配任何空间。
JAVA深刻复习带答案解析
第一章java 开发入门1.java语言的特点:简单,面向对象,安全,跨平台,支持多线程。
简单:(丢弃了C++中难于理解的运算符重载,多继承,指针等,并且提供自动垃圾回收机制)面向对象:只支持单继承,纯面向对象的语言。
安全:不支持指针,一切内存访问必须通过对象实例来实现,从而使应用更安全。
跨平台:同一段程序既可以在window运行也可以在Linux运行多线程:支持多线程。
下列选项哪个不属于java语言包含的内容?()A 具有类与对象B 一次编译处处运行C 具有多线程的能力D 具有多继承的特点下列关于java语言特点错误的是()A.java语言可以进行面向对象编程也可以面向过程编程B.java语言是面向对象的语言C.java语言支持跨平台编程D.java语言支持多线程下列特点不属于java语言的是()A.多线程B.多继承C.跨平台D.垃圾自动回收2.java程序为什么能跨平台?通过java虚拟机可以达到跨平台的特性。
3. java程序的编译过程:源文件a.java-→编译 a.class(字节码文件) →虚拟机运行下面哪种类型的文件可以在java虚拟机中运行?A . .java B. .jre C. .exe D. .class在Java中负责对字节码解释执行的是( )。
A.垃圾回收器B.虚拟机C.编译器D.多线程机制编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. .javaB. .classC. .htmD. .exe第二章java编程基础1.java代码基本格式java语言区分大小写,程序代码必须写在一个类中Java中main()函数的返回值是()。
A、StringB、intC、charD、voidvoid的含义( )A方法没有返回值B方法体为空C没有意义 D. 定义方法时必须使用2. java标识符可以由任意顺序的大小写字母、数字、下划线_和美元符号$组成,但不能以数字开头,不能是java关键字。
JAVA期末复习资料
一、单选题1.下列不可作为java语言修饰符的是( D )A) a1 B) $1 C) _1 D) 112.有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是( A )A) a1.java B) a1.class C) a1 D) 都对3.整型数据类型中,需要内存空间最少的是( D )A) short B) long C) int D) byte4. Java中( C )A) 一个子类可以有多个父类,一个父类也可以有多个子类B) 一个子类可以有多个父类,但一个父类只可以有一个子类C) 一个子类可以有一个父类,但一个父类可以有多个子类D) 上述说法都不对5.下列哪些语句关于Java内存回收的说明是正确的。
( B )A.程序员必须创建一个线程来释放内存B. 内存回收程序负责释放无用内存C. 内存回收程序允许程序员直接释放内存D. 内存回收程序可以在指定的时间释放内存对象6.下面的哪个赋值语句是不对的? ( A )A.float f = 11.1; B.double d = 5.3E12;C.double d = 3.14159; D.double d = 3.14D;7.以下由do-while语句构成的循环执行的次数是( B )。
int k=0;do { ++k; }while ( k < 1 );A.一次也不执行B.执行1次C.无限次D.有语法错,不能执行8.若有定义Sting jerry="I love Tom",s1;则s1=jerry.substring(2)的值为( C)A. lB. loveC. love TomD. Tom9. 类的设计要求它的某个成员变量不能被外部类直接访问,应该使用下面的哪些修饰符获得需要的访问控制( D )A publicB defaultC protectedD private10.在异常处理中,如释放资源、关闭文件、关闭数据库等由( C )来完成。
JAVA复习资料(习题版)(带参考答案)
4、Java 不支持多重继承,但我们可以通过( B )实现
A) 多态
B) 接口
C) 覆盖
D) 抽象类
5、已知表达式 int[] m = {0, 1, 2, 3, 4, 5, 6 };下面 B 哪个表达式的值与数组元素个数相等( B )
A) m.length() B) m.length
C) m.length()+1 D) m.length+1
A) public
B) private
C) static
D) protected
15、执行完代码 int[ ] x = new int[25]; 后,以下哪项说明是正确的( A )
A) x[24]为 0
B) x[24]未定义
C) x[25]为 0
D) x[0]为空
16、类 Text 定义如下: 2
public class Test {
A) long
B) sizeof
C) instanceof
D) const
29、关于被私有访问控制符 private 修饰的成员变量,以下说法正确的是( C ) 4
A) 可被三种类引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B) 可以被两种类访问和引用:该类本身、该类的所有子类
6、所有的异常类皆继承哪一个类(B )
A) java.io.Exception
B) ng.Throwable
C) ng.Exception
D) ng.Error
7、关于布尔类型说法正确的是( A ) A) boolean 表示布尔类型,它的取值只有 true 和 false B) bool 表示布尔类型,它的取值只有 true 和 false C) boolean 表示布尔类型,它的取值只有 1 和 0 D) bool 表示布尔类型,它的取值只有 1 和 0
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章1.Given the following,1. interface Base {2. boolean m1 ();3. byte m2(short s);4. }Which code fragments willcompile?(Choose all that apply.)A.interface Base2 implements Base { }B.abstract class Class2 extends Base { publicboolean ml() { return true; } }C.abstract class Class2 implements Base { }D.abstract class Class2. implements Base{ public boolean m1() { return (true); } }E.class Class2 implements Base { booleanm1( ) { return false; } byte m2(short s){ return 42; } }2. Which declare a compilable abstract class? (Choose all that apply.)A.public abstract class Canine { public Barkspeak(); }B.public abstract class Canine { public Barkspeak() { } }C.public class Canine { public abstract Barkspeak(); }D.public class Canine abstract{ publicabstract Bark speak(); }3. Which is true? (Choose all that apply. )A."X extends Y" is correct if and only if X isa class and Y is an interface.B."X extends Y" is correct if and only if X isan interface and Y is a class.C."X extends Y" is correct if X and Y areeither both classes or both interfaces.D."X extends Y" is correct for allcombinations of X and Y being classesand/or interfaces.4. Which are valid declarations? (Choose all that apply.)A.int $x;B.int 123;C.int _123;D.int #dim;E.int %percent;F.int *divide;G.intcentral_sales_region_Summer_2005_gross_sales第二章1. Which statement(s) are true? (Choose all that apply.)A.Has-a relationships always rely oninheritance.B.Has-a relationships always rely on instancevariables.C.Has-a relationships always require at leasttwo class types.D.Has-a relationships always rely onpolymorphism.E.Has-a relationships are always tightlycoupled.2.Given:class Clidders {public final void flipper(){ System.out.println("Clidder"); }}public class Clidlets extends Clidders {public void flipper() {System.out.println("Flip a Clidlet");super.flipper();}public static void main(String [] args) {new Clidlets().flipper();}}What is the result?A.Flip a ClidletB.Flip a ClidderC.Flip a ClidderFlip a ClidletD.Flip a ClidletFlip a ClidderE.Compilation fails.3. Given:public abstract interface Frobnicate { public void twiddle(String s) ; }Which is a correct class? (Choose all that apply.)A.public abstract class Frob implementsFrobnicate {public abstract void twiddle(String s){}}B.public abstract class Frob implementsFrobnicate { }C.public class Frob extends Frobnicate {public void twiddle(Integer i) { }}D.public class Frob implements Frobnicate {public void twiddle(Integer i) { }}E.public class Frob implements Frobnicate {public void twiddle(String i) { }public void twiddle(Integer s) { }}4. Given: class Top {public Top(String s) { System.out.print("B"); } }public class Bottom2 extends Top {public Bottom2(String s){ System.out.print("D"); }public static void main(String [] args) {new Bottom2("C");System.out.println(" ");}}What is the result?A.BDB.DBC.BDCD.DBCpilation fails.5. Select the two statements that best indicate a situation with low coupling. (Choose two.)A.The attributes of the class are all private.B.The class refers to a small number of otherobjects.C.The object contains only a small number ofvariables.D.The object is referred to using ananonymous variable, not directly.E.The reference variable is declared for aninterface type, not a class. The interfaceprovides a small number of methods.F.It is unlikely that changes made to oneclass will require any changes in another.6. Given:class Clidder {private final void flipper() { System.out.println ("Clidder"); }}public class Clidlet extends Clidder {public final void flipper(){ System.out.println("Clidlet"); }public static void main(String [] args) {new Clidlet().flipper();}}What is the result?A.ClidletB.ClidderC.ClidderClidletD.ClidletClidderpilation fails.7. Using the fragments below, complete the following code so it compiles. Note, you may not have to fill all of the slots.Code:class AgedP {__________ _________ __________________ _________public AgedP(int x) {_ ________ _ ________ _ _________________ ___________}}public class Kinder extends AgedP {_________ _________ __________________ _________ _________public Kinder(int x) {_________ _________ __________________ ___________() ;}}Fragments: Use the following fragments zero or more times:AgedP super this( ) { }; 8. Given:1. class Plant {2. String getName() { return "plant"; }3. Plant getType() { return this; }4. }5. class Flower extends Plant {6. // insert code here7. }8. class Tulip extends Flower {}Which statement(s), inserted at line 6, will compile? (Choose all that apply.)A.Flower getType() { return this; }B.String getType() { return "this"; }C.Plant getType() { return this; }D.Tulip getType() { return new Tulip() ;}9. Given:1. class Zing {2. protected Hmpf h;3. }4. class Woop extends Zing { }5. class Hmpf { }Which is true? (Choose all that apply.)A.Woop is-a Hmpf and has-a zing.B.zing is-a Woop and has-a Hmpf.C.Hmpf has-a Woop and Woop is-a Zing.D.Woop has-a Hmpf and Woop is-a zing.E.Zing has-a Hmpf and Zing is-a Woop.10. Given:1. class Programmer {2. Programmer debug() { return this; }3. }4. class SCJP extends Programmer {5. // insert code here6. }Which, inserted at line 5, will compile? (Choose all that apply.)A.Programmer debug() { return this; }B.SCJP debug() { return this; }C.Object debug() { return this; }D.int debug() { return 1; }E.int debug(int x) { return 1; }F.Object debug (int x) { return this; }第四章1. Given:class Hexy {public static void main(String[] args) {Integer i = 42;String s =(i<40)?"life":(i>50)?"universe":"everything";System.out.println(s);}}What is the result?A.nullB.lifeC.universeD.everythingpilation fails.F.An exception is thrown at runtime.2. Given:1. class Example {2. public static void main(String[] args) {3. Short s = 15;4. Boolean b;5. // insert code here6. }7. }Which, inserted independently at line 5, will compile? (Choose all that apply.)A. b = (Number instanceof s);B. b = (s instanceof Short);C. b = s.instanceof(Short);D. b = (s instanceof Number);E. b = s.instanceof(Object);F. b = (s instanceof String);3. Given:1. class Comp2 {2. public static void main(String[] args) {3. float f1 = 2.3f;4. float[][] f2 = {{42.Of}, {l.7f, 2.3f}, {2.6f, 2.7f}};5. float[] f3 = {2.7f};6. Long x = 42L;7. // insert code here8. System.out.println("true");9. }10. }And the following five code fragments:F1. if (f1 == f2)F2.if (f1 == f2[2][1])F3. if (x == f2[0][0])F4. if (f1 == f2 [1,1] )F5. if (f3 == f2 [2] )What is true?A.One of them will compile, only one will betrue.B.Two of them will compile, only one willbe true.C.Two of them will compile, two will betrue.D.Three of them will compile, only one willbe true.E.Three of them will compile, exactly twowill be true.F.Three of them will compile, exactly threewill be true.4. Given:class Fork {public static void main(String[] args) {if(args.length == 1 | args[1] .equals("test")) {System.out.println ("test case");} else {System.out.println("production " +args[0]) ;}}}And the command-line invocation:java Fork live2What is the result?A.test caseB.productionC.test case live2pilation fails.E.An exception is thrown at runtime.5. Given:class Foozit {public static void main(String[] args) {Integer x = 0;Integer y = 0;for(Short z = 0; z < 5; z++)if((++x > 2) || (++y > 2))X++ ;System.out.println (x + " " + y);}}What is the result?A. 5 1B. 5 2C. 5 3D.8 1E.8 2F.8 3G.10 2H.10 3第六章4. Given:Class TKO {public static void main(String[] args) {String s = "-";Integer x = 343;long L343 = 343L;if(x.equals(L343)) s += ".e1 ";if(x.equals(343)) s += ".e2 ";Short s1 = (short)((new Short((short)343)) / (new Short((short)49)));if (s1 == 7) s += "=s ";if(sl < new Integer(7+1)) s += "fly ";System.out.println(s);}}Which of the following will be included in the output String s? (Choose all that apply.)A..e1B..e2C.=sD.flyE.None of the above.pilation fails.G.An exception is thrown at runtime.5. Given:1. import java.text.*;2. class DateOne {3. public static void main(String[] args) {4. Date d = new Date(1123631685981L);5. DateFormat df = new DateFormat();6. System.out.println(df.format(d));7. }8. }And given that 1123631685981L is the number of milliseconds between Jan. 1, 1970, and sometime on Aug. 9, 2005, what is the result? (Note: the time of day in option A may vary.)A.8/9/05 5:54 PMB.1123631685981L,C.An exception is thrown at runtime.pilation fails due to a single error inthe code.pilation fails due to multiple errors inthe code.6. Given:import java.io.*;class Keyboard { }public class Computer implements Serializable {private Keyboard k = new Keyboard(); public static void main(String[] args)Computer c = new Computer();c.storeIt(c) ;}void storeIt(Computer c) {try {ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("myFile"));os.writeObject(c);os.close() ;System.out.println("done");} catch (Exception x){System.out.println("exc"); } }}}What is the result? (Choose all that apply.)A.excB.donepilation fails.D.Exactly one object is serialized.E.Exactly two objects are serialized.7. Using the fewest fragments possible (and filling the fewest slots possible), complete the code below so that the class builds a directory named "dir3" and creates a file named "file3" inside "dir3". Note you can use each fragment either zero or one times.Code:import java.io.________________class Maker {public static void main(String [] args) {___________ _________________________________ _________________________________ _________________________________ _________________________________ _________________________________ _________________________________ ______________________}}Fragments:File; FileDescriptor; FileWriter; Directory;try { .createNewDir(); File dirFile{ } (Exception x) ("dir3");filefile .createNewFile(); = new File = new Filedir (dir, "file3"); (dir,file); .createFile() ;} catch ("dir3", "file3"); .mkdir(); File file第七章1. Given:import java.util.*;class Test {public static void main(String[] args) {// insert code herex.add("one");x.add("two");x. add ("TWO");System.out.printIn(x.poll());}}Which, inserted at // insert code here, will compile? (Choose all that apply.)A.List<String> x = newLinkedList<String>();B.TreeSet<String> x = newTreeSet<String>();C.HashSet<String> x = newHashSet<String>();D.Queue<String> x = newPriorityQueue<String>();E.ArrayList<String> x = newArrayList<String>();F.LinkedList<String> x = newLinkedList<String>();2. Given:public static void main(String[] args) {// INSERT DECLARATION HEREfor (int i = 0; i <= 10; i++) {List<Integer> row = newArrayList<Integer>();for (int j = 0; j <= 10; j++)row.add(i * j);table.add(row);}for (List<Integer> row : table)System.out.println(row);}Which statements could be inserted at // INSERT DECLARATION HERE to allow this code to compile and run? (Choose all that apply.)A.List<List<Integer>> table = newList<List<Integer>>();B.List<List<Integer>> table = newArrayList<List<Integer>>();C.List<List<Integer>> table = newArrayList<ArrayList<Integer>>();D.List<List, Integer> table = new List<List,Integer>();E.List<List, Integer> table = newArrayList<List, Integer>();F.List<List, Integer> table = newArrayList<ArrayList, Integer>();G.None of the above.3. Which statements are true about comparing two instances of the same class, given that the equals() and hashCode() methods have been properly overridden? (Choose all that apply.)A.If the equals() method returns true, thehashCode() comparison == might returnfalse.B.If the equals() method returns false, thehashCode() comparison == might returntrue.C.If the hashCode() comparison == returnstrue, the equals() method must return true.D.If the hashCode() comparison == returnstrue, the equals() method might return true.E.If the hashCode() comparison ! = returnstrue, the equals() method might return true.15. Given:12. TreeSet map = new TreeSet();13. map.add("one");14. map.add("two");15. map.add("three");16. map.add("four"};17. map.add("one");18. Iterator it = map.iterator();19. while (it.hasNext() ) {20. System.out.print( it.next() + " " );21. }What is the result?pilation fails.B.one two three fourC.four three two oneD.four one three twoE.one two three four oneF.one four three two oneG.An exception is thrown at runtime.H.The print order is not guaranteed.16. Given a method declared as:public static <E extends Number> List<? super E> process(List<E> nums)A programmer wants to use this method like this: // INSERT DECLARATIONS HEREoutput = process(input);Which pairs of declarations could be placed at // INSERT DECLARATIONS HERE to allow the code to compile? (Choose all that apply.)A.ArrayList<Integer> input = null;ArrayList<Integer> output = null;B.ArrayList<Integer> input = null;List<Integer> output = null;C.ArrayList<Integer> input = null;List<Number> output = null;D.List<Number> input = null;ArrayList<Integer> output = null;E.List<Number> input = null;List<Number> output = null;F.List<Integer> input = null;List<Integer> output = null;G.None of the above.第九章1. Given:public class Messager implements Runnable { public static void main(String[] args) {new Thread(newMessager("Wallace")).start() ;new Thread(newMessager("Gromit")).start();}private String name;public Messager(String name) { = name; }public void run() {message(1);message(2);}private synchronized void message(int n) {System.out.print(name + "-" + n + " ");} }Which of the following is a possible result? (Choose all that apply.)A.Wallace-1 Wallace-2 Gromit-1B.Wallace-1 Gromit-2 Wallace-2 Gromit-1C.Wallace-1 Gromit-1 Gromit-2 Wallace-2D.Gromit-1 Gromit-2E.Gromit-2 Wallace-1 Gromit-1 Wallace-2F.The code does not compile.G.An error occurs at run time.2. Given:public class Letters extends Thread {private String name;public Letters(String name) { = name;}public void write () {System.out.print(name);System.out.print(name);}public static void main(String[] args) {new Letters("X").start();new Letters("Y").start();}}We want to guarantee that the output can be either XXYY or YYXX, but never XYXY or any other combination. Which of the following method definitions could be added to the Letters class to make this guarantee? (Choose all that apply.)A.public void run() { write(); }B.public synchronized void run() { write(); }C.public static synchronized void run(){ write(); }D.public void run() { synchronized(this){ write(); } }E.public void run(){ synchronized(Letters.class) { write(); } }F.public void run () { synchronized(System.out) { write (); } }G.public void run(){ synchronized(System.out.class){ write(); } }3. The following block of code creates a Thread using a Runnable target:Runnable target = new MyRunnable();Thread myThread = new Thread(target);Which of the following classes can be used to create the target, so that the preceding code compiles correctly?A.public class MyRunnable extendsRunnable{public void run(){}}B.public class MyRunnable extendsObject{public void run(){}}C.public class MyRunnable implementsRunnable{public void run(){}}D.public class MyRunnable implementsRunnable{void run(){}}E.public class MyRunnable implementsRunnable{public void start(){}}4. Given:2. class MyThread extends Thread {3. public static void main(String [] args) {4. MyThread t = new MyThread();5. t.start() ;6. System.out.print("one. ");7. t.start();8. System.out.print("two. ");9. }10. public void run() {11. System.out.print("Thread "};12. }13. }What is the result of this code?pilation fails.B.An exception occurs at runtime.C.Thread one. Thread two.D.The output cannot be determined.5. Given:3. class MyThread extends Thread {4. public static void main(String [] args) {5. MyThread t = new MyThread () ;6. Thread x = new Thread(t);7. x.start();8. }9. public void run() {10. for(int i=0;i<3;++i) {11. System.out.print(i + "..");12. }13. }14. }What is the result of this code?pilation fails.B.1‥2‥3‥C.0‥1‥2‥3‥D.0‥1‥2‥E.An exception occurs at runtime.。