当前位置:文档之家› CoreJava测试题答案

CoreJava测试题答案

CoreJava测试题答案
CoreJava测试题答案

选择填空题:

选择题全部为多选题,只有全部正确才能得分。

1. 编译java程序的命令是B;运行java程序的命令是A;产生java文挡的命令是D;查询java类型是否是serializable类型的命令是C ;产生java安全策略文件的命令是E ;产生类型归档文件.jar的命令是F。

A. java

B. javac

C. serialver

D. javadoc

E. policytool

F. jar

//压缩jar cvf test.jar test

//解压jar xvf test.jar

2. 在一个java原文件中,import, class, package语句的顺序是F。

A. import class package

B. class import package

C. package class import

D. import package class

E. class package import

F. package import class

3. 下面叙述正确的有CDE 。

A. 在一个java原文件中只能定义一个class

B. 在一个java原文件中只能定义一个interface

C. 在一个java原文件中可以定义多个class

D. 在一个java原文件中可以定义多个interface

E. 在一个java原文件中可以定义多个class和interface

F. 在一个java原文件中只能定义public class

G. java原文件的前缀一定是所包含类型的名字

4. java程序中程序运行入口方法main的签名正确的有AB。

A. public static void main(String args[])

B. static public void main(String[] args)

C. public void static main(String[] args)

D. public void main(String args[])

5. java程序中程序入口方法main的参数代表命令行输入参数,命令行参数从A开始。

A. 0

B. 1

C. -1

6. 以下属于正确的java注释有ACD。

A. //This is comment

B. /*This is comment

C. /**This is comment*/

D. /*This is comment*/

7. 以下能作为class, interface, method或variable有效标识符的有ADF。

A. For

B. boolean //关键字

C. 23age

D. _id

E. my name //有空格

F. $this_is_a_long_variable_name

8. 以下不是java关键字的有CD 。 //NULL不属于关键字,null是关键字

A. super

B. this

C. NULL

D. true

9. 以下能作为char类型的字面值的有BD。

A. "e"

B. 'f'

C. '\u12'

D. '\u0012'

10. byte变量的取值范围是B。

A. 0 - 65535

B. -128 – 127

C. -256 – 255

D. 0 - 32767

11. 以下正确的有AC。

A. int i = 32;

B. float f = 45.32;

C. double d=3.2;

12. 以下返回true的表达式有AC。//equals比较的是两个对象的内容;“==”比较的是两个对象的地址

A. "george" == "george"

B. "george" = "george"

C. "george".equals(new String("george"))

D. "george" == new String("george")

13. 根据以下程序选择正确答案C:

public class Test{

static int total = 10;

public static void main(String args []) {

new Test();

}

public Test (){

System.out.println("In test");

System.out.println(this);

int temp = this.total;

if (temp > 5) {

System.out.println(temp);

}

}

}

A. 编译出错

B. 运行时有异常

C. 编译运行都正确

14. 下面集合定义正确的有BD。

A. String strs[] = { 'a' 'b' 'c'};

B. String[] strs = {"a", "b", "c"};

C. String[] strs = new String{"a" "b" "c"};

D. String strs[] = new String[]{"a", "b", "c"};

E. String[] strs = new String[3]{"a", "b", "c"};

15. 分别使用for, while, do/while循环实现从1到100的累加。

1): for

public class Test{

public static void main(String[] arg){

int result = 0;

for(int i=0;i<=100;i++){

result += i;

}

System.out.println("result==> "+result); }

} 2): while

public class Test{

public static void main(String[] arg){

int result = 0;

int i = 0;

while(i<=100){

result += i;

i++;

}

System.out.println("result==> "+result); }

}

3): do-while

public class Test{

public static void main(String[] arg){

int result = 0;

int i = 1;

do{

result += i;

i++;

}while(i<=100);

System.out.println("result==> "+result);

}

}

16. 以下switch表达语句正确的有AC。//switch():括号内为表达式或四种简单类型(byte, short, int, char)

A. public void switchTest (char c){switch(c){…}}

B. public void switchTest(long c){swit ch(c){…}}

C. public void switchTest(byte c){switch(c){…}}

D. public void switchTest(double c){switch(c){…}}

17. 在面向对象编程中,一个类型由CDF 组成。面向对象的特性包括GIJ。在java中访问权限的限制由严格到宽松依次是EHBA。

A. public

B. protected

C. identifier

D. data

E. private

F. operations

G. inheritance

H. default(no modifier)

I. encapsulation

J. polymorphism

18. 以下方法声明正确的有AD。

A. public static synchronized void writeLog(String msg)

B. synchronized public static writeLog(String msg) //没有返回类型

C. public final abstract void writeLog(String msg) //final和abstract不能连用

D. final public void writeLog(String msg)

E. abstract synchronized void writeLog(String msg) //抽象方法只能被public或protected修饰

19. Java方法的参数传递对于基本数据类型如int, byte等,参数传递是C;对自定义数据类型,参数传递是A。

A. by reference //引用

B. by pointer

C. by value

D. by address

20. 如下程序:

public class ArugmentTest {

static class IntA {

private int a;

public IntA(int a) {

this.a = a;

}

public int getA() {

return a;

}

public void setA(int a) {

this.a = a;

}

}

static public void change(int a) {

a = 3;

}

static public void change(IntA a) {

a.setA(3);

}

static public void changeRef(IntA a) {

a = new IntA(9);

}

public static void main(String[] args) {

int a = 2;

change(a);

System.out.print(a);

IntA ia = new IntA(5);

change(ia); //ia的属性a的值设为3

System.out.print(ia.getA());

changeRef(ia); //对象类型传引用,还是原来的对象

System.out.println(ia.getA());

}

}

在控制台上输出的是A。//数值传递规则:简单类型参数传递的是值;对象类型参数传递的是地址(引用)A. 233 B. 333 C. 259 D. 339

21. 下面程序出错的有 8/10 行。

