Java程序设计课堂练习题.docx

上传人:b****5 文档编号:6877898 上传时间:2023-01-12 格式:DOCX 页数:22 大小:35.97KB
下载 相关 举报
Java程序设计课堂练习题.docx_第1页
第1页 / 共22页
Java程序设计课堂练习题.docx_第2页
第2页 / 共22页
Java程序设计课堂练习题.docx_第3页
第3页 / 共22页
Java程序设计课堂练习题.docx_第4页
第4页 / 共22页
Java程序设计课堂练习题.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

Java程序设计课堂练习题.docx

《Java程序设计课堂练习题.docx》由会员分享,可在线阅读,更多相关《Java程序设计课堂练习题.docx(22页珍藏版)》请在冰豆网上搜索。

Java程序设计课堂练习题.docx

Java程序设计课堂练习题

《Java程序设计》练习题

第一章Java编程基础

一、选择题

1、可以使用【  】实用程序编译Java程序。

A.javaB.javacC.javadocD.cmd

2、可以使用【  】实用程序运行java应用程序。

A.javaB.javacC.javadocD.cmd

3、可以使用【  】实用程序从Java源文件代码中抽取Java文档注释,生成相应的HTML帮助文档。

A.javaB.javacC.javadocD.cmd

4、Java编译单元(源程序文件)的扩展名为【  】

A..javaB..classC..docD..exe

5、编译Java源程序文件产生的字节码文件的扩展名为【  】

A..javaB..classC..htmlD..exe

6、以下Java应用程序执行入口main方法的声明中,正确的是【  】

A、publicstaticvoidmain()

B、publicstaticvoidmain(String[]args)

C、publicstaticintmain(String[]args)

D、publicvoidmain(String[]args)

7、Java属于以下哪种语言?

【  】

A.机器语言B.汇编语言C.高级语言D.以上都不对

8、下面哪种类型的文件可以在Java虚拟机中运行?

【  】

A..javaB..jreC..exeD..classs

9、Java程序中声明包的关键字是【  】

A、java      B、package C、javadoc      D、cmd

10、如果JDK的安装路径为“d:

\jdk”,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?

【  】

A、d:

\jdk;B、d:

\jdk\bin;C、d:

\jre\bin;D、d:

\jre;

11、下列说法中,不正确的是【  】。

A、一个Java源文件编译通过后,得到的结果文件数也只有一个

B、一个Java源文件经过编译后,得到的文件的扩展名一定是.class

C、一个Java源文件只能有一个public类定义,其类名与源文件名相同

D、一个Java源文件可以包含多个类

12、安装好JDK后,在其bin目录下有许多exe可执行文件,其中“java.exe”命令的作用是以下哪一种?

【  】。

A、Java文档制作工具B、Java解释器

C、Java编译器D、Java启动器

13、以下关于变量的说法错误的是【  】

A.变量名必须是一个有效的标识符

B.变量在定义时可以没有初始值

C.变量一旦被定义,在程序中的任何位置都可以被访问

D.在程序中,可以将一个byte类型的值赋给一个int型类型的变量,不需要特殊声明

14、假设intx=2,三元表达式x>0?

x+1:

5的运行结果是以下哪一个?

【  】

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

15、下面的运算符中,用于执行除法运算的是哪个?

【  】

A./B.\C.%D.*

16、下面哪种写法可以实现访问数组arr的首个元素?

【  】

A.arr[0]B.arr(0)C.arr[1]D.arr

(1)

17、以下哪个选项可以正确创建一个长度为3的二维数组?

【  】

A.newint[2][3]B.newint[3][]

C.newint[][3]D.以上答案都不对

18、关于变量的作用域,下列说法错误的是【  】

A.类成员变量的作用域为类定义体

B.方法参数的作用域为方法体

C.对于for语句中定义的变量,当for语句执行完时,该变量就消亡了

D.在方法voidf(inti)的for语句块中,可以声明变量“inti;”

19、Java字符类型采用的是Unicode编码方案,每个Unicode码占用的位数是【  】。

A.8B.16C.32D.64

20、下列赋值语句中,不合法的是【  】。

A.floatf=1.2B.floatf2=1.2f

C.doubled=1.2D.doubled2=1.2f

二、填空题

1、Java的三个技术平台分别是_javase___、__javaee__、__javame__。

2、Java程序的运行环境简称之为_jre___。

3、编译Java程序需要使用__javac__命令。

4、_____path____环境变量用来存储Java的编译和运行工具所在路径,而___classpath__环境变量则用来保存Java虚拟机要运行的“.class”文件路径。

5、在Java语言中,main()方法的参数是表示命令行参数的String数组,其中,__args[0]__表示第一个参数。

