您好,欢迎来到小侦探旅游网。
搜索
您的当前位置:首页JavaSE试题

JavaSE试题

来源:小侦探旅游网
1. JAVA语言概论

1.1. 选择题

1. java程序的执行过程中用到一套JDK工具,其中javac.exe指

A. java语言编译器 B. java字节码解释器 C. java文档生成器 D. java类分解器

2. java的API结构中,不属于类库主要包括的核心包的是

A. java包 B. javax

C. javadoc包 D. org扩展包

3. 每个java的源文件可包含多个类,但是每个源文件最多只能有()类是公共的

A. 一个 B. 两个 C. 四个 D. 任意多个

4. 在当前的java实现中,每个源文件就是一个以()为后缀的文件

A. java B. class C. doc D. exe

1.2. 填空题

1. java可以跨平台的原因是____

2. JAVA系统运行时,通过______机制周期性的释放无用对象所使用的内存,

完成对象的清除。

3. 在JAVA语言中,将后缀名为______的源代码文件编译后形成后缀名

为.class的字节码文件。

4. JAVA类库具有_____的特点,保证了软件的可移植性。 5. 在编写执行JAVA程序的过程中需要用到一些工具,SUN公司为我们提供了一

套JDK工具,它主要包括:javac.exe、java.exe、_____、javap.exe、jkb.exe 6. 在JAVA语言中,为将源代码翻译成______文件时产生的错误称为编译错误。

而将程序在运行中产生的错误称为运行错误。 7. Java Application应用程序的编写和执行分3步进行:编写源代码、编译

源代码、_____。

1

8. 每个java应用程序可以包括许多方法,但必须有且只能有一个_____方法。 9. JAVA源文件中最多只能有一个_____类,其它类的个数不限。 10. 类库主要包括核心JAVA包、_____和org扩展包。

2. JAVA语言基础

2.1. 选择题

1. 下列java标识符,错误的是()

A. _sys_varl B. $change C. User_name D. 1_file 2. 下列不属于基本数据类型的是()

A. 整数类型 B. 类

C. 符点数类型 D. 布尔类型

3. 下列属于JAVA关键词的是()

A. TRUE B. main C. float D. NULL 4. 下列声明和赋值语句错误的是

A. double d=3.1415; B. String str=”bye”; C. float f=6.74567 D. boolean boo=true; 5. java中,八进制数以______开头。

A. 0x B. 0 C. 0X D. 08 6. 基本数据类型的自动类型提升的顺序是()

A. char-int-long-float-double B. int-long-float-double-char C. long-float-int-double-char D. 以上都不对

7. 在java中,Integer.MAX_VALUE表示

A. 浮点类型最大值 B. 整数类型最大值 C. 长整型最大值

2

D. 以上说法都不对 8. 下列表示单引号的是()

A. \\„ B. \\\\‟ C. \\\\\\\\‟ D. „\\\\

9. 下列语句片断中,four得值为:()

int three=3; char one=„1‟

char four=(char)(three+one);

A. 3 B. 1 C. 31 D. 4 10. 下列不属于整型变量的类型是

A. byte B. short C. float D. long 11. int类型整型变量在内存中的位数为

A. 8 B. 16 C. 32 D.

12. 下列数据类型转换,必须进行强制类型转换的是

A. byte→int B. short→long C. float→double D. int→char 13. java中,用()关键字定义常量

A. final B. #define C. float D. const 14. 下列属于比较运算符的是

A. + B. != C. && D. >>

15. 下列程序test类中的变量c的最后结果为 public class test {

public static void main(String args[]) {

3

int a=10; int b; int c; if(a>50) { b=9; }

c=b+a; } }

A. 10 B. 0 C. 19

D. 编译出错

16. 下列程序片断的执行,说法正确的是

public class test

public static void main(String args[]) {

byte b=100; int i=b; int a=2000; b=a;

System.out.println(b); } }

A. b的值为100 B. b的值为2000 C. int i=b出错 D. b=a出错

17. 00101010(&)00010111语句的执行结果为