1. class Student{

2. private String name; private int age;

3.public Student(){}

4.public void setName(String name){ https://www.doczj.com/doc/873631708.html,=name; }

5.void setAge(int age){ this.age= age; }

6.}

7.public class StudentTest{

8. public void static main(String[] args){ //返回值类型必须紧在方法名前

9. Student s = new Student();

10. https://www.doczj.com/doc/873631708.html, = “Hellen”;//Student类的name属性是私有不可见的,无法直接调用赋值

11. s.setAge(20);

12. }

13. }

22. 方法重载(overloading)必须满足CE 。

A. 在不同class中定义的方法

B. 在同一类型中定义的方法//也可以是子类中

C. 方法名必须相同

D. 返回类型必须相同//返回类型可以不相同

E. 参数一定不同

F. 参数可以相同

23. 对于构造方法(constructor)描述正确的有AC。

A. 构造方法没有返回类型

B. 构造方法一定是public的方法

C. 如果我们没有显示定义构造方法,系统会提供一个缺省的

D. 构造方法不能重载

24. 在java语法中允许B继承,A方法不能被继承,显示调用父类型的构造方法是通过调用E来完成的。

A. constructor

B. single

C. methods

D. fields

E. super

25. 以下对于方法覆盖(overriding)的说法正确的有BCDGH 。

A. 方法覆盖发生在同一类中

B. 方法的覆盖发生在子类型中

C. 方法名一定要一样

D. 参数一定要一样

E. 返回类型可以不一样// 返回类型必须相同忽略5.0中的特例

F. 访问权限只能一样//父类比子类的访问权限相同或更宽

G. 如有异常,子类型中抛出的异常与父类型中的一致或是其子类型

H. 静态方法可以被静态方法覆盖//父类的静态方法可以被子类的静态方法覆盖 e.g Over.java

//静态方法可以被覆盖?You CANNOT override a STATIC method but you can hide it!

父类的非静态方法不能被子类的静态方法覆盖

父类的静态方法不能被子类的非静态方法覆盖

26. 请看以下程序://多态

class V ehicle {

public void drive() {

System.out.println("V ehicle: drive"); }

}

class Car extends V ehicle {

public void drive() {

System.out.println("Car: drive");

}

}

public class Test {

public static void main (String args []) {

V ehicle v;

Car c;

v = new V ehicle();

c = new Car();

v.drive();

c.drive();

v = c;

v.drive();

}

}

以下描述正确的有C。

A. 对于语句v=c;会导致编译错误

B. 对于语句v=c;会导致运行错误

C. 运行输出:

V ehicle: drive

Car: drive Car: drive D. 运行输出: V ehicle: drive Car: drive

V ehicle: drive

27. 程序:

public class StaticTest {

static {

System.out.println("Hi there"); }

public void print() {

System.out.println("Hello"); }

public static void main(String args []) {

StaticTest st1 = new StaticTest();

st1.print();

StaticTest st2 = new StaticTest();

st2.print();

}

}

什么时候字符串“Hi there”会输出C。

A. 永远都不会输出

B. 创建st1和st2时

C. 第一次将StaticTest类型装载进内存时//第一次加载类时会执行静态代码块

D. 显示调用print方法时

28. 以下描述正确的有ABCD。

A. final class不能被继承

B. final变量不能被修改

C. final成员变量可以在构造方法中赋值//两种赋值时机:直接赋值、构造方法中赋值

D. final方法不能被覆盖(overriden)

29. 以下描述正确的有BCDE。

A. abstract class一定有abstract method(s)

B. abstract class可以没有abstract method(s)

C. 定义abstract class的目的是为了被继承

D. interface中定义的方法全是abstract methods

E. interface中定义的变量全部是final static变量

30. inner class的类型有ABCD。

A. member inner class

B. static inner class

C. local inner class

D. anonymous inner class

E. public inner class

F. global inner class

31. 一个匿名的内置类有可能ABD。//匿名内部类是一种特殊的局部内部类,可以使用成员变量

A. 继承其他的类

B. 实现了某一接口

C. 定义了构造方法

D. 可以使用成员变量

32. 如果你想将一组对象按一定顺序存取,在不考虑并发访问的情况下会使用C , 反之则会使用A;如果你想存储一组无序但唯一的对象,你会使用B ; 如果你想按关键字对对象进行存取,在不考虑并发访问的情况下会使用D , 反之则会使用E。

A. V ector

B. HashSet

C. ArrayList

D. HashMap

E. Hashtable

33. 程序代码:

public class ExceptionTest{

public double div(double a, double b){

try{

return a/b;

}catch(Exception e){

System.out.println(“Exception thrown”);

}finally{

System.out.println(“Release resources.”);

}

}

public static void main(String[] args){

ExceptionTest et = new ExceptionTest();

et.div(1, 2);

et.div(3.4, 0);

}

}

可能产生的结果是A:

A. 编译不成功//返回值

B. 无法运行

C. 程序运行输出为:

Release resources.

Exception thrown.

Release resources.

34. A又叫做unchecked exception。Checked Exception通常继承B。在方法签名上指定可能有异常产生用关键字E , 在程序中产生异常用关键字D。获得异常的简单描述信息调用方法C , 获得详细的异常栈信息调用方法F。

A. RuntimeException

B. Exception

C. getMessage

D. throw

E. throws

F. printStackTrace

35. 在图形编程中,将不同的控件按区域排列用D布局管理器;让控件自动排列并保持大小用C布局管理器;让控件按相同大小排列用B布局管理器;一次只有一个控件可见的布局管理器是A。

A. CardLayout

B. GridLayout

C. FlowLayout

D. BorderLayout

36. 图形编程通常按CABD顺序。

A. 设置布局管理器(Layout manager)

B. 向容器中增加控件

C. 选择容器

D. 为控件设置事件处理器

37. 完成如下代码,按照FlowLayout的布局方式向JFrame中添加一JButton:

JFrame frame = new JFrame(“Simple GUI”);

FlowLayout fl = new FlowLayout();

frame. getContentPane().setLayout();/frame.setLayout();

JButton btn = new JButton(“OK”);

frame. getContentPane().add(btn);/ frame. add(btn);

38. 事件处理方式采用了observer(观察者)设计模式,事件编程模式三要素是ABC。其中,B通常继承java.util.EventObject, C常继承java.util.EventListener。

A. Event source

B. Event object

C. Event listener

D. Helper

E. Model

39. JButton是B事件的事件源,它通过方法A注册事件侦听器,事件侦听器必须实现接口C , 当事件发生时侦听器的方法B被调用,在此方法中调用D的方法可以获得事件源。

A. addActionListener

B. ActionEvent

C. ActionListener

D. getSource

E. actionPerformed

40. JFrame的缺省布局管理器是B , JDialog的缺省布局管理器是B , JPanel的缺省布局管理器是A。

A. FlowLayout

B. BorderLayout

C. GridLayout

D. GridBagLayout

41. 在swing编程中,用作提示信息的控件是F , 作单行文本编辑的控件是D , 用作多行文本编辑的控件是A ,可编辑HTML等类型文档的控件是E,在界面上显示多条记录并可多重选择的控件是B , 从下拉框中选择记录的空间是C。

A. JTextArea

B. JList

C. JComboBox

D. JTextField

E. JEditorPane

F. JLabel

42. swing图形界面通常都会有菜单控件,所有的菜单都加到C;菜单的类型是 E ;在菜单上会有选项类型ABD 。

A. JMenuItem

B. JCheckBoxMenuItem

C. JMenuBar

D. JRadioBoxMenuItem

E. JMenu

43. 创建线程(Thread)的方式有两种,一种是继承类B,另一种是实现接口C。启动线程的方法是D。线程启动后运行的是A里的代码。

A. run

B. Thread

C. Runnable

D. start

44. 完成以下代码创建并启动线程:

public class TestThread implements Runnable{ public void run(){

for(int i = 0; i < 10000; i++)

System.out.println(i);

}

public static void main(String[] args){

TestThread tt = new TestThread();

Thread t = new Thread(tt);

t.start();

}

}

45. 判断一个线程是否被中断,调用方法C;中断一个线程,调用方法A;等待一个线程退出,调用方法B;一个线程放弃执行权利调用方法D。

A. interrupt

B. join

C. isInterrupted

D. yield

46. 并发控制是多线程编程的难点。一个线程要等待某个条件的满足调用方法B;通知某一个处于等待状态线程的方法是A ,通知多个的是D ;处于等待状态的线程当前调用的方法或程序块用关键字C来限制。

A. notify

B. wait

C. synchronized

D. notifyAll

47. 对原始数据的读写,采用流AH ,为了提高性能,采用流FI;对各种基本数据类型和String类型的读写,采用流BG;读写文本类型采用CJ,方便读写文本行采用流EK ;对象读写采用流LM;能指定字符编码的I/O流类型是DN。//能指定字符编码的是桥连接

A. InputStream

B. DataInputStream

C. Reader

D. InputStreamReader

E. BufferedReader

F. BufferedInputStream

G. DataOutputStream

H. OutputStream

I. BufferedOutputStream

J. Writer

K. PrintWriter

L. ObjectInputStream

M. ObjectOutputStream

N. OutputStreamWriter

48. 在当前工作目录下有一个用GBK编码的文本文件conf.txt,完成如下代码块能正确读该文件的每一行: FileInputStream fis = new FileInputStream(“conf.txt”);

InputStreamReader isr = new InputStreamReader(fis," GBK");

BufferedReader br = new BufferedReader(isr);

String line = br.readLine();

49. 一个File对象是文件或目录在内存中的表示,File类型中定义了方法D来判断一个文件是否存在,定义方法A创建一个新文件,定义方法C删除一个文件,定义方法B改变文件名,定义方法F创建一级目录,定义方法E同时创建一个目录层次。对原始数据类型文件的操作用文件I/O流HK;对文本文件操作用文件I/O流GJ ;同时对一个文件进行读写操作用文件流I。

A. createNewFile

B. renameTo

C. delete

D. exists

E. mkdirs

F. mkdir

G. FileReader

H. FileInputStream

I. RandomAccessFile

J. FileWriter

K. FileOutputStream

50. 在unix服务器https://www.doczj.com/doc/873631708.html,上提供了基于TCP的时间服务应用,该应用使用port为13。创建连接到此服务器的语句是A。

A. Socket s = new Socket(“https://www.doczj.com/doc/873631708.html,”, 13);

B. Socket s = new Socket(“https://www.doczj.com/doc/873631708.html,:13”);

C. Socket s = accept(“https://www.doczj.com/doc/873631708.html,”, 13);

51. 创建一个TCP服务程序,该程序运行在port为6868,完成以下代码,实现一个多线程的服务程序:

ServerSocket ss = new ServerSocket(6868);

while(true){

Socket clientRequest = ss.accept();

service(clientRequest);

}

52. 创建一个TCP客户程序的顺序是DACBE。

A. 获得I/O流

B. 关闭I/O流

C. 对I/O流进行读写操作

D. 建立socket

E. 关闭socket

53. 创建一个TCP服务程序的顺序是BCADEGF。

A. 创建一个服务线程处理新的连接

B. 创建一个服务器socket

C. 从服务器socket接受客户连接请求

D. 在服务线程中,从socket中获得I/O流

E. 对I/O流进行读写操作,完成与客户的交互

F. 关闭socket

G. 关闭I/O流

54. Java UDP编程主要用到的两个类型是BD。发送和接收信息的方法是F。

A. UDPSocket

B. DatagramSocket

C. UDPPacket

D. DatagramPacket

E. read/write

F. send/receive

Lab部分(前三题必须完成,4、5至少完成一个):

Unix系统的用户信息通常都放置在/etc/passwd文件中,每个用户的信息占用一行,文件格式如下:username:password:uid: gid:gcos-field:home-dir:login-shell

每个用户都会属于不同的组,组信息通常放置在/etc/group文件中,每个组信息占用一行,文件格式如下:groupname:password: gid:user-list

一个用户可以属于不同的组,一个组也可以包含多个用户。用户信息中的password和gcos-field信息,组信息中的password信息在我们的系统中被忽略。现在要建立一个用户管理系统,将所有的类型都放置在https://www.doczj.com/doc/873631708.html,ermgmt包下:

1. 尽量采用JavaBean的方式建立类型User和Group,类型除了包含以上提供的信息外,还要反映出两个

类型之间的关系,同时这两个类型的对象能在网络上传输;

2. 创建类型DataBuilder,通过解析字符串(文件/etc/passwd和/etc/group中的串)创建User和Group对

象,DataBuilder类图为:

3. 创建类型FileAnalyzer, 读取文件/etc/passwd和/etc/group的内容,使用DataBuilder,将文件内容完全反

映到内存中;

4. 编写一个Socket的客户程序UserClient,将3中产生的用户和组对象传递到服务器上;

5. 编写一个Socket 的多线程服务程序UserServer. 接收UserClient发送的对象,并在内存中形成所有服务器上的用户和组的内存映像。

java小试题

1. 关于Java语言的特征,描述正确的是 A. 支持跨平台(Windows,Linux,Unix等) B. GC(自动垃圾回收),提高了代码安全性 C. 支持类似C的指针运算操作 D. java语言是面向对象的语言 解答:ABD 范围:corejava 难度:3 2.下列表达式正确的是 A. byte b=128; B. boolean b=null; C. long a = 2147483648L; D. float f=0.9239; 解答:C 3.下列不属于java标识符的是 A.HelloWorld B._HelloWorld C. $HelloWorld D. HelloWorld3 E. 3HelloWorld 解答:E 4. 下列代码的运行结果是: public class SwitchTest { public static void main (String []args) { System.out.println (“value =” +switchIt(4)); } public static int switchIt(int x) { int j = 1; switch (x) { case 1: j++;

case 2: j++; case 3: j++; case 4: j++; case 5: j++; default:j++; } return j + x; } } A. Value =3 B. Value =4 C. Value =5 D. Value =6 E. Value =7 F. Value =8 解答:F 5. 以下程序的输出结果为: public class test { public static void main(String args[]) { int x=1,y=1,z=1; if (x--==1&&y++==1||z++==1) System.out.println("x="+x+",y="+y+",z="+z); } } A. x=0,y=2,z=1 B. x=1,y=2,z=1 C. x=0,y=1,z=1 D. x=0,y=2,z=2 解答:A #6. 下面的程序没有编译错误的是:

Java练习题、编程题

第二章 注意问题: main函数是Java应用程序执行的入口。 (int)23.7结果为23 (int)-45.89f结果为-45 +”除字符串相加功能外,还能把非字符串转换成字符串,如:“x”+123;的结果是“x123”。 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论了 1,三元运算符 class TernaryOp { public static void main(String args[]) { int salary,daysPresent = 30; salary = daysPresent == 20 ? 2000 : 3000; System.out.println("您本月薪资为 $"+salary); } } 2,编写一个程序,这个程序从键盘上输入2个数,然后求这2个数的和,程序结束。 提示:调用System.in.read();可以读取到一个从键盘上输入字符对应的整数。通过这个程序,你一定能体会到在什么 import java.io.*; public class Ch1 { public static void main(String[] args) throws IOException{ BufferedReader ke =new BufferedReader(new InputStreamReader(System.in)); String x; int p,q,m; System.out.print("请输入第一个数"); x=ke.readLine(); p=Integer.parseInt(x); System.out.print("请输入第二个数"); x=ke.readLine(); q=Integer.parseInt(x); m=p+q; System.out.println("两个数的和为:"+m); } } 3,数组 public class Lo { public static void main(String[] args) {

面向对象试题(标准答案)

CoreJavaOOP考试题 考试时间:90分钟 考试总分:100分 一、选择题(不定项选择)(22*4=88) 1. 类A,B的定义如下: class A { private int a = 100; A() { System.out.print("A()"); System.out.println(a); } } class B extends A { private int a = 200; B() { System.out.print("B()"); System.out.println(a); } } 运行下面的代码: new B(); 输出的结果是:(A )。 A. A() 100 B() 200 B. A() 200 B() 200 C. B() 200 A() 100 D. B() 200 A() 200

2.下列说法正确的是(D ) A.所有类都必须定义构造方法(构造器) B.构造方法必须初始化类的所有数据成员 C.子类定义了构造器后,不再调用父类的构造器 D.构造方法可以访问类的非静态成员 3.在Java中,哪个关键字使类不能派生子类?, (A ) A : final B : public C : private D : native 4.class Base{ static void test(){ System.out.println(“Base.test()”); } } public class Child extends Base{ static void test(){ System.out.println(“Child.test()”); } public static void main(String[] args){ Base base = new Child(); Child child = new Child(); base.test(); child.test(); } } 程序运行的结果是( C ) A.Child.test() Child.test() B.Child.test() Base.test() C.Base.test() Child.test() D.Base.test() Base.test()

公司内部Javaio流笔试题

公司内部Javaio流笔试题

IO 框架 Key Point * File 类 * 流的分类 * 基本字节流 * 字节过滤流 * 基本字符流、桥转换 * 字符过滤流 * 对象序列化 练习 1. (File 类)以下关于File 类说法正确的是: A.一个File 对象代表了操作系统中的一个文件或者文件夹 B.能够使用File 对象创立和删除一个文件 C.能够使用File 对象创立和删除一个文件夹 D.当一个File 对象被垃圾回收时,系统上对应的文件或文件夹也被删除2. (File 类)有如下代码: public class TestFile{ public static void main(String args[]){ File file = new File(“chp13/corejava.txt”); } } 请选择一个正确答案: A. corejava.txt 文件在系统中被创立 B. 在windows 系统上运行出错,因为路径分隔符不正确 C. corejava.txt 文件在系统中没有被创立

D. 如果corejava.txt 文件已存在,则抛出一个异常 3. (File 类)将下列代码补充完整 class TestMyFile{ public static void main(String args[]) throws Exception{ File file; //创立一个File 对象表示当前目录下的“hello.txt”文件 //判断该文件是否存在 //如果该文件存在,则输出该文件的完整路径 } } 4. (流的分类)对于FileInputStream 来说,从方向上来分,它是_________流,从数据单 位上分,它是__________流,从功能上分,它是____________流。 5. (字节流, FileInputStream)FileInputStream 有三个重载的read 方法,其中 1) 无参的read 方法返回值为___类型,表示_________________ 2) int read(byte[] bs)方法返回值表示______________,参数表示 ________________ 3) int read(byte[] bs, int offset, int len) 方法返回值表示 _______________,参数分别表示 ___________________________。 6. (FileInputStream)下面关于FileInputStream 类型说法正确的是: A.创立FileInputStream 对象是为了读取硬盘上的文件 B.创立FileInputStream 对象时,如果硬盘上对应的文件不存在,则抛出一个异常 C.利用FileInputStream 对象能够创立文件 D.FileInputStream 对象读取文件时,只能读取文本文件。

COREJAVA第一阶段笔试题_答案(2)

选用的题目如下: 01.数组有没有length()这个方法? String有没有length()这个方法? 数组没有length方法数组提供的获得元素个数的方式是通过访问数组的length属性String也就是字符串类型有length()用于返回字符串的字符个数也就是俗话说的字数但是字符数和字节数是不同的 int num = str.getBytes().length - str.length(); 可以得到一个字符串当中有多少个汉字 02.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?为什么? Overload:方法重载指发生在同一类当中,方法名字相同,参数列表(类型、个数、顺序)不同的两个方法 (体现静态多态) Override:方法覆盖发生在有继承关系的两个类之间子类类型当中访问控制权限修饰符不能更严格抛出的异常种类不能更广泛 方法重载的时候可以改变返回值的类型return type maybe different 因为方法名字和参数列表一旦确定在一个类当中就可以唯一确认一个方法所以即便方法返回类型不同 也能判断出来调用的是哪个方法,因而不会出错 03.== 与equals 有何区别? == 是Java当中的运算符用于比较两个引用当中存放的内存地址也就是内存指向是否相同 或者说用于判断两个对象是否是同一个对象 equals()是Java当中所有类型的父类既Object类当中的一个方法用于任何一个子类类型 通过覆盖equals从而给这个类型提供另外一种比较规则(因为java当中没有运算符重载) 很多人看到equals就认为是比较内容的方法其实不然在Object类当中equals方法当中也是采用==实现比较 04abstract class和interface有什么区别? 抽象类当中可以定义普通的属性可以定义普通的方法(有完整方法体的方法), 抽象类依然是Object的子类类型 interface从某种意义上应当理解成为更为纯粹的抽象类当时其中只能定义抽象方法和常量 接口当中定义的变量默认就是常量接口当中定义的方法默认就是抽象方法 接口的概念没有父类换言之接口不是Object类型的子类类型 05.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 接口可以继承接口而且可以多重继承在继承多个接口的同时子接口等价于两个接口

java练习题

Chap1Java语言基础 Key Point ●包的基本语法 ●Java语言中的标识符,命名规范 ●八种基本类型 ●基本操作符 练习 1.(标识符命名)下面几个变量中,那些是对的?那些是错的?错的请说明理由 A.ILoveJava B.$20 C.learn@java D.antony.lee E.Hello_World F.2tigers 2.(Java程序的编译与运行)假设有如下程序: package com.corejava.chp1; public class HelloWorld{ public static void main(String args[]){ System.out.println("Hello World"); } } 问: 1)假设这个代码存在hello.java文件中,那这个程序能够编译通过?为什么?如果编译不通过,应该如何改进? 2)假设这个.java文件放在C:\javafile\目录下,CLASSPATH=.,则生的.class 文件应该放在什么目录下?如何运行? 3.(操作符)有如下代码: int a=5; int b=(a++)+(--a)+(++a); 问执行完之后,b的结果是多少? 4.(基本类型的运算)一家商场在举行打折促销,所有商品都进行8折优惠。一位程序员把这个逻辑写成: short price=...;//先计算出原价 short realPrice=price*8/10;//再计算出打折之后的价格

问:这段代码是否正确?如果正确,假设price为100,那计算之后的realPrice 值为多少?如果不正确,应该怎么改正? 5.(操作符)有如下代码: a=(a>b)?a:b; 请问这段代码完成了什么功能? 6.(表达式)int n,请用表达式表示n的个位数,十位数,百位数 7.(表达式)int a,b;请用表达式判断b是不是a的因子 8.(表达式)*double d;用表达式表示d四舍五入后的int结果 9.(表达式)*某商场促销,满百减四十,商品原价int a,请用表达式表示实际销售价格。如:商品原价230元,实际销售价格为230-80=150元。 10.(表达式)*某市出租车起步价10元,3公里后开始计价,30公里以内每公里2元,超出30公里的部分每公里3元,定义公里数n,计算最终应支付多少元。 11.(表达式)*某项查询执行之后,n条结果,每页显示m条,第i页显示第几条到第几条? 12.(表达式)**int a,b请写出3条语句,让a和b交换值(请至少找出三种做法)

CoreJava第一次考试——1

考试一 试题类型:不定项选择题 试题1指出下面语句编译错误的是() A. byte b=128; B. boolean flag=null; C. long a = 2147483648L; D. float f=0.9239; 试题2完成代码计算10的阶乘并输出,应该填入的代码是()… … long result = 1; for(int i = 2; i <= 10; i++) { < 填入代码 > } System.out.println("result= " + result); … … A. result = result * i; B. result = i*i; C. result = i*(i+1); D. reslut = i*(i-1); 试题3下列关于数组的声明错误的是()

A. int[] arry = new int[100]; B. int[3] arry = {1,2,3} C. int[] arry = new int[]{1,2,3} D. int[][] arry = new int[3][] 试题4语句System.out.println(1+2+"java"+3+4)输出的结果是()。 A. 3java34 B. 12java34 C. 3java7 D. 12java7 试题5下面程序的输出结果是() public static void main(String[] args) { int d = 325; int sum = 0; while (d > 0) { int n = d % 10; sum += n; d /= 10; } System.out.println(sum);

java集合-练习题解析

1. 填空 Collection 接口的特点是元素是___无序可重复______; List 接口的特点是元素__有__(有|无)顺序,_可以___(可以|不可以)重复; Set 接口的特点是元素__无___(有|无)顺序,____不可以__(可以|不可以)重复;Map 接口的特点是元素是__key、value映射______,其中__value__可以重复,_key___不可以重复。 2. (List)有如下代码 import java.util.*; public class TestList{ public static void main(String args[]){ List list = new ArrayList(); list.add(“Hello”); list.add(“World”); list.add(1, “Learn”); list.add(1, “Java”); printList(list); } public static void printList(List list){ //1 for(int i = 0; i< list.size();i++){ System.out.println(list.get(i)); } for(Object o : list) { System.out.println(o); } Iterator itor = list.iterator(); while(itor.hasNext()){ System.out.println(itor.next()); } } } 要求: 1) 把//1 处的代码补充完整,要求输出list 中所有元素的内容 2) 写出程序执行的结果Hello Java Learn World 3) 如果要把实现类由ArrayList 换为LinkedList,应该改哪里?ArrayList 和LinkedList 使用上有什么区别?实现上有什么区别? 4) 如果要把实现类由ArrayList 换为Vector,应该改哪里?ArrayList 和Vector 使 用上有什么区别?实现上有什么区别? 3. (List)写出下面程序的运行结果

Java经典练习题

Java基础试题 一、选择题 1.编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. .java B. .class C. .html D. .exe 2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。 A. 3 B. 3. 5 C. 4 D. 5 3、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的(B)? A、public static void main() B、public static void main(String args[] ) C、public static int main(String [] arg ) D、public void main(String arg[] )4 4.Which of the following is not a valid comment:D a. /** comment */ b. /* comment */ c. /* comment d. // comment 5. Java中char类型的数据长度为 :C (A)8位(B)16位(C)32位(D)64位 6.下面哪个表达式是错误的:B (A)int i = 100; (B)float f = 100.0; (C)Object o = “Hello world”; (D)char c = ‘\u1234’; 7.下面哪个语句是正确的:C (A)byte s = 256; (B)String s = ‘Hello world’; (C)int x = 012; (D)char c = “a”; 8.下列叙述中,正确的是:A A)声明变量时必须指定一个类型 B)Java认为变量number与Number相同 C)Java中唯一的注释方式是"//" D)源文件中public类可以有0或多个 9.下列属于合法的Java标识符是:D A)"ABC" B)&5678 C)+rriwo D)saler 10.下面哪个标识符是不合法的:D (A)s1 (B)$1 (C)_1 (D)1s 11.在switch(expression)语句中,expression的数据类型不能是:A A)double B)char C)byte D)short 12.已知:int[] a = new int[100];在下列给出的数组元素中,非法的是:D A)a[0] B)a[1] C)a[99] D)a[100] 13.下列的哪个赋值语句是不正确的?: A A.float f = 11.1; B.double d = 5.3E12;

CoreJava第三次内测试卷

《CoreJava第三次内测》 一、单选题(共33分,每题2分,共66分) 1.下列对Java中的继承描述错误的说法是()。 A.子类至少有一个基类 B.子类可作为另一个子类的基类 C.子类除了包含它直接定义的属性外,还包含其父类的私有属性 D.子类继承父类的方法访问权限保持不变 2.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的代码会不会被执行,什么时候被执行? ( ) A.不会执行 B.会执行,在return前执行 C.会执行,在return后执行 D.会执行,可能在return前执行,也可能在return后执行 3.构造方法是否可被重写和重载()。 A.不能重写,可以重载 B.可以重写,不能重载 C.不能重写,不能重载 D.可以重写,可以重载 4.给出一段程序,试判断哪个是正确的结果() public class rtExcept{ public static void throwit(){ System.out.print(“throwit”); throw new RuntimeException(); } public static void main(String [] aa){ try{ System.out.print(“hello “); throwit(); } catch(Exception re){ System.out.print(“caught ”); } finally{ System.out.print(“finally ”); } System.out.print(“after ”); } } A、hello throwit caught B、hello throwit caught finally after C、hello throwit RuntimeException after D、hello throwit caught finally after RuntimeException 5.给出一段程序,试判断哪个是正确的结果() public class myprogram{ public static void main (String args[]){ try{ System.out.print(“Hello world ”); } finally{ System.out.println(“Finally executing”); }}} A、无法编译,因为没有指定异常 B、无法编译,因为没有catch子句 C、Hello world D、Hello world Finally executing 6.对于catch子句的排列,下列哪种是正确的( ) A.父类在先,子类在后 B.子类在先,父类在后 C.有继承关系的异常不能在同一个try程序段内 D.一个try后只能放一个catch 7.Java中,泛型数据类型声明可能出现的符号是( ) A.R B.D C.T D.都可以 8.关于Java中异常的叙述正确的是:() A.异常是程序编写过程中代码的语法错误B.异常是程序编写过程中代码的逻辑错误C.异常出现后程序的运行马上中止D.异常是可以捕获和处理的 9.所有的异常和错误皆继承哪一个类?() A.java.io.Exception B.https://www.doczj.com/doc/873631708.html,ng. Exception C.https://www.doczj.com/doc/873631708.html,ng. Throwable D.https://www.doczj.com/doc/873631708.html,ng.Error 10.下列关于try-catch-finally语句的描述中,错误的是() A.try语句后面的程序段将给出处理异常的语句 B.catch()方法跟在try语句后面,它可以是一个或多个 C.catch()方法有一个参数,该参数是某种异常类的对象 D.finally语句后面的程序段总是被执行的,该语句起到提供统一接口的作用 11.给出下面的代码

Java练习及参考答案

1,编写程序,判断给定的某个年份是否是闰年。 闰年的判断规则如下: (1)若某个年份能被4整除但不能被100整除,则是闰年。 (2)若某个年份能被400整除,则也是闰年。 import java.util.Scanner; class Bissextile{ public static void main(String[] arge){ System.out.print("请输入年份"); int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in); year = scanner.nextInt(); if (year<0||year>3000){ System.out.println("年份有误,程序退出!"); System.exit(0); } if ((year%4==0)&&(year%100!=0)||(year%400==0)) System.out.println(year+" is bissextile"); else System.out.println(year+" is not bissextile "); } } 2,给定一个百分制的分数,输出相应的等级。 90分以上 A级 80~89 B级 70~79 C级 60~69 D级 60分以下 E级 import java.util.Scanner; class Mark{ public static void main(String[] args){ System.out.println("请输入一个分数"); //定义输入的分数为“mark”,且分数会有小数 double mark; Scanner scanner = new Scanner(System.in); mark = scanner.nextDouble(); //判断是否有输入错误。 if(mark<0||mark>100){ System.out.println("输入有误! ");

《CoreJava》理论试题题库答案版

《CoreJava》理论试题题库答案版得分阅卷人 一、单选题(20题,共38分) 1、(2分)基本数据类型float的包装类是哪项,(C) A( Integer B( Double C( Float D( Character 2、(2分)使用下列哪个修饰符定义的类不能被继承( C ) A. static B. abstract C. final D. Native 3、(1分)下列类的定义,错误的是( D ) A. public class test extends Object{……} 学院班级姓名 B. final class operators{……} 密封线内不要答题 C. class Point{……} D. void class Point{……} 4、(2分)静态内部类是指使用(B)来修饰的内部类 A(final B.static C.public D.protected 5、(2分)匿名内部类的特点下面错误的是(b) A、匿名内部类没有构造方法 B、匿名内部类是静态的 C、它主要用于继承其他类或实现接口 D、它是一个特殊的局部内部类 6、(2分)下列哪个类不是java基本数据类型的封装类,( C ) A. Integer; B. Byte; C. String; D. Character; 7、(1分)基本数据类型char的包装类是哪项,( D ) A int

B char C String D Character 8、(2分)阅读以下程序代码,作出分析:public class Test { public static void main(String[] args) { boolean b = true; b=new Apple().equals(new Apple()); System.out.println(b); }}class 1 / 49 Apple{}该程序的输出结果是:(A) A(false B(true C. 不确定结果 D. 编译错误 9、(2分)List接口的特点是哪项,(C) A(不允许重复元素,元素无顺序 B(不允许重复元素,元素无顺序 c(允许重复元素,元素有顺序 D(允许重复元素,元素无顺序 10、(2分)关于HashMap和HashTable的说法错误的是( D ): A. HashMap和HashTable都是Map接口的实现类 B. HashTable是线性安全的 C. HashMap是线性不安全的 D(HashTable要比HashMap的性能高一点 11、(2分)当程序调用一个null对象的方法或属性时,这将引起(A )异常

chap1习题

Chp1 Java 语言基础 Key Point ●包的基本语法 ●Java 语言中的标识符,命名规范 ●八种基本类型 ●基本操作符 ●if 语句和switch 语句 练习 1.(标识符命名)下面几个变量中,那些是对的?那些是错的?错的请说明理由 A. ILoveJava B. $20 C. learn@java D. antony.lee E. Hello_World F. 2tigers 2.(Java 程序的编译与运行)假设有如下程序: package com.corejava.chp1; public class HelloWorld{ public static void main(String args[]){ System.out.println("Hello World"); } } 问: 1)假设这个代码存在hello.java 文件中,那这个程序能够编译通过?为什么?如果编译不通过,应该如何改进? 2)假设这个.java 文件放在C:\javafile\目录下,CLASSPATH=.,则生成的.class文件应该放在什么目录下?如何运行? 3.(if 语句)读入一个整数,判断其是奇数还是偶数 4.(操作符)有如下代码: int a = 5; int b = (a++) + (--a) +(++a); 问执行完之后,b 的结果是多少? 5.(基本类型的运算)一家商场在举行打折促销,所有商品都进行8 折优惠。一位程序员把这个逻辑写成: short price = ...; // 先计算出原价 short realPrice = price * 8 / 10; //再计算出打折之后的价格 问:这段代码是否正确?如果正确,假设price 为100,那计算之后的realPrice值为多少?如果不正确,应该怎么改正? 6. (操作符)请说明>>与>>>之间的区别。 7. (操作符)有如下代码:

JAVA小练习(带答案)

Java 小练习 难度:4 范围:corejava day02: 函数计算器(必做)FunctionDemo.java 等额本息还款计算(必做)Credit.java 加法练习器(选作)AddDemo.java day03: 判断航班日期(必做)AirlineDemo.jar 计算验证条形码(必做)Ean13Barcode.jar day04: 验证身份证号码的正确性IdCardDemo.java 实现文字竖排V align.java day05: 1)根据观察,蟋蟀的鸣叫频率与夏天的温度有关,具体的关系有公式:t=(c+40)/10决定,其中c代表蟋蟀每分钟的鸣叫数,t代表摄氏温度。在给定的类Centigrade的基础上,实现centigrade方法返回相应的摄氏温度值。 2)欧几里德算法又称辗转相除法,用于计算两个正整数a,b的最大公约数。其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a % b) (a>b 且a mod b 不为0) 在给定类Euclide的基础上计算两个正整数的最大公约数,要处理a % b 为0情况。 3)实现数组匹配游戏 在两个数组中,索引相同的位置如果值相同用a表示 在两个数组中,索引不同的位置如果值相同用b表示 例: int[] arrOne = { 2, 1, 4, 5, 6 }; int[] arrTwo = { 2, 4, 7, 1, 6 }; 以上数组中有2个a 2个b 在给定类Matching的基础上完成match方法 package day02; import java.util.Random; import java.util.Scanner; /** * 加法练习器选做题目

java第一阶段测试题(答案)分析

JA V A基础测试题-CORE JA V A部分1.在main(String[] args)方法内是否可以调用一个非静态方法? 答:main方法是静态方法,不能直接去访问非静态成员(成员可以是成员变量或是成员方法)2.请简述java程序运行的过程 答: .java程序----编译---→.class----运行---→显示结果 3.java中的控制台输出内容换行方式有几种? 答:第一种:System.out.println(); 第二种:System.out.print(“\n”); 4.java中的注释有哪几种?分别用来注释什么? 答:有三种注释分别为: 单行注释: //常用来注释变量 多行注释:/* *用来注释变量,方法,类 */ 文档注释:/** *用来注释变量,方法,类 */ 5.请简述java 中标识符命名规则. 答:必须是字母,数字,下划线,$组成 不能以数字开头;不能是java中的保留字,最好见名知义

6.请举例说明Scanner这个类的常用方法 答:next() nextLine() nextInt() nextFloat() nextDouble() hasNextInt() 7.java中的数据类型分为哪两类? 答:数据类型分八个基础数据类型(byte,short,int ,long ,float,double,char,boolean) 和引用数据类型(包括类,接口和数组) 8.java中全局变量和局部变量的区别? 答:位置的区别:java中全局变量就是类中的属性,而局部变量是方法中或代码块中定义的变量; 初始值不一样:全局变量不赋值,系统会给默认值,也不会报错,而局变部量必须要赋初始值; 作用域不一样:全局变量在整个类所有方法中可以访问,局部变量只能在定义它的那一对括号中才可以访问 9.同一个文件里是否可以有两个public类? 答:不可能,一个java文件中只能有一个类是public的,而必须是public的类才可以作为java文件的类名. 10.方法名是否可以与构造器的名字相同? 答:可以。 11.初始化了一个没有run()方法的线程类,是否会出错? 答:不会出错 第一种方法:直接继承Thread类。 public class Test{ public static void main(String[] args){

杰普-Core-Java2014测试题-附最新答案

班级::日期: Core Java试题 选择填空题:全部为多选题,只有全部正确才能得分。 1.编译java程序的命令是___B_____;运行java程序的命令是____A____;产生java文挡的命令是 _D_______;查询java类型是否是serializable类型的命令是___C_____;产生java安全策略文件的命令是___E_____;产生类型归档文件.jar的命令是__F______。 A. java B. javac C. serialver D.javadoc E.policytool F.jar 2.在一个java原文件中,import, class, package语句的顺序是_F_______。 A.import class package B.class import package C.package class import D.import package class E.class package import F.package import class 3.下面叙述正确的有_______CDEF_____________。 A.在一个java原文件中只能定义一个class B.在一个java原文件中只能定义一个interface C.在一个java原文件中可以定义多个class D.在一个java原文件中可以定义多个interface E.在一个java原文件中可以定义多个class和interface F.在一个java原文件中只能定义一个public class 4.java程序中程序运行入口方法main的签名正确的有____AB____。 A.public static void main(String args[]) B.static public void main(String[] args) C.public void static main(String[] args) D.public void main(String args[]) 5.java程序中程序入口方法main的参数代表命令行输入参数,命令行参数从____A____开始。 A. 0 B. 1 C.-1 6.以下属于正确的java注释有____ACD____。 A. //This is comment B. /*This is comment C. /**This is comment*/ D. /*This is comment*/ 7.以下能作为class, interface, method或variable有效标识符的有______ADF__________。 A.For B.boolean C.23age D. _id E.my name F. $this_is_a_long_variable_name 8.以下不是java关键字的有__D______。 A. super C.this D.NULL E.true 9.以下能作为char类型的字面值的有__BD______。 A. “e” B.’f’ C. ‘\u12’ D.’\u0012’ 10. byte变量的取值围是____B____。 A. 0 - 65535 B.-128 – 127 C.-256 – 255 D.0 - 32767 11.以下正确的有_____AC___。

core_java面试题

JA V A面试题-COREJA V A部分 1.在main(String[] args)方法内是否可以调用一个非静态方法? 答案:不能 2.同一个文件里是否可以有两个public类? 答案:不能 3.方法名是否可以与构造器的名字相同? 答案:可以。 public class Test { public Test(String iceboy) { System.out.println(iceboy); } public void Test(String iceboy) { System.out.println(iceboy); } public static void main(String[] args) { Test a = new Test("abc");//输出“abc” a.Test("iceboy");//输出“iceboy” } } 4. 初始化了一个没有run()方法的线程类,是否会出错? 答案:不会。 第一种方法:直接继承Thread类。 public class Test { public static void main(String[] args) { ThreadClass t = new ThreadClass(); t.start(); System.out.println("end");//输出“end” } } class ThreadClass extends Thread //Thread类已经实现了空的run()方法。 { } 第二种方法:实现Runnable接口 public class Test { public static void main(String[] args) {

公司内部Javaio流笔试题

IO 框架 Key Point * File 类 * 流的分类 * 基本字节流 * 字节过滤流 * 基本字符流、桥转换 * 字符过滤流 * 对象序列化 练习 1. (File 类)以下关于File 类说法正确的是: A.一个File 对象代表了操作系统中的一个文件或者文件夹 B.可以使用File 对象创建和删除一个文件 C.可以使用File 对象创建和删除一个文件夹 D.当一个File 对象被垃圾回收时,系统上对应的文件或文件夹也被删除2. (File 类)有如下代码: public class TestFile{ public static void main(String args[]){ File file = new File(“chp13/corejava.txt”); } } 请选择一个正确答案: A. corejava.txt 文件在系统中被创建 B. 在windows 系统上运行出错,因为路径分隔符不正确 C. corejava.txt 文件在系统中没有被创建

D. 如果corejava.txt 文件已存在,则抛出一个异常 3. (File 类)将下列代码补充完整 class TestMyFile{ public static void main(String args[]) throws Exception{ File file; //创建一个File 对象表示当前目录下的“hello.txt”文件 //判断该文件是否存在 //如果该文件存在,则输出该文件的完整路径 } } 4. (流的分类)对于FileInputStream 来说,从方向上来分,它是_________流,从数据单 位上分,它是__________流,从功能上分,它是____________流。 5. (字节流, FileInputStream)FileInputStream 有三个重载的read 方法,其中 1) 无参的read 方法返回值为___类型,表示_________________ 2) int read(byte[] bs)方法返回值表示______________,参数表示 ________________ 3) int read(byte[] bs, int offset, int len) 方法返回值表示_______________,参数分别表示 ___________________________。 6. (FileInputStream)下面关于FileInputStream 类型说法正确的是: A.创建FileInputStream 对象是为了读取硬盘上的文件 B.创建FileInputStream 对象时,如果硬盘上对应的文件不存在,则抛出一个异常 C.利用FileInputStream 对象可以创建文件 D. FileInputStream 对象读取文件时,只能读取文本文件。 7. (FileOutputStream)填空:

相关主题
文本预览
相关文档 最新文档