6、Java应用程序的入口方法是_____main()__,用于控制程序的开始和结束。

7、Java系统运行时,通过__自顶垃圾收集___机制周期性地释放无用对象所使用的内存,完成对象的清除。

8、Java中的程序代码都必须在一个类中定义,类使用_class__关键字来定义。

9、布尔常量即布尔类型的两个值,分别是__true__和__false___。

10、Java中的注释可分为三种类型,分别是__单行___、___多行____、____文档___。

三、判断题

1、Java语言采用面向对象的思想编程,具有跨平台、分布式、多线程等优点。

2、Java语言的语法与C或C++类似,也支持面向过程的程序设计技术。

3、Java提供了自动垃圾收集机制进行内存管理,减小了内存出错的可能性。

4、Java语言的平台无关性使得Java程序可以跨平台运行。

5、Java虚拟机是实现Java语言平台无关性的基础。

四、简答题

1、简述JRE与JDK的区别。

JRE,它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。

它包含编译工具、解释工具、文档制作工具、打包工具等多种与开发相关的工具,是提供给Java开发人员使用的。

初学者学习和使用Java语言时,首先必须下载和安装JDK。

JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。

2、什么是方法重载?

方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。

调用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法。

第二章面向对象思想

一、选择题

1、类的定义必须包含在以下哪种符号之间?

【  】

A.方括号[]B.花括号{}C.双引号“”D.圆括号()

2、在以下什么情况下,构造方法会被调用?

【  】

A.类定义时B.创建对象时

C.调用对象方法时D.使用对象的变量时

3、在类的继承关系中,需要遵循以下哪个继承原则?

【  】

A.多重B.单一C.双重D.不能继承

4、在Java语言中,以下哪个关键字用于在方法上声明抛出异常【  】

A、tryB、catchC、throwsD、throw

5、关于super关键字以下说法哪些是不正确的【  】。

A.super关键字可以调用父类的构造方法

B.super关键字可以调用父类的普通方法

C.super与this不能同时存在于同一个构造方法中

D.super与this可以同时存在于同一个构造方法中

6、类中的一个成员方法被下面哪个修饰符修饰时,该方法只能在本类被访问?

【  】。

A.publicB.protectedC.privateD.default

7、在Java中,要想让一个类继承另一个类,可以使用以下哪个关键字?

【  】

A、inheritsB、implementsC、extendsD、modifies

8、System类位于以下哪个包中?

【  】。

A、java.ioB、java.utilC、java.awtD、java.lang

9、以下关于继承的说法,正确的是【  】。

A.继承可以避免代码复制和相关的代码维护等问题

B.Java语言中一个子类可以继承多个基类(多重继承)

C.Java语言不允许实现多个接口

D.子类可以继承父类的方法,但不能重新改写父类的方法

10、下列修饰符中,不能用来修饰类的是【  】。

A.publicB.abstractC.finalD.static

二、填空题

1、面向对象的三大特征是__封装___、___继承___和____多态___。

2、在Java中,可以使用关键字__new___来创建类的实例对象。

3、定义在类中的变量被称为__成员变量_____,定义在方法中的变量被称为__局部变量___。

4、在非静态成员方法中,可以使用关键字_this_访问类的其他非静态成员。

5、被static关键字修饰的成员变量被称为__静态变量____,它可以被该类所有的实例对象共享。

6、在一个类中,除了可以定义属性、方法,还可以定义类,这样的类被称为__内部类___。

7、在Java语言中,允许使用已存在的类作为基础创建新的类,这种技术称为___继承__。

8、一个类如果实现一个接口,那么它就需要实现接口中定义的全部_方法_,否则该类就必须定义成____抽象类__。

9、在程序开发中,要想将一个包中的类导入到当前程序中,可以使用_import_关键字。

10、一个类可以从其他的类派生出来,派生出来的类称为__子类__,用于派生的类称为__父类__或者_基类__。

三、判断题

1、在定义一个类的时候,如果类的成员被private所修饰,该成员不能在类的外部被直接访问。

2、Java中的每个类都至少有一个构造方法,一个类中如果没有定义构造方法,系统会自动为这个类创建一个默认的构造方法。

3、声明构造方法时,不能使用private关键字修饰。

4、类中static修饰的变量或方法,可以使用类名或对象的引用变量访问。

5、方法内部类中不能访问外部类的成员变量。

四、简答题

1、构造方法和普通的成员方法有什么区别?

2、抽象类和接口的区别是什么?

3、什么叫多态?

1.构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。

而普通方法只有在使用的时候才会被调用。

在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值。