A. 00000010 B. 11111111 C. 00111111 D. 11000000

18. 已知i为整形变量,关于一元运算++i和i++,下列说法正确的是

A. ++i运算将出错

B. 在任何情况下运行程序结果都一样 C. 在任何情况下运行程序结果都不一样 D. 在任何情况下变量i的值都增1

19. 在java中语句:37.2%10的运算结果为

A. 7.200000000000003 B. 7 C. 3

4

D. 0.2

20. 在java语句中,运算符&&实现

A. 逻辑或

B. 逻辑与具备短路功能 C. 逻辑非 D. 逻辑相等

21. 在java语句中,位运算操作数只能为整型或()数据

A. 实型 B. 字符型 C. 布尔型 D. 字符串型

22. 00101010(|)00010111语句的执行结果为

A. 00000000 B. 11111111 C. 00111111 D. 11000000 23. ~0010101语句的执行结果为

A. 1101010 B. 0010101 C. 11111111 D. 00000000 24. 下列不属于条件语句关键字的是

A. if B. else C. swich D. while 25. 下列方法method()执行,返回值为

int method(){ int num=10; if (num>20) return num; num=30; }

A. 10 B. 20 C. 30

D. 编译出错

26. 三元条件运算符ex1?ex2:ex3,相当于下面()语句。

A. if(ex1) ex2;else ex3; B. if(ex2) ex1;else ex3; C. if(ex1) ex3;else ex2; D. if(ex3) ex2;else ex1;

27. 关于while和do-while循环,下列说法正确的是

5

A. 两种循环除了格式不通外,功能完全相同

B. 与do-while语句不通的是,while语句的循环至少执行一次 C. do-while语句首先计算终止条件,当条件满足时,才去执行循环体中的语句 D. 以上都不对。

28. 下列程序输出结果为: public class test {

public static void main(String args[]) {

int a=0;

outer: for(int i=0;i<2;i++) {

for(int j=0;j<2;j++) {

if(j>i) {

continue outer; } a++; } }

System.out.println(a); } }

A. 0 B. 2 C. 3 D. 4

2.2. 填空题

1. 在java语言中,boolean型常量只有true和_____两个值。 2. 标识符是以_____、下划线、美元符号作为首字母的字符串序列。 3. 下面的语句是声明一个变量并赋值:

a) boolean b1=5!=8;b1的值是______。

4. 在java程序中,用关键字_____修饰的常量对象创建后就不能再修改了。

5. 数据类型包括基本数据类型和引用数据类型。引用数据类型又包括类、数组、______。 6. 八进制整数012表示十进制的_______。

7. 浮点型数据属于实型数据,分为float和______两种类型。

8. 类的成员变量在类中声明,而不是在类的某个方法中声明,它的作用域是______. 9. java语言中的各种数据类型之间提供自动转换,如第1操作数是byte类型,第2操

作数是float类型,其结果是_____类型。

6

10. 下面程序分别用while、do-while 和for语句实现1~10累计求和。请在横线处填

入适当内容完成程序。 Public class Sum {

public static void main(String args[]) {

System.out.println(“\\\\n*****while循环*****”); int n=10,sum=0; while(_______) {

sum+=n; n--; }

System.out.println(“sum is”+sum);

System.out.println(“\\\\n******do_while循环******”); n=0; sum=0; do {

sum+=n; n++; }

while(_______);

System.out.println(“sum is”+sum);

System.out.println(“\\\\n******for循环******”); sum=0;

for(int I=1;_______i++) {

sum+=I }

System.out.println(“sum is”+sum); } }

11. 定义double型数组 double d1[]={1.2,2.3,3.4,4.5,5.6}则

d1[2]=_______ 12. 下列程序输出结果为_______ public class test {

public static void main(String args[]) {

String s=”I am a string!”; Int n=s.length(); Char c=s.charAt(7); System.out.println(n);

7

System.out.println(c); }

}

2.3. 编程题

1.编写程序实现99乘法表(编程题) 1*1=1

