Java语言程序设计2022-2023-2学习通超星期末考试答案章节答案2024年_第1页
Java语言程序设计2022-2023-2学习通超星期末考试答案章节答案2024年_第2页
Java语言程序设计2022-2023-2学习通超星期末考试答案章节答案2024年_第3页
Java语言程序设计2022-2023-2学习通超星期末考试答案章节答案2024年_第4页
Java语言程序设计2022-2023-2学习通超星期末考试答案章节答案2024年_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java语言程序设计2022-2023-2学习通超星期末考试章节答案2024年下列关于Runnable接口的好处,正确的有(

答案:Runnable适合于多个相同程序代码线程去处理统一资源的情况;Runnable可以使类在继承其他类的同时,还能实现多线程的功能;Runnable可以避免由于java的单继承机制带来的局限;Runnable能增加程序的健壮性,代码能够被多个线程共享以下关于Runnable接口的描述错误的是()

答案:通过Runnable接口中的start()方法可以开启线程Java的JDK中提供了一个线程类Thread,通过继承该类,并重写它的run()方法便可实现多线程。

答案:对下列关于Thread类的说法中,错误的是(

答案:Thread类是一个接口,创建线程类,需要实现其run()方法;Thread类是一个抽象类,创建线程类,需要重写其run()方法下列关于Thread类的说法中,错误的是()

答案:Thread类属于java.util包下列关于线程的说法中,错误的是(

答案:线程就是程序FileWriter用于向文件中写入字符,它属于字符输出流。

答案:对FileWriter(Filefile)语句的作用是根据给定的File对象构造一个FileWriter对象。

答案:对下列选项中,属于FileReader直接或间接父类的有(

答案:Reader;Object;InputStreamReaderFileWriter类的write(intc)方法的作用是(

答案:写入单个字符下列关于IO流的说法中,错误的()

答案:FileReader和FileWriter用于读写文件的字节流下列选项中,哪个流使用了缓冲区技术?()

答案:BufferedOutputStreamBufferedReader和BufferedWriter是具有缓冲功能的流,使用它们可以提高读写效率。

答案:对FileReader和FileWriter用于读写文件。

答案:对字符流也有两个抽象的顶级父类,分别是Reader和【】。

答案:Writer下列关于字节缓冲流的描述中,正确的是(

答案:字节缓冲流都使用了装饰设计模式。;BufferedInputStream类的构造方法中需要接收InputStream类型的参数。;BufferdOutputStream类的构造方法中需要接收OutputStream类型的参数。下列有关字节缓冲流的描述正确的是(

答案:字节缓冲流能有效的提高数据的读写效率;字节缓冲流使用了装饰设计模式;应用程序是通过缓冲流来完成数据读写的,而缓冲流又是通过底层被包装的字节流与设备进行关联的;java.io包中提供的字节缓冲流包括BufferedInputStream和BufferdOutputStream下列选项中,使用了缓冲区技术的流是(

答案:BufferedInputStream阅读下列代码

importjava.io.*;

publicclassExample{

publicstaticvoidmain(String[]args)throwsException{

//创建一个带缓冲区的输入流

BufferedInputStreambis=newBufferedInputStream(new________(

"src.txt"));

//创建一个带缓冲区的输出流

BufferedOutputStreambos=newBufferedOutputStream(newFileOutputStream("des.txt"));

intlen;

while((len=bis.read())!=-1){

bos.write(len);

}

bis.close();

bos.close();

}

}

请说出程序中,下划线位置的答案(

答案:FileInputStream字节流缓冲区实际上是一个字节数组。

答案:对下面关于字节流缓冲区的描述中,哪些是错误的(

答案:字节流缓冲区的大小是1024。;字节流缓冲区只能用在文件输出流中。;字节流缓冲区只能用在文件输入流中。下面关于字节流缓冲区的说法错误的是()

答案:使用字节流缓冲区读写文件是一个字节一个字节的读写。阅读下列代码

importjava.io.*;publicclassExample{

publicstaticvoidmain(String[]args)throwsException{

Filefile=newFile("itcast.txt");

FileInputStreamin=newFileInputStream(file);

byte[]buff=newbyte[1024];//定义一个字节数组,作为缓冲区

intlen;

while((len=in.________)!=-1){//判断是否读到文件末尾

System.out.println(newString(buff,0,len));

}

in.close();

}}请说出下划线上,填写的方法名称(

)

答案:read(buff)文件的拷贝是指读取一个文件中的数据并将这些数据写入到另一个文件中。

答案:对阅读下段代码

importjava.io.*;

publicclassExample{

publicstaticvoidmain(String[]args)throwsException{

FileInputStreamfis=newFileInputStream("file.txt");

FileOutputStreamfos=newFileOutputStream("copy_file.txt");

intch=0;

while((ch=fis.read())!=-1){

fos.write(ch);

}

fos._______;

fis.close();

}

}

请说出下划线上,填写的方法名称(

)

答案:close()下面关于FileInputStream和FileOutputStream的说法中,错误的是()

答案:如果使用FileOutputStream向一个已存在的文件中写入数据,那么写入的数据会被追加到该文件原先的数据后面FileOutputStream是操作文件的字节输出流,专门用于把数据写入文件。

答案:对以下哪些属于OutputStream类的方法(

答案:write(byte);flush();close()关于FileOutputStream构造方法的说法中,哪些是正确的(

答案:FileOutputStream(Filefile)创建一个向指定File对象表示的文件中写入数据的文件输出流。;FileOutputStream(Filefile,booleanappend)创建一个向指定File对象表示的文件中追加写入数据的文件输出流。;FileOutputStream(Stringname)创建一个向具有指定名称的文件中写入数据的输出文件流。;FileOutputStream(Stringname,booleanappend)创建一个向具有指定name的文件中追加写入数据的输出文件流。当文件不存在或不可读时,使用FileInputStream读取文件会报下列哪一种错误()

答案:FileNotFoundException以下选项中,哪个是FileInputStream的父类()

答案:InputStreamOutputStream中的【】方法用来将当前输出流缓冲区(通常是字节数组)中的数据强制写入目标设备,此过程称为刷新。

答案:flush(下列选项中,哪些类是属于OutputStream类的直接子类(

答案:ByteArrayOutputStream;FileOutputStream;FilterOutputStream下列选项中,哪一个不是InputStream的直接子类(

答案:BufferedInputStreamIO流有很多种,按照数据传输方向的不同可分为输入流和输出流。

答案:对InputStream和Reader是输入流,而OutPutStream和Writer是输出流。

答案:对IO流有很多种,按照操作数据的不同,可以分为【】和字符流。

答案:字节流在java.io包中,有4个类为流的顶级类,分别为()

答案:InputStream;OutputStream;Reader;Writer一个Stream流对象可以连续进行多次中间操作和终结操作,而原始的流对象仍然存在。

答案:错以下哪个方法属于Stream流操作中的终结操作方法()

答案:Rcollect(Collector<?superT,A,R>collector)在JDK8中,针对所有集合对象提供了stream()静态方法获取Stream流对象。

答案:错Stream接口的【】静态方法可以获取基本类型包装类数组、引用类型数组和单个元素的Stream流对象。

答案:of(下列关于创建Stream流对象的相关描述,正确的是()

答案:Arrays数组工具类的stream()静态方法也可以获取数组元素的Stream流对象;聚合操作针对的就是可迭代数据进行的操作Java将执行某个方法后返回类型仍为Stream流对象的方法归类为中间操作,如过滤、截取、遍历等方法。

答案:错在进行聚合操作时,只是改变了Stream流对象中的数据,并不会改变原始集合或数组中的源数据。

答案:对JDK8中新增了一个【】接口,可以将集合、数组的中的元素转换为Stream流的形式。

答案:StreamArrayList集合查询元素的速度很快,但是增删改查效率较低。

答案:对Arrays工具类的binarySearch(Object[]a,Objectkey)方法采用的是二分法查找数组指定元素。

答案:对Collecitons工具类中的shuffle(Listlist)方法用于对集合元素排序。

答案:错Java提供了一个工具类专门用来操作集合,这个类就是【】。

答案:Collections以下属于Collections工具类常用方法的有()

答案:staticvoidreverse(Listlist);staticvoidshuffle(Listlist);staticvoidswap(Listlist,inti,intj);staticObjectmax(Collectioncol)Java中引入了“参数化类型(parameterizedtype)”这个概念,即【】。

答案:泛型下列选项中,哪个可以正确地定义一个泛型(

答案:ArrayListlist=newArrayList();Properties类表示一个持久的属性集。

答案:对Properties是Hashtable的子类,它主要用于存储字符串类型的键与值。

答案:对下列选项中关于Properties集合类描述正确的有()

答案:Propertie类是Hashtable类的子类;Propertie类表示一个持久的属性集;Properties主要用来存储字符串类型的键和值;Properties可保存在流中或从流中加载下列选项中,哪些是Properties类的方法(

答案:setProperty();getProperty()TreeMap与TreeSet集合存储的原理一样。

答案:对TreeMap中所有的键是按照某种顺序排列的。

答案:对使用TreeMap集合时,也可以通过自定义比较器Comparator的方式对所有的键进行定制排序。

答案:对将Map集合转换为Iterator接口对象再进行遍历的方法:keySet()方法和entrySet()方法。

答案:对Map集合遍历的方式和单列集合Collection集合遍历的方式完全相同。

答案:错在Map集合中提供了一个【】方法可以直接获取Map中存储所有值的Collection集合。

答案:values(HashMap底层是由【】结构组成的,其实就是“数组+链表”的组合体。

答案:哈希表下面关于java.util.HashMap描述中,哪些是正确的(

答案:是线程不安全的;允许存储null值和null键;此类不保证映射的顺序;此类是基于哈希表的Map接口的实现下列选项中,不属于HashMap类的方法的是()

答案:comparator()Map接口是一种双列集合,它的每个元素都包含一个键对象Key和值对象Value。

答案:对Map集合中,一个键对象Key可对应多个值对象Value。

答案:错以下属于Map接口集合常用方法的有()

答案:booleancontainsKey(Objectkey);Collectionvalues();voidforEach(BiConsumeraction);booleanreplace(Objectkey,Objectvalue)下面关于Map接口相关说法错误的是()。

答案:访问Map集合中的元素时,只要指定了value,就能找到对应的key向TreeSet集合添加元素时,不论元素的添加顺序如何,这些元素都能够按照一定的顺序进行排列。

答案:对TreeSet是以二叉树的方式来存储元素,它可以实现对集合中的元素进行排序。

答案:对TreeSet是Set接口的另一个实现类,它内部采用【】结构来存储元素。

答案:平衡二叉树以下哪些方法属于TreeSet集合的特有方法()。

答案:Objectfirst();Objectlower(Objecto);Objectceiling(Objecto);ObjectpollLast()HashSet是根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存取和查找性能。

答案:对向【】集合中添加一个对象时,首先会调用该对象的hashCode()方法来确定元素的存储位置,然后再调用对象的equals()方法来确保该位置中没有重复元素。

答案:HashSet向HashSet集合中存入对象时需要重写Object类中的哪些方法(

答案:equals(Objectobj);hashCode()下列有关HashSet集合的描述中,错误的是(

答案:向HashSet存入对象时,对象的equals()方法一定会被执行下列方法中可以用于往HashSet集合中添加元素的是(

答案:add(Ee)Set接口中元素无序,且不重复。

答案:对Set集合是通过键值对的方式来存储对象的

答案:错Set接口继承自【】接口

答案:CollectionforEach(Consumeraction)是JDK8新增遍历集合方法,需要的参数是一个函数式接口。

答案:对在JDK8中,根据Lambda表达式特性还新增了一个forEach(Consumeraction)方法来遍历集合。

答案:对在JDK8中,新增了一个forEach(Consumeraction)方法来对Iterator迭代器对象进行遍历。

答案:错使用foreach循环遍历集合和数组时,可以访问集合中的元素,并对其中的元素进行修改。

答案:错以下关于foreach说法中,哪些是正确的(

答案:foreach是一种更加简洁的for循环,也称增强for循环;foreach可以对List;Set数组进行遍历;foreach的出现,简化了书写以下关于foreach的说法中,哪一个是错误的(

答案:使用foreach遍历集合时,可以对元素进行修改。阅读下面的代码:publicclassExample{

publicstaticvoidmain(String[]args){

String[]strs={"Tom","Jerry","Donald"};

//foreach循环遍历数组

for(Stringstr:strs){

str="Tuffy";

}

System.out.println(strs[0]+","+strs[1]+","+strs[2]);

}}程序的运行结果是()

答案:Tom,Jerry,Donald下列关于foreach循环的描述,错误的是(

答案:foreach循环可以直接用于遍历Map集合中的元素java.util.Iterator接口的主要作用是对【】进行迭代的迭代器。(写顶级接口)

答案:Collection下列接口中,继承了Collection接口的是(

答案:Set;List下列选项中,哪些方法是LinkedList类独有的(

答案:voidaddFirst(Objecto);ObjectgetFirst();ObjectremoveFirst()下列关于LinkedList类的方法,不是从List接口中继承而来的是(

答案:pop()ArrayList不适合做大量的增删操作。

答案:对关于下列ArrayList类的方法,是从List接口中继承而来的是(

答案:toArray();set();add()下面关于ArrayList的描述中,错误的是()

答案:ArrayList很适合做大量的增删操作下列数据结构中,哪一个是ArrayList类的底层实现(

答案:数组结构关于下列List接口的方法,不是从Collection接口中继承而来的是()

答案:get()下列关于List接口的描述中,错误的是()

答案:List集合中所有的元素是以二叉树方式进行存储的。下面关于List集合的描述中,哪一个是错误的()

答案:List集合没有索引下列方法中,哪些方法是属于Collection接口(

答案:remove();retainAll()下列集合中,不属于Collection接口的子类的是(

答案:Properties集合只能存储对象,不能存储基本类型数据。

答案:错集合按照其存储结构可以分为两大类,即单列集合【】和双列集合【】。

答案:Collection;Map下列关于集合的描述中,哪一个是错误的()

答案:集合存储的对象必须是基本数据类型。调用SimpleDateFormat的【】方法将符合日期模板格式的字符串解析成Date对象。

答案:parse(在调用SimpleDateFormat的【】方法时,会将Date对象格式化成如SimpleDateFormat类创建的模板格式的时间形式。

答案:format(DateFormat类专门用于将日期格式化为字符串或者将用特定格式显示的日期字符串转换成一个Date对象。

答案:对DateFormat是一个抽象类,不能被直接实例化。

答案:对DateFormat类专门用于将日期格式化为字符串或者将用特定格式显示的日期字符串转换成一个【】对象。

答案:Date在DateFormat类中还定义了许多常量,包括有()

答案:FULL;LONG;SHORT;MEDIUMJDK8新增LocalDate类提供了静态的now()方法来获取当前日期。

答案:对UTC提供了一种与时区无关的时间,与CST(ChinaStandardTime)中国标准时间(北京时间)有【】个小时的时差。

答案:8;八Calendar类用于完成日期和时间字段的操作,它可以通过特定的方法设置和读取日期的特定部分,比如年、月、日、时、分和秒等。

答案:对Calendar.Date表示的是天数,当天数累加到当月的最大值时,如果继续再累加一次,就会从1开始计数,同时月份值会加1。

答案:对以下属于Calendar类常用方法的有()

答案:intget(intfield);voidadd(intfield,intamount);voidset(intfield,intvalue);voidset(intyear,intmonth,intdate)随着JDK版本的不断升级和发展,Date类中大部分的构造方法和普通方法都已经不再推荐使用

答案:对Date(longdate)构造方法中date参数表示从【】(称为历元)以来的毫秒数。

答案:1970年1月1日0时0分0目前JDK8中,Date类只有【】个构造方法是可以使用的.

答案:2;二;两包装类可以将基本数据类型的值包装为引用数据类型的对象。

答案:对JAVA中int类型对应的包装类是【】。

答案:Integer下列选项中,哪些是java中的包装类()

答案:java.lang.Double;java.lang.Byte下面关于包装类的描述中,正确的是(

答案:包装类即将基本数据封装成了对象;对于包装类型对象javaAPI提供了更多的操作功能;包装类可以用于在基本数据和字符串之间进行转换;包装类都是被final修饰的类下列基本类型与包装类的对应关系中,正确的是(

答案:int->Integer;float->Float;char->Character下列选项中,关于包装类描述错误的是()

答案:我们可以继承包装类,以完成自定义包装阅读下面一段代码,代码的输出结果是()

Integerin1=newInteger(10);

Integerin2=newInteger(10);

Integerin3=10;

Integerin4=10;

System.out.print(in1==in2);

System.out.print(in1==in3);

System.out.print(in3==in4);

答案:falsefalsetruejava.util.Random的nextInt()方法会生成一个正整数类型的伪随机数。

答案:错下面选项中,属于java.util.Random类中的方法的是(

答案:next(intbits);nextInt();nextLong()阅读下面的代码,输出结果是()

publicstaticvoidmain(String[]args){

Randomrandom1=newRandom(10);

Randomrandom2=newRandom(10);

for(inti=0;i<5;i++){

System.out.print(random1.nextInt(5));

}

for(inti=0;i<5;i++){

System.out.print(random2.nextInt(5));

}

}

答案:3030130301下面关于java.util.Random类中方法,说明错误的是()

答案:nextInt()返回的是0(包括)和2147483647之间的值下列是Random类的一些常用方法,其中能获得指定范围随机数的方法是(

答案:nextInt(intn)Math.round(doubled)方法的作用是,将一个数四舍五入,并返回一个double数。

答案:错Math类中,用于获取一个数的绝对值的方法是【】。

答案:Math.abs(下面选项中,对Math类描述正确的是()

答案:Math类中所有的方法都是静态的;Math类中的方法可以使用类名.方法名的方式调用;Math类的构造函数是私有的;无法使用Math类创建对象下面关于Math.random()方法生成的随机数,正确的是哪项()

答案:0.8652963898062596若doubleval=Math.ceil(-11.9);,则val的值是(

答案:-11.0下列是Math类中的一些常用方法,其中用于获取大于等于0.0且小于1.0的随机数的方法是(

答案:random()下列选项中,对Math.random()方法描述正确的是(

)

答案:返回一个随机的double类型数,该数大于等于0.0小于1.0Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。

答案:对下列对于Runtime的描述中,正确的是(

答案:每一个Java应用程序运行时都产生一个Runtime类实例下面哪个选项可以获取Runtime类的实例()

答案:Runtimer=Runtime.getRuntime();System.getProperties()方法可以获取操作系统的属性。

答案:对System类中提供的属性和方法都是静态的。

答案:对下列关于System类的描述中,错误的是(

答案:System类只定义了方法,没有定义属性。System类的getProperties()方法的作用是()

答案:获取当前的操作系统的属性阅读下列代码

publicclassExample{

publicstaticvoidmain(String[]args){

int[]srcArray={11,12,13,14};

int[]destArray={21,22,23,24};

System.arraycopy(srcArray,1,destArray,2,2);

for(inti=0;i答案:21221213StringBuffer类和String类一样,都是不可变对象。

答案:错StringBuffer类似一个字符容器,当在其中添加或删除字符时,并不会产生新的StringBuffer对象。

答案:对StringBuffer类的默认容量是【】个字符。

答案:16;十六下列关于String类和StringBuffer类的说法中,正确的是(

答案:String类表示的字符串是常量,一旦创建后,内容和长度都是无法改变的。而StringBuffer表示字符容器,其内容和长度都可以随时修改;String类覆盖了Object类的equals()方法,而StringBuffer类没有覆盖Object类的equals()方法;String类对象可以用操作符“+”进行连接,而StringBuffer类对象之间不能下列关于StringBuffer类的描述中,正确的是(

答案:append()方法可以接受任意类型的数据;insert()方法可以接受任意类型的数据下列选项中,属于StringBuffer类特点的是()

答案:字符串缓冲区,提高字符串的操作效率;StringBuffer类是线程安全的;StringBuffer类的toString()方法,将缓冲区变成字符串StringBuffer类的append()方法的返回值类型是()

答案:StringBuffer使用String类的toCharArray()方法可以将一个字符串转为一个字符数组。

答案:对在程序,获取字符串长度的方法是length()

答案:对下面哪些方法是字符串中的判断方法()

答案:contains(CharSequencecs);equals(ObjectanObject);isEmpty()下列选项中,哪个是程序正确的输出结果?()classStringDemo{

publicstaticvoidmain(String[]args){

Strings1=“a”;

Strings2=“b”;

show(s1,s2);

System.out.println(s1+s2);

}

publicstaticvoidshow(Strings1,Strings2){

s1=s1+”q”;

s2=s2+s1;

}

}

答案:ab下面哪个方法可以实现获取字符在某个字符串中第一次出现的索引()

答案:indexOf(intch)假如indexOf()方法未能找到所指定的子字符串,那么其返回值为(

答案:-1已知Strings="abcdefg",则s.substring(2,5)的返回值为()

答案:"cde"下列选项中,可以正确创建一个字符串的是(

答案:Strings="itcast";;Strings=newString("itcast");;Strings=newString(newchar{'i','t','c','s','t'});下列选项中,可以正确实现String初始化的是()

答案:Stringstr="abc";JDK中定义了大量的异常类,这些异常类足够我们使用了,所以,我们不需要自己定义异常类。

答案:错自定义异常需要继承【】类。

答案:Exception自定义运行时异常,必须继承自()类。

答案:RuntimeException下列关于自定义异常的说法中,错误的是()

答案:自定义异常必须继承Error类throw关键字用于在方法上声明抛出异常的实例对象。

答案:错throw关键字只可以抛出Java能够自动识别的异常。

答案:错throws声明在一个方法上,说明这个方法一定会抛出异常。

答案:错如果一个方法要抛出多个异常,可以使用throws进行声明。

答案:对throws关键字用于对外声明方法可能发生的异常,这样调用者在调用方法时,可以明确知道该方法有异常,并进行相关处理。

答案:对下列关于throws的描述中,正确的是(

答案:throws是用来声明一个方法可能抛出的异常信息;throws语句用在方法声明后面;方法中没有使用catch处理的异常必须使用throws抛出;throws关键字对外声明该方法有可能发生的异常,调用者在调用方法时必须在程序中对异常进行处理下列选项中,哪个类是所有异常类的父类?

答案:Throwabletry…catch语句,catch部分可以独立存在。

答案:错在try…catch语句中,try语句块存放可能发生异常的语句。

答案:对try…catch语句中,catch的作用的抓住或者捕获【】。

答案:异常阅读下面的程序classExample{

publicstaticvoidmain(String[]args)throwsException{

intx=0;

try{

x=div(5,2);

}catch(Exceptione){

System.out.println(e);

}

System.out.println(x);

}

publicstaticintdiv(inta,intb){

returna/b;

}}程序的输出结果是()

答案:2以下对于try…catch语句描述正确的是()

答案:try...catch语句处理程序中的异常运行时异常的特点是Java编译器不会对其进行检查。

答案:对编译异常如果产生了,要求我们在必须处理,要么捕获,要么抛出。

答案:对运行时异常是必须进行处理的异常,否则程序编译不能通过。

答案:错编译异常如果产生,可以处理,也可以不用处理。

答案:错Java中的异常分为两种,一种是编译时异常另外一种是运行时异常。

答案:对开发中,编译时期产生的异常,可以不进行处理,依然可以通过编译。

答案:错下列关于运行时异常的描述,正确的有(

答案:运行异常是在程序运行时期产生的;运行时异常也称为称为unchecked异常;RuntimeException类及其子类都是运行时异常类;运行时异常一般是由于程序中的逻辑错误引起的,在程序运行时无法恢复下列异常中,属于编译时异常的是()

答案:IOException以下关于编译异常说法正确的是()

答案:编译异常如果产生,必须处理,要么捕获,要么抛出Error类称为错误类,它表示Java运行时产生的系统内部错误或资源耗尽的错误,是比较严重的,仅靠修改程序本身是不能恢复执行的。

答案:对Throwable有两个直接子类Error和Exception,其中Error代表程序中产生的异常,Exception代表程序中产生的错误。

答案:错Exception类称为异常类,它表示程序本身可以处理的错误,在开发Java程序中进行的异常处理,都是针对Exception类及其子类。

答案:对【】类及其子类用于表示运行时异常。

答案:RuntimeExceptionThrowable有两个直接子类【】和【】

答案:Error;Exception方法引用与构造器引用本质都是对Lambda表达式的主体部分已存在的方法进行直接引用。

答案:对可以通过英文双冒号“::”的语法格式来引用方法和构造器(即构造方法)

答案:对在JDK8中,Lambda表达式支持的引用类型主要有()

答案:类名引用普通方法;类名引用静态方法;对象名引用方法;构造器引用Lamdba表达式可以代替匿名内部类实现。

答案:错接口中有且只有一个抽象方法时才能使用Lamdba表达式代替匿名内部类。

答案:对下面关于函数式接口相关说法错误的是()。

答案:@FunctionalInterface注解只为了表明接口是否为函数式接口在编写Lambda表达式时,不能省略参数的数据类型。

答案:错Labmda表达式如果只有一个参数,则可以省略括号“()”。

答案:对以下有关Lambda表达式的说法正确的是()

答案:JDK8中新增了一个特性Lambda表达式,这种表达式只针对有一个抽象方法的接口实现;Lambda表达式也简化了对集合以及数组数据的遍历、过滤和提取等操作匿名内部类其实就是一个没有类名的内部类。

答案:对匿名内部类就是一个没有类名的内部类。

答案:对下列程序运行结果是()

publicclassDemo{

publicstaticvoidmain(String[]args){

Demodemo=newDemo();

demo.show(newCar(){

publicvoidrun(){

System.out.println("demorun");

}

});

}

publicvoidshow(Carc){

c.run();

}

}abstractclassCar{

publicvoidrun(){

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

}

}

答案:demorun阅读下列的程序

publicclassExample{

publicstaticvoidmain(String[]args){

newFather(){

publicvoidshow(){

System.out.println("helloworld");

}

}.show();

}}classFather{

publicvoidshow(){

System.out.println("hellofather");

}}下列选项中,程序的运行结果是(

答案:helloworld所谓静态内部类,就是使用static关键字修饰的成员内部类

答案:对静态内部类中不能直接访问外部类的静态成员。

答案:错所谓静态内部类,就是使用【】关键字修饰的成员内部类。

答案:static下列关于静态内部类的说法,错误的是()

答案:创建静态内部类的对象时,必须要先创建外部类的对象局部内部类的有效范围只限于方法内部。

答案:对局部内部类,也叫做方法内部类。

答案:对局部内部类中的变量和方法只能在创建该局部内部类的方法中访问。

答案:对下列关于局部内部类的相关描述,正确的是()

答案:局部内部类,也叫做方法内部类,就是定义在某个局部范围中的类;局部内部类,也叫做方法内部类,就是定局部内部类和局部变量一样,其有效范围只限于方法内部。;局部内部类可以访问外部类的所有成员变量和方法成员内部类,就是将一个类定义在另一个类的成员的位置。

答案:对如果想通过外部类去访问内部类,则需要通过外部类对象去创建内部类对象。

答案:对成员内部类可以直接访问其所在的外部类中的成员,不用创建对象。

答案:对在一个Java程序中有一个Out类,Out类中有一个内部类Inner类,该Java文件编译后生成的.class文件中包括(

答案:Out.class;Out$Inner.class下列修饰符中,成员内部类被(

)修饰后,可以被外界访问。

答案:public有如下三个类classA{...}classBextendsA{...}classCextendsA{...}因为B类和C类不存在继承关系,因此他们之间不能进行类型转换。

答案:对子类和父类对象在进行类型转换时,子类对象可以被视为父类的一个对象,父类对象不能被当作是某一个子类的对象。

答案:对下列关于对象间类型转换的说法中,正确的是(

答案:与基本数据类型的相互转换一样,对象的类型转换可通过自动转换或强制转换进行;无继承关系的两个类的对象之间试图转换时出现编译错误;有继承关系的两个类的对象之间,子类的对象转换为父类的对象,可自动转换也可以强制转换;由new语句创建的父类对象不能转换为子类的对象若有父类Animal及其两个子类Cat、Dog,则以下类型转换正确的有(

答案:Animala=newCat();Catcat=(Cat)a;;Animalanimal=newCat();下列关于多态的说法中,错误的是(

答案:在多态中,使用父类引用可以操作子类的所有方法对于使用多态的应用程序,某个对象的确切类型何时能知道(

答案:应用程序编译时能够判断抽象类实现接口时,可以不实现接口中的任何方法。

答案:对在Java中一个接口可以继承多个接口,继承的接口之间使用逗号隔开即可。

答案:对接口可以实例化对象。

答案:错JDK8中的接口只能定义常量和抽象方法。

答案:错接口与接口之间的继承需要使用【】关键字实现。

答案:extends以下关于JDK8中接口相关说法正确的是()?

答案:在JDK8中,接口中除了抽象方法外,还可以有默认方法和静态方法;默认方法和静态方法都允许有方法体。;定义常量时必须进行初始化赋值下列关于接口的说法中,错误的是(

答案:接口中定义的变量可以被修改一个具体类实现接口时,需要重写接口中的()

答案:抽象方法下列关键字中,哪个不能修饰接口中的成员变量?()

答案:private如果一个类继承了一个抽象类,但是没有完全复写父类的所有的抽象方法那么这个类也必须是抽象类。

答案:对抽象类中不一定有抽象函数,但抽象函数一定在抽象类中。

答案:对在定义方法时不写方法体,这种不包含方法体的方法为【】方法。

答案:抽象定义一个抽象类的关键字是【】。

答案:abstract以下关于抽象类的描述中,正确的是()

答案:抽象类是对一系列看上去不同,但本质上相同的具体概念的抽象;当一个类中包含了抽象方法,该类必须使用abstract关键字来修饰;抽象类可以不定义抽象方法;抽象类不能被实例化当一个类的方法被final关键字修饰后,这个类的子类将不能重写该方法。

答案:对Java中的类被final关键字修饰后,该类将不可以被继承。

答案:对【】关键字可用于修饰类、变量和方法,它有“这是无法改变的”或者“最终”的含义。

答案:finalfinal可以修饰如下哪些内容()

答案:类;方法;变量下面对于final修饰方法的描述中,正确的是()

答案:final修饰的方法不能被子类重写关于final修饰成员变量说法正确的是()

答案:被final修饰的成员变量为常量下列选项中,关于final修饰成员变量的说法正确的是(

答案:被final修饰的成员变量为常量下面选项中,哪个类不是Object的子类?()

答案:int阅读下段代码,

classDog{

publicStringname;

Dog(Stringname){

=name;

}}

publicclassDemo1{

publicstaticvoidmain(String[]args){

Dogdog1=newDog("xiaohuang");

Dogdog2=newDog("xiaohuang");

Strings1=dog1.toString();

Strings2=dog2.toString();

Strings3="xiaohuang";

Strings4="xiaohuang";

}

}

返回值为true的是(

答案:s3.equals(s4)super调用父类构造方法的代码必须位于子类构造方法的第一行。

答案:对在实例化子类对象时,会自动调用父类无参的构造方法。

答案:对以下关于super关键字的说法中,正确的是(

答案:super()与this()不能同时存在于同一个构造方法中;super关键字可以调用父类的成员方法;super关键字可以调用父类的构造方法下列关于super关键字的说法中,正确的是(

答案:super关键字是在子类对象内部指代其父类对象的引用子类重写父类的方法时,重写的方法可以与父类被重写的方法名、参数列表以及返回值类型不相同。

答案:错以下关于方法重写,说法错误的是(

答案:方法重写时,子类的返回值类型必须大于或者等于父类的返回值类型;方法重写与返回值类型无关下列选项中,哪个是子类重写父类方法时,必须与父类方法一致的()

答案:返回值类型;函数名;参数列表下列关于父类方法重写的描述中,错误的是()

答案:子类继承父类后,可以重写父类定义的所有方法函数重写与函数重载的相同之处是()

答案:函数名如果父类的方法是静态的,则子类的方法被()修饰才能覆盖父类的静态方法。

答案:static在Java程序中,通过extends关键字可以实现类的继承。

答案:对类只支持单继承,不允许多继承,C类不可以既继承A类又B类。

答案:对Java中一个类最多可以继承【】个类。

答案:1;一当子类B继承父类A时,下面描述正确的是?()

答案:创建类B的对象可以调用类A中的public修饰的成员变量;创建类B的对象可以调用类A中的public修饰的成员方法下列选项中,关于类的继承说法正确的是()

答案:一个类只能有一个直接父类;多个类可以继承一个父类;一个类的父类可以再去继承另外的一个类下列关于继承的描述中,错误的是()

答案:Java是支持多继承的现有两个类A、B,以下描述中表示B继承自A的是()

答案:classBextendsA已知类的继承关系如下:

classAclassBextendsAclassCextendsA则以下语句能通过编译的是(

答案:Aa=newB();静态代码块中可以对静态成员变量进行赋值。

答案:对在有多个静态代码块的情况下,虚拟机会随机运行。

答案:错下列关于静态代码块的描述中,正确的是(

答案:静态代码块指的是被static关键字修饰的代码块;静态代码块随着类的加载而加载;使用静态代码块可以实现类的初始化阅读下列的程序

classPerson{

static{

System.out.println(name);

}

privatestaticStringname="hello";

}

classDemo{

publicstaticvoidmain(String[]args){

Personp=null;

}

}

下列选项中,程序的运行结果是()

答案:编译失败静态方法随着类的加载而加载,随着类的消失而消失。

答案:对静态方法中,可以访问非静态成员变量。

答案:对静态方法可以被类名调用,也可以被对象调用。

答案:对下列程序的运行结果是

classDemo{

privateStringname;

Demo(Stringname){=name;}

privatestaticvoidshow(){

System.out.println(name);

}

publicstaticvoidmain(String[]args){

Demod=newDemo("lisa");

d.show();

}

}

答案:编译失败,无法从静态上下文中引用非静态变量namestatic关键字可以修饰成员变量,也可以修饰局部变量。

答案:错下列关于静态变量的描述中,错误的是(

答案:静态变量同成员变量一样,都需要通过实例对象来调用下面关于静态变量的描述,正确的是(

答案:静态变量可以被类直接调用,因此可以说静态变量的生命周期与实例无关请阅读下面的程序,选择正确的运行结果。()

classDemo{

privatestaticintx;

publicstaticvoidmain(String[]args){

System.out.println(x++);

}

}

答案:0在成员方法中出现的this关键字,代表的是调用这个方法的对象。

答案:对当一个类中局部变量与成员变量同名时,“this.变量名”访问的是局部变量。

答案:错this关键字可以访问一个类的成员变量,解决与局部变量名称冲突的问题。

答案:对下列关于this关键字的说法中,错误的是(

答案:this可以出现在任何方法中在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或参数个数不同即可。

答案:对请阅读下面的程序,写出程序的运行结果。

classPerson{

Stringname;

intage;

publicPerson(){

}

publicPerson(Stringn){

name=n;

}

publicPerson(Stringn,inta){

name=n;

age=a;

}

publicvoidshow(){

System.out.println(name+“---“+age);

}

}

publicclassTest{

publicstaticvoidmain(String[]args){

Personp1=newPerson();

Personp2=newPerson(“林青霞”);

Personp3=newPerson(“林青霞”,27);

p1.show();

p2.show();

p3.show();

}

}

答案:null---0林青霞---0林青霞---27下列关于构造方法的描述中,错误的是()

答案:构造方法的访问权限必须和类的访问权限一致阅读下面的代码classDemo{

Demo(){}

}下列构造方法中,哪个构造方法可以存在上述Demo类中?()

答案:Demo(intage){};构造方法没有返回值类型,因此不能使用return语句。

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

答案:对一个类中如果没有定义构造方法,那么这个类就没有构造方法。

答案:错构造方法没有返回值类型,所以可以写void,也可以不写。

答案:错下列关于构造方法的定义,说法正确的是(

答案:在方法中不能使用return语句返回一个值;方法名与类名相同;在方法名的前面没有返回值类型的声明下列关于构造方法和普通方法的描述中,正确的是(

答案:构造方法不能指定返回值类型,普通方法可以指定返回值类型;构造方法能够在实例对象的同时进行初始化下列关于构造方法定义的描述中,错误的是(

答案:当定义了有参构造方法,系统默认的无参构造方法依然存在方法的递归是指在一个方法的内部调用自身的过程。

答案:对递归必须要有结束条件,不然就会陷入无限递归的状态,永远无法结束调用。

答案:对在Java中判断方法重载的条件除了参数外,还可以通过返回值类型判断。

答案:错一个类中可以定义多个同名的方法,只要他们的返回值类型不同即可。

答案:错Java允许在一个程序中定义多个同名的方法,但是参数的类型或个数必须不同,这就是方法的重载。

答案:对下列关于方法重载的说法中,正确的是(

答案:形式参数的个数不同。;形式参数的个数不同,数据类型不同。;形式参数的个数相同,数据类型不同。;形式参数的个数相同,数据类型顺序不同。下列选项中,哪些可以作为方法重载的判断条件(

答案:方法名;方法的参数列表下面选项中,可以和intmax(inta,intb,doublec)方法构成重载关系的是(

答案:doublemax(inta,intb);doublemax(doublea,doubleb)请阅读下面的程序

publicclassDemo{

publicstaticvoidsum(inta,intb){

System.out.println("int:"+(a+b));

}

publicstaticvoidsum(inta,floatb){

System.out.println("float:"+(a+b));

}

publicstaticvoidsum(inta,doubleb){

System.out.println("double:"+(a+b));

}

publicstaticvoidmain(String[]args){

inta=10;

longb=20;

sum(a,b);

}

}

下列选项中,哪一个是程序的运行结果()

答案:float:30.0私有属性只能在它所在类中被访问,为了能让外界访问私有属性,需要提供一些使用public修饰的公有方法。

答案:对在定义一个类时,可以使用private关键字修饰该类,以防止其被外部直接访问。

答案:错类的封装是指在定义一个类时,将类中的属性私有化,即使用【】关键字来修饰。

答案:private下列关于封装的描述中,正确的是(

答案:方法和类都可以称为封装体;封装隐藏了程序的实现细节,同时对外提供了特定的访问方式;封装能提高代码的复用性protected修饰的类,类中的所有方法只能给子类使用。

答案:错定义一个方法,只想被不同包下的子类使用,需要使用访问修饰符【】。

答案:protected在Java中,针对类、成员方法和属性提供了四种访问级别,分别是()

答案:private;protected;public;default下面哪个关键字用于将类中的属性私有化()

答案:privateJava提供了4种访问级别,以下控制级别由小到大依次列出正确的是()

答案:private、default、protectedpublic如果类的成员被(

)访问控制符来修饰,则这个成员只能被该类的其它成员访问,其它类无法直接访问。

答案:private一个实例对象只能被一个变量引用。

答案:对当一个对象没有任何变量引用时,它将变成垃圾对象。

答案:对当系统创建该类的实例时,系统自动为成员变量分配内存空间,并在分配内存空间后,自动为成员变量指定初始值。

答案:对使用等号可以为对象赋值。

答案:错Personp1=newPerson();Personp2=p1;这两句代码创建了【】个对象。

答案:1下列关键字中,用于创建类的实例对象的是(

答案:new阅读下面的程序,请列出运行的结果为【"a="20】classTest{

inta=10;

publicstaticvoidmain(String[]args){

inta=20;

System.out.println("a="+a);

}

}

答案:对在Java程序中,定义类必须使用class关键字。

答案:对Java中成员变量用于描述对象的特征,也被称作属性。

答案:对Java中的程序代码都必须放在一个类中。

答案:对在类中定义的【】用于描述对象的行为。

答案:方法;成员方法请阅读下面的代码:classExample{

intx;

staticinty;

voidfac(){

intage=30;

System.out.println("我的年龄是"+age);

}}关于上述代码的描述,正确的是(

答案:x和y都是成员变量;fac是成员方法;age是局部变量下列选项中,哪些可以定义在类中(

答案:类;成员方法;构造方法;成员变量以下关于类的描述中,错误的是(

答案:定义类的关键字是Interface在Java语言中,类是对某一类事物个体的具体描述。

答案:错类与对象的关系中,【】用于描述多个对象的共同特征,它是对象的模板。【】用于描述现实中的个体,它是类的实例。

答案:类;对象下列关于类和对象的说法中,错误的是()

答案:类在Java中是一个可有可无的概念下列关于类与对象的说法中,错误的是(

答案:类与对象没有什么实际关系。面向对象的特点主要可以概括为封装性、继承性和重载性。

答案:错封装就是隐藏对象的属性和实现细节,仅对外提供公有的方法。

答案:对下列选项中,属于面向对象特征的是(

答案:封装性;继承性;多态性下列关于面向对象的说法中,错误的是(

答案:面向对象就是分析解决问题所需要的步骤,然后用函数把这些步骤一一实现,使用的时候一个一个依次调用。下列选项中,不属于面向对象特征的是(

答案:跨平台性隐藏对象的属性和实现细节,仅对外提供公有的方法”描述的是面向对象的哪个特征(

答案:封装代码int[][]arr=newint[3][4]可以正确的定义一个二维数组。

答案:对若int[][]arr={},则arr[0][0]的结果为0。

答案:错若intarr={{1,2,3},{4,5},{6,7,8}},则arr[2][1]=【】。

答案:6若int[][]arr=newint{{1},{2,3,4},{5,6}},则arr[1][1]的结果为[

]

答案:3下列选项中关于二维数组的定义,格式正确的是(

答案:int[][]arr=newint[3][4];int[][]arr=newint[3][];int[][]arr={{1,2},{3,4,5},{6}}下面代码中,哪一项是正确定义了一个3*4的二维数组(

答案:int[][]arr=newint[3][4]若int[][]arr={{1,2,3}},则arr[0][1]的结果为()

答案:2数组的遍历是指依次访问数组中的每个元素。

答案:对下列关于冒泡排序的描述,正确的是(

答案:冒泡排序是不断地比较数组中相邻的两个元素;冒泡排序比较的总轮次是"数组长度-1"轮;冒泡排序中会涉及到元素位置的置换下列结构语句中,可以用来遍历数组的是()

答案:while;for下列有关数组中元素位置交换的描述,错误的是(

答案:位置交换后数组的角标顺序发生了改变阅读下面的代码:publicclassExample{

publicstaticvoidmain(String[]args){

int[]arr={4,1,6,3,9,8};

//定义一个数组

intminIndex=0;

//初始时设第1个角标处的值为最小值

for(inti=1;i答案:arr[i]数组的最大索引值等于数组长度减一。

答案:对请阅读下面的程序

classDemo{

publicstaticvoidmain(String[]args){

int[]arr=new____;

if(arr.length==4)

System.out.println(“数组定义完毕”);

}

}

在空白处填写代码,令代码完成输出“数组定义完毕”的功能。

答案:int[4]int[]a={45,4,67,23,65,87,34,52,56};数组中a[5]的值为()

答案:87声明一个数组,【】a=newString[]{};【】中应该填写的内容是()

答案:String[]continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。

答案:对当break语句出现在嵌套循环中的内层循环时,就无法跳出循环。

答案:错在Java中的跳转语句有break语句和【】语句。

答案:continue可以使用break语句终止程序或跳出循环的流程结构语句有(

答案:switch语句;for语句;while语句阅读下面的程序

publicclassTest{

publicstaticvoidmain(String[]args){

for(intx=0;x<=3;x++){

continue;

System.out.print(x%2);

}

}

}

运行结果正确的是()

答案:编译失败关于continue语句的使用范围,下列说法正确的是(

答案:ontinue语句可以在循环语句中使用请阅读下面的程序

publicclassTest{

publicstaticvoidmain(String[]args){

intx;

inty;

for(x=1,y=1;x<=100;x++){

if(y>=20){

break;

}

if(y%3==1){

y+=3;

continue;

}

y-=5;

}

System.out.println("x="+x+",y="+y);

}}

下列选项中,哪一个是程序的运行结果()

答案:x=8,y=22while、do…while、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套。

答案:对请阅读下面的程序:publicclassTest{

publicstaticvoidmain(String[]args){

inta=0;

intb=0;

for(inti=1;i<=5;i++){

a=i%2;

while(a-->=0){

b++;

}

}

System.out.println("a="+a+",b="+b);

}

}

下列选项中,哪一个是正确的运行结果(

答案:a=-2,b=8请阅读下面的程序

publicclassTest{

publicstaticvoidmain(String[]args){

intm=37;

intn=13;

while(m!=n){

while(m>n){

m-=n;

}

while(m答案:m=1请阅读下面的程序

publicclassTest{

publicstaticvoidmain(String[]args){

inttemp=0;

for(inti=1;i<5;i++){

for(intj=0;j答案:10请阅读下面的程序

publicclassTest{

publicstaticvoidmain(String[]args){

int[]a

={2,0,4,1,8,3,5};

inttemp;

for(inti=0;ii;j--){

if(a[j]答案:2041835while循环条件不能是布尔类型的常量。

答案:错以下选项中,满足无限循环条件的是(

答案:for(intx=0;;x++){};for(;;){};for(;true;){}请阅读下面的程序

publicclassTest{

publicstaticvoidmain(String[]args){

intsum=0;

for(inti=1;i<=100;i++){

if(i%2==0){

continue;

}

sum+=i;

}

System.out.println("sum="+sum);

}

}下列选项中,哪一个是程序的运行结果。()

答案:2500do…while和while语句都必须以分号结束。

答案:错do…while循环体中的内容至少会被执行一次。

答案:对请阅读下面的程序

publicclassExample

{

publicstaticvoidmain(String[]args){

intx=1;

do{

x++;

}while(x<=4);

System.out.println("x="+x);

}}

程序的运行结果是()

答案:x=5请阅读下面的程序

publicclassTest{

publicstaticvoidmain(Stringargs){

inti=0;

intcount=0;

do{

if(!(i+"").contains("4")){

count++;

}

i++;

}while(i<500);

System.out.println(count);

}

}下列选项中,哪一个是程序运行后count的值(

答案:324请阅读下面的程序

publicclassExample

{

publicstaticvoidmain(String[]args){

intx=1;

do{

x++;

}while(x<=4);

System.out.println("x="+x);

}

}

运行程序后,下列选项中,哪一个是x的值。(

答案:5while循环条件只能是boolean类型的变量,而不能是boolean类型的常量。

答案:错while语句必须要有修改循环条件的语句。

答案:对while语句的循环体内最多只能有一条语句。

答案:错while语句中,循环条件必须是【】类型的数据。

答案:布尔下列关于while语句的描述中,正确的是()

答案:while语句循环体中可以没有语句while语句的循环体中不能包含的语句是()

答案:方法定义语句switch语句中的条件表达式可以是Java中的任意一种数据类型。

答案:错switch条件语句可以针对某个表达式的值作出判断,从而决定程序执行哪一段代码。

答案:对下列关于case关键字的说法中,正确的是(

答案:case关键字后面必须是常量。;case关键字后面的break可以没有。;case关键字后面的值必须不一样。下列关于default语句的说法中,正确的是(

答案:default不是swicth语句中必须的;default代表的是默认要执行的语句,也就是没有匹配就执行default;一般情况下,default放置在switch语句的最后面switch条件表达式中可以使用的数据类型是(

答案:int;char;short;String请阅读下面的程序publicclassExample{

publicstaticvoidmain(String[]args){

charc='B';

switch(c){

case'A':

System.out.println("优");

break;

case'B':

System.out.println("良");

break;

case'C':

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论