2.在Java中,使用abstract关键字修饰的类称之为抽象类。

抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。

抽象类通常用于表示一种抽象的概念。

接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象方法。

由于接口的特殊性,在定义时需要使用interface关键字。

3.多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。

简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。

第三章多线程

一、选择题

1、Thread类位于下列哪个包中?

【  】

A.java.ioB.java.langC.java.utilD.java.awt

2、线程调用sleep()方法后,该线程将进入以下哪种状态?

【  】

A.就绪状态B.运行状态C.阻塞状态D.死亡状态

3、在以下哪种情况下,线程进入就绪状态?

【  】。

A.线程调用了sleep()方法时B.线程调用了join()方法

C.线程调用了yield()方法时D.线程调用了notify()方法

4、对于通过实现Runnable接口创建线程,下面说法不正确的是【  】。

A、适合多个相同程序代码的线程去处理同一个资源的情况

B、把线程同程序代码、数据有效的分离,很好地体现了面向对象的设计思想

C、可以避免由于Java的单继承带来的局限性

D、编写简单,可以不通过Thread类直接创建线程

5、对于死锁的描述,下面四种说法不正确的是【  】。

A.当两个线程互相等待对方释放同步锁时会发生死锁

B.Java虚拟机没有检测和处理死锁的措施

C.一旦出现死锁,程序会发生异常

D.处于死锁状态的线程处于阻塞状态,无法继续运行

6、下面四个选项中,不是线程进入阻塞状态的原因是【  】。

A.线程试图获取某个对象的同步锁,而该锁被其他线程持有

B.线程调用了另一个线程的join()方法

C.线程调用了一个阻塞式的IO方法

D.线程调用了setDaemon(booleanb)方法

7、要创建一个线程类,可通过继承【  】类。

A、ObjectB、ThreadC、RunnableD、Task

8、通过实现【  】接口,可创建一个线程类

A、ObjectB、ThreadC、RunnableD、Task

9、通过重写继承的方法【  】,可实现线程要执行的逻辑操作。

A.start()B.main()C.run()D.execute()

10、通过调用线程对象实例的【  】方法,可以启动执行该线程。

A.start()B.main()C.run()D.execute()

二、填空题

1、一个应用程序中有多条并发执行的线索,每条线索都被称作一个__线程_,它们会交替执行,彼此间可以进行__通信__。

2、在实现多线程的程序时有两种方式,一是通过继承__thread_类,二是通过实现__runnable___接口。

3、yield()方法只能让相同优先级或者更高优先级、处于__就绪_状态的线程获得运行的机会。

4、在Java语言中,同步方法需要用到关键字__synchronized___,对于同步方法而言无须指定同步锁,它的同步锁是方法所在的_对象__,也就是_this__(关键字)。

5、在Thread类中,start()方法用于开启一个_新线程___,当线程启动后,系统会自动调用___run()__方法。

三、判断题

1、当创建一个线程对象时,该对象表示的线程就立即开始运行。

2、如果前台线程全部死亡,后台线程也会自动死亡。

3、同步代码块中的锁对象可以是任意类型的对象。

4、静态方法不能使用synchronized关键字来修饰。

5、线程结束等待或者阻塞状态后,会进入运行状态。

四、简答题

1、在Java中创建线程有几种方式?

2、sleep()和wait()有什么区别?

五、分析题

1、阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。

如果不能编译通过,请说明原因。

classRunHandler{

publicvoidrun(){

System.out.println("run");

}

}

publicclassTest{

publicstaticvoidmain(String[]args){

Threadt=newThread(newRunHandler());

t.start();

}

}

2、阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。

如果不能编译通过,请说明原因。

publicclassAextendsThread{

protectedvoidrun(){

System.out.println("thisisrun()");

}

publicstaticvoidmain(String[]args){

Aa=newA();

a.start();

}

}

3、阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。

如果不能编译通过,请说明原因。

publicclassTest{

privateObjectobj=newObject();

publicsynchronizedvoida(){

try{

obj.wait();

System.out.println("waiting");

}catch(InterruptedExceptione){

System.out.println("Exception");

}

}

publicstaticvoidmain(String[]args){

newTest().a();

}

}

六、设计题

1、声明线程类TalkThread,循环打印线程名称10次(表示10次发言机会);创建测试类,创建3个对象(表示3个发言人)并启动线程,观察输出结果(3个发言人的发言顺序)。

第四章JavaAPI

一、选择题

1、先阅读下面的程序片段

Stringstr="abccdefcdh"

String[]arr=str.split("c");

System.out.println(arr.length);

程序执行后,打印的结果是几?

【  】

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

2、以下都是Math类的常用方法,其中用于计算绝对值的方法是哪个【  】。