1*2=2 2*2=4

1*3=3 2*3=6 3*3=9

1*4=4 2*4=8 3*4=12 4*4=16

1*5=5 2*5=10 3*5=15 4*5=20 5*5=25

1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36

1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49

1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=

1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9= 7*9=63 8*9=72 9*9=81 2.设计一个猜数字小游戏.例如:用户可以猜测1~100之间的整数,用户没有猜中,应该予以提示,告知用户大了还是小了.并统计用户猜测的次数. 数组编程:

1:定义一个遍历数组的函数 2:定义一个求数组和的功能函数

3:定义一个获取数组最大值的功能函数 4:定义一个获取数组最大值角标的功能函数

5:定义一个返回指定数在指定数组中包含的角标的功能函数 6:定义一个可以用于排序int数组的函数 1:冒泡 2:选择

7:定义一个可以将整数数组进行反序的功能函数。 8:二分查找

3. 面向对象

3.1. 选择题

1. 下列不属于面向对象编程的三个特征的是

A. 封装 B. 指针操作 C. 多态性 D. 继承

8

2. 下列类的定义,错误的是

A.public class test extends Object{ …… }

B. final class operators{ …… }

C. class Point{ …… }

D. void class Point{ …… } 3. 关键字super的作用是 A. 用来访问父类的成员变量 B. 用来调用父类中被重载的方法 C. 用来调用父类的构造函数 D. 以上都是

4. 下面程序定义了一个类,关于该类说法正确的是 abstract class abstractClass{ …… }

A. 该类能调用new abstractClass(),方法实例化为一个对象 B. 该类不能被继承

C. 该类的方法都不能被重载 D. 以上说法都不对

5. 关于对象的删除,下列说法正确的是 A. 必须由程序员完成对象的清除

B. java把没有引用的对象作为垃圾收集起来并释放

C. 只有当程序中调用System.gc()方法时才能进行垃圾收集 D.java中的对象都很小,一般不进行删除操作。 6. 关于构造方法,下列说法错误的是 A. 构造方法不可以进行方法重写

B. 构造方法用来初始化该类的一个新的对象 C. 构造方法具有和类名相同的名称 D. 构造方法不返回任何数据类型 7. 请将程序补充完整 1._______ class C 2.{

3. abstract void callme() 4. void metoo 5. {

6. System.out.println(“类C的metoo()方法”); 7. }

9

8. }

9. class D_______C 10. {

11. void callme() 12. {

13. System.out.println(“重载C类的callme()方法”); 14. } 15. }

16. public class Abstract 17. {

18. public static void main(String args[]) 19. }

20. C c=__________D(); 21. c.callme(); 22. c.metoo(); 23. } 24. }

3.2. 填空题

1. 把对象实例化可以生成多个对象,使用_________运算符为对象分配内存空间。 2. java程序引入接口的概念,是为了弥补只允许类的________的缺憾。

3. java语言以_______为程序的基本单位,它是具有某些共同特性实体的集合,是一种

抽象的概念。

4. 抽象方法只能存在于抽象类中。抽象方法用关键字________来修饰。 5. java语言中_______是所有类的根.

6. 在java中有一种叫做_______特殊方法,在程序中用它来对类成员进行初始化. 7. new是______对象的操作符.

8. 我们在java程序中,把关键字________加到方法名称的前面,来实现子类调用父类

的方法

9. 在java程序里,同一类中重载的多个方法具有相同的方法名和_____的参数列表.重

载的方法可以有不同的返回值类型

10. 接口是一种特殊抽象类,接口的成员变量是__接口的方法是__

11. 创建一个类就是创建一个新的数据类型,而类在java中属于______数据类型。 12. abstract方法________(不能或能)与final并列修饰同一个类

13. 如果一个类中定义了几个名为method的方法,这些方法的参数都是整数,则这些方

法的________必须是不同的,这种现象称为方法的重载。 14. 类和方法可以使用一些什么修饰符进行修饰,修饰后的类和方法将具体什么访问权限?

3.3. 编程

第一题:

程序运行的结果,并分析.

10

public class Demo1 { public static void main(String[] args) { Person p = new Person(100); System.out.println(p.x); } } class Person { public final int x=1; public Person() { } public Person(int x) { this.x=x; } } 第三题:

说出程序运行的结果,并发分析 public class Demo1 { public static void main(String[] args) { Demo2.method1(1); } } class Demo2 { public static void method1(int x) { System.out.println(\"int...\"); } public static void method1(Integer x) { System.out.println(\"Integer...\"); } }

第四题:

说出程序运行的结果,并发分析

11

public class Demo1 { public static void main(String[] args) { Father f = new Son(); f.eat(); } } class Father { void eat() { System.out.println(\"Father...\"); } } class Son extends Father { void eat() { System.out.println(\"Son...\"); } }

第五题:

说出程序运行的结果,并发分析 public class Demo1 { public static void main(String[] args) { Father f = new Father(); System.out.println(f); } } class Father { void eat() { System.out.println(\"Father...\"); } } 第六题:

说出程序运行的结果,并发分析

public class Demo1 { public static void main(String[] args) { Father f = new Father(); System.out.println(f); } }

12

class Father { void eat() { System.out.println(\"Father...\"); } public String toString() { return \"Father\"; } } 第七题:

说出程序运行的结果,并发分析

public class Demo1 { public static void main(String[] args) { One one=new One(); one.method(); } } class One extends String { void method() { System.out.println(\"one...\"); } public String toString() { return \"one\"; } } 第八题

说出程序运行的结果,并发分析 public class Demo1 { public static void main(String[] args) { Son s = new Son(3); System.out.println(s.y); } } class Father { int x = 1; Father() {

13

} Father(int x) { } void speak() { this.x = x; System.out.println(\"我是父亲\"); } } class Son extends Father { int y = 1; Son() { } Son(int y) { this.y = y + x; } void run() { System.out.println(\"我是儿子\"); } } 第九题

说出程序运行的结果,并发分析

public class Demo1 { public static void main(String[] args) { One one = new One(); one.method2(); } } interface MyInterface { int x = 1;

14

void method(); } class One implements MyInterface { void method2() { System.out.println(\"one\"); } } 第十题:

说出程序运行的结果,并发分析 public class Demo1 { public static void main(String[] args) { One one = new One(); one.method(); one.x = 100; System.out.println(one.x); } } interface MyInterface { int x = 1; void method(); } class One implements MyInterface { void method() { System.out.println(\"one method\"); } void method2() { System.out.println(\"one\"); } } 第十一题:

说出程序运行的结果,并发分析

public class Demo1 { public static void main(String[] args) { A a = new C(); a.method1(); B b = (B) a;

15

b.method2(); } } interface A { void method1(); } interface B { void method2(); } class C implements A, B { public void method1() { System.out.println(\"method1\"); } public void method2() { System.out.println(\"method2\"); } } 第十二题:

说出程序运行的结果,并发分析

public class Demo1 { public static void main(String[] args) { Demo2 d=new Demo2(); d.method(); } } interface MyInter { void method(); } abstract class Demo2 implements MyInter { public abstract void method2(); public void method() { System.out.println(\"method\"); }

16

}

4. 第四章 异常处理

4.1. 选择题

1. java中用来抛出异常的关键字是

A. try B. catch C. throw D. finally

2. 关于异常,下列说法正确的是

A. 异常是一种对象

B. 一旦程序运行,异常将被创建

C. 为了保证程序运行速度,要尽量避免异常控制 D. 以上说法都不对

3. ()类是所有异常类的父类。

A. Throwable B. Error

C. Exception D. AWTError 4. 下列程序的执行,说法错误的是 class Demo { public static void main(String args[]) { try { int a = args.length; int b = 100 / a; int c[] = { 10 }; c[5] = 0; System.out.println(\"b=\" + b); } catch (ArithmeticException e) { System.out.println(\"除0异常:\" + e); } catch (ArrayIndexOutOfBoundsException e) { System.out.println(\"数组角标越界异常:\" + e); } } } A. 程序将输出数组角标越界异常

17

B. 程序将输出除0异常 C. 程序将输出“b=100” D. 程序编译报错

5. 下列程序的执行,说法正确的是 class Demo { static void procedure() { try { int c[] = { 1 }; c[42] = 99; } catch (ArrayIndexOutOfBoundsException e) { System.out.println(\"数组角标越界异常:\" + e); } } public static void main(String args[]) { try { procedure(); int a = args.length; int b = 42 / a; System.out.println(\"b=\" + b); } catch (ArithmeticException e) { System.out.println(\"除0异常:\" + e); } } } A. 程序只输出数组角标越界异常 B. 程序只输出除0异常 C. 程序将不输出异常信息

D. 程序将输出数组角标越界异常和除0异常

6. 下面程序抛出了一个“异常”并捕捉它。请在横线处填入适当内容完成程序。 class ExceptionDemo { static void method() throws IllegalAccessException { System.out.println(\"method\"); throw ____ IllegalAccessException(\"exception\"); } public static void main(String args[]) { try { method(); } ________________________________{

System.out.println(\"捕获:\" + e); } 18

} } 4.2. 填空题

1. catch子句都带一个参数,该参数是某个异常的类及其变量名,catch用该参数去与

_______对象的类进行匹配。

2. java虚拟机能自动处理_______异常。

3. java语言的类库中提供了一个__________类,所有的异常都必须是它的实例或它子

类的实例。

4. Throwable类有两个子类:__________类和Exception类。 5. 对程序语言而言,一般有编译错误和____________错误两类。

6. 请写出你再开发中遇到的五个常见异常____________ ____________

____________ ____________ ____________.

5. 第五章 多线程

5.1. 选择题

1. 线程调用了sleep()方法后,该线程将进入( )状态。

A. 可运行状态 B. 运行状态 C. 阻塞状态 D. 终止状态

2. 关于java线程,下面说法错误的是()

A. 线程是一个执行路径

B. java利用线程可以提高系统资源利用率

C. 创建线程的方法有两种:实现Runnable接口和继承Thread类 D. 新线程一旦被创建,它将自动开始运行

3. 在java语言中,同步可以是一个代码块,或者是一个方法,并用()关键字标识。

A. synchronized B. include C. import D. Thread 4. 线程控制方法中,setDaemon ()的作用是()

A. 返回当前线程的引用

B. 使比其低的优先级线程执行 C. 强行终止线程 D. 设置为后台线程

19

5. 在以下()情况下,线程就进入可运行状态

A. 线程调用了sleep()方法时 B. 线程调用了join()方法时 C. 线程调用了yield()方法时 D. 以上都是

6. 下列程序实现简单的线程调度,请回答以下问题:

1 Thread myThread=new MyThreadClass();

myThread.start(); try {

myThread.sleep(10000); }

catch(InterruptedException e) { } 程序执行完第一行后,线程进入________状态; 程序执行完第二行后,线程进入________状态; 程序开始执行第五行时,线程进入________状态; 程序执行完第五行后,线程进入________状态; 程序执行完第十行后,线程进入________状态; A. 新建状态 B. 可运行状态 C. 阻塞状态 D. 终止状态

7. Thread类的方法中,toString()方法的作用是()

A. 只返回线程的名称

B. 返回当前线程所属的线程组的名称 C. 返回当前线程对象 D. 返回线程的名称

5.2. 填空题

1. 2. 3. 4.

________是java程序的并发机制,它能同步共享数据、处理不同的事件。 线程的创建有两种方法:实现_________接口和继承_____类。 多线程程序设计的意义________

java中,新建的线程调用start()方法、如myThread.start(),将使线程的状态从New(新建状态)转换为_________。

5. 线程的声明周期_________ _________ _________ _________ 死亡等. 6. Thread类的sleep方法和Object类的wait方法的不同_________ 7. Object类的notify和notifyAll的区别

20

5.3. 编程题

1.设计单例设计模式

2.请问哪种单例设计模式在多个线程访问下会出现线程安全问题?为什么如何解决 写出解决方案.

3.简单说明什么情况下回出现死锁程序.请模拟一个死锁程序 4.编写程序演示如何正确的停止一个线程. 5.编写生产者消费者模式的案例

6. 第六章 API集合

6.1. String类

String s1=”abc”; String s2=”abc”;

System.out.println(s1==s2);请说出结果,并分析结果的原因. String s3=new String(“abc”); String s4=new String(“abc”);

System.out.println(s3==s4);请说出结果,并分析结果的原因.

6.2. 集合的常见问题

JDK中常用的集合有哪些,分别有什么样的特点? 1,ArrayList 和Vector的区别 2,HashMap 和Hashtable的区别

3,Collection 和Collections的区别。

6.3. 编程题

1、获取上传文件的名称 2、将字符串反转

3、一个字符在整串中出现的次数

4、对字符串中字符进行自然顺序排序 “fedca” „abcd‟ 5、实现String的trim功能(子串原理)

6、获取一个字符串在另一个字符串中出现的次数。

4,去除ArrayList 中的重复元素。要求存入的是自定义元素如Person。 5,定义自定义元素存入HashSet 集合。

21

6,对集合中的自定义元素进行排序,集合可以是List也可以是Set. 7.统计字符串中每个字符出现的次数

8. 统计字符串中每个字符出现的次数,按照次数升序显示

7. 第七章 输入与输出流

7.1. 选择题

1凡是从处理器流向外部设备的数据流称为()

E. 文件流 F. 字符流 G. 输入流 H. 输出流

2. 获取一个不包含路径的文件名的方法为()

A. String getName( ) B. String getPath( )

C. String getAbslutePath( ) D. String getParent( )

3. 下列属于文件输入输出类的是()

A. FileInputStream和FileOutputStream

B. BufferInputStream和BufferOutputStream C. PipedInputStream和PipedOutputStream D. 以上都是

4. 下列不属于FileInputStream输入流的read()成员函数的是()

A. int read();

B. int read(byte b[]);

C. int read(byte b[],int offset,int len); D. int read(int line); 5. 当处理的数据量很多,或向文件写很多次小数据,一般使用()流

A. DataOutput B. FileOutput

C. BufferedOutput D. PipedOutput

7.2. 填空题

1. java的输入输出流包括_______、字符流、文件流、对象流以及多线程之间通信的管

道。

2. java中的非字符输出流都是________抽象类的子类。 3. java中的字符输出流都是抽象类________的子类.

22

4. DataOutputStream数据流向文件里写数据的方法为__________.

5. 文件类_______是java.io中的一个重要的非流类,里面封装了对文件系统进行操作

的功能.

6. 文件操作中经常需要的是随机访问, java中的_______类提供了随机访问文件的功

能.

7.3. 编程题

1.列出指定目录中所有的子孙文件与子孙目录名. 2.删除一个非空的目录

3.移动一个非空的目录到另一个地方(剪切)

4.拷贝图片.例如:将c盘的jpg图片拷贝到D盘命名为copy.jpg 5.拷贝图片,要求有完整的异常处理方式.即try catch finally 6.将一个文本文件的数据展示在控制台上

7.使用字节流读取带有中文的文本文件(文件编码可以是utf-8 或者gbk) 8.统计软件(程序)运行次数,如果超过规定次数,程序无法运行. 9.编写程序实现mp3文件的切割和合并.

10.实现文件的拷贝,使用效率高的方式(文本文件,视频,音频,图片).并测试各种拷贝实现的消耗时间(缓存,非缓存.包装流等等角度考虑).

8. 第八章 网络通讯与编程

1.IP地址作用是什么?端口有什么意义?

2.TCP和UDP的区别,请分别使用Java代码写出程序.

3.实现一个文件服务器,分为客户端,和服务端.可以接收客户端上传的文件(文本,视频,音频)

23

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- xiaozhentang.com 版权所有 湘ICP备2023022495号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务