A.ciel()B.floor()C.abs()D.random()

3、Random对象能够生成以下哪种类型的随机数?

【  】。

A.intB.StringC.doubleD.A和C

4、Strings=“abcdedcba”;则s.subString(3,4)返回的字符串是以下选项中的哪个?

【  】。

A、cdB、deC、dD、e

5、假如indexOf()方法未能找到所指定的子字符串,则返回以下选项中的哪个?

【  】。

A.falseB.0C.-1D.以上答案都不对

6、以下Math类的方法中,-4.4通过哪个方法运算后,结果为-5.0【  】。

A.round()B.min()C.floor()D.ceil()

7、已知inti=(int)(Math.random()*100),则i不可能为【  】。

A.0B.1C.99D.100

8、已知Stringstr=“abc计算机123”,则str.length()的值为【  】。

A.9B.10C.12D.18

9、已知Stringa=“Hello”,Stringb=a.subString(0,2),则b=【  】。

A.HelloB.HeC.HelD.null

10、下列方法中,【  】不是StringBuffer类的成员方法

A.compareTo()B.indexOfC.appendD.charAt()

二、填空题

1、在Java中定义了两个类来封装对字符串的操作,它们分别是___________和_________________。

2、Java中操作日期的类有____________、_____________、_______________。

3、Math类中用于计算所传递参数平方根的方法是_______________。

4、Java中专门用于将日期格式化为字符串的类是________________。

5、Java中用于产生随机数的类是_____________,它位于_____________包中。

6、String类中用于返回字符串字符个数的方法是________________。

三、判断题

1、String对象和StringBuffer对象都是字符串变量,创建后都可以修改。

2、用运算符==比较字符串对象时,如果两个字符串的值相同,结果为true。

3、Ssytem类中的currentTimeMillis()方法返回一个long类型的值。

4、Date、Calendar以及DateFormat类都位于java.util包中。

5、String类的方法replace(CharSequencestr1,CharSequencestr2)返回一个新的字符串,它是通过用str2替换此字符串中出现的所有str1得到的。

四、简答题

1、String和StringBuffer有什么区别?

2、Date和Calendar类有什么区别和联系?

第五章集合类

一、选择题

1、Java语言中,集合类都位于哪个包中?

【】

A.java.utilB.java.langC.java.arrayD.java.collections

2、使用Iterator时,判断是否存在下一个元素可以使用以下哪个方法?

【】

A.next()B.hash()C.hasPreviousD.hasNext()

3、在程序开发中,经常会使用以下哪个类来存储程序中所需的配置?

【】

A.HashMapB.TreeSetC.PropertiesD.TreeMap

4、要想集合中保存的元素没有重复并且按照一定的顺序排列,可以使用以下哪个集合?

【】

A.LinkedListB.ArrayListC.HashSetD.TreeSet

5、以下哪个方法不是LinkedList集合中定义的?

【】

A.getLast()B.getFirst()C.remove(intindex)D.next()

6、获取单列集合中元素的个数可以使用以下哪个方法?

A.length()B.size()C.get(intindex)D.add(Objectobj)

7、下列集合类型中,不允许集合中存在重复项的是【】

A.CollectionB.ListC.SetD.Queue

8、下列关于List接口的说法,错误的是【】

A.继承Collection接口B.不允许重复项

C.支持遍历D.可以使用访问索引

9、下列关于Set接口的说法,错误的是【】

A.继承Collection接口B.不允许重复项

C.支持遍历D.可以使用访问索引

10、下列关于Collections类的静态方法binarySerach()的说法,错误的是【】

A.使用二分搜索法搜索指定列表

B.如果没有找到,则返回负值

C.查找前列表必须先排序

D.如果有多个相同元素,则返回第一个的索引

二、填空题

1、JDK中提供了一系列可以存储任意对象的类,统称为____________

2、在创建TreeSet对象时,可以传入自定义的比较器,自定义比较器需要实现_______________接口。

3、使用Iterator遍历集合时,首先需要调用______________方法判断是否存在下一个元素,若存在下一个元素,则调用_____________方法取出该元素。

4、使用Iterator遍历集合时,首先需要调用______________方法判断是否存在下一个元素,若存在下一个元素,则调用_____________方法取出该元素。

5、集合按照存储结构的不同可分为单列集合和双列集合,单列集合的根接口是________________,双列集合的根接口是___________。

6、Map集合中的元素都是成对出现的,并且都是以__________、_________的映射关系存在。

7、Iterator有一个子类,不仅可以对集合进行从前向右遍历,还可以从后向前遍历,该类是______________。

8、List集合的主要实现类有____

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1