javaSE试题

这是一份关于Java SE的试题,包含了不定项选择题、简答题和编程题。内容涉及Java的基础语法、类与对象、数据类型、集合、流的概念等。选择题涵盖了编译、标识符、循环、构造方法、关键字的使用等方面;简答题解释了JRE、JDK、JVM的关系及各自功能,Java基本类型等;编程题则要求实现对学生成绩排序和文件复制的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、不定项选择题(共10小题,每题3分,共30分)

1、以下选项中是对一个Java源文件进行正确编译的语句是( A )。

A.    javac Test.java

B.    javac Test

C.    java Test

D.    java Test.class

 

2、以下选项中属于合法的Java标识符的是( CD )。

A.    public

B.    3num

C.    name

D.    _age

 

3、while循环和do-while循环的区别是( D )。

A.    没有区别,这两个结构在任何情况下效果一样

B.    while循环比do-while循环执行效率高

C.    while循环是先循环后判断,所以循环体至少被执行一次

D.    do-while循环是先循环后判断,所以循环体至少被执行一次

 

4、以下语句中关于Java构造方法的说法错误的是( B )。

A.    构造方法的作用是为创建对象进行初始化工作,比如给成员变量赋值

B.    一个Java类可以没有构造方法,也可以提供1个或多个构造方法

C.    构造方法与类同名,不能书写返回值类型

D.    构造方法的第一条语句如果是super(),则可以省略,该语句作用是调用父类无参数的构造方法

 

5、以下关于this和super关键字的说法错误的是( BD )。

A.    this关键字指向当前对象自身,super关键字指向当前对象的直接父类

B.    在main方法中可以存在this或super关键字。

C.    this和super关键字都可以访问成员属性,成员方法和构造方法

D.    在一个类的构造方法中可以同时使用this和super来调用其他构造方法

 

6、以下选项中关于int和Integer的说法错误的是( BD )。

A.    int是基本数据类型,Integer是int的包装类,是引用数据类型

B.    int的默认值是0,Integer的默认值也是0

C.    Integer可以封装了属性和方法提供更多的功能

D.    Integer i=5;该语句在JDK1.5之后可以正确执行,使用了自动拆箱功能

 

7、以下选项中关于Java集合的说法错误的是( AC )。

A.    List接口和Set接口是Collections接口的两个子接口

B.    List接口中存放的元素具有有序,不唯一的特点

C.    Set接口中存放的元素具有无序,不唯一的特点

D.    Map接口存放的是映射信息,每个元素都是一个键值对

 

8、在JAVA中,下列哪些说法是正确的( AC )  

A.    java源文件的扩展名为.java

B.    写好的java源程序可以直接运行

C.    编写的源程序必须先编译后才能运行

D.    程序员可以读懂扩展名为.class的文件

 

9、下面哪些赋值语句是正确的?( ABD )

A.   long l = 012;//正确,八进制数

B.   float f = -412;//正确

C.   int i = (int) true;//布尔型不能强转成整型

D.   double d = 0x12345678;//正确,在double的范围内。十六进制数

 

10、下面哪些函数是public void aMethod(){...}的重载函数?( BD

A.   void aMethod( ){...}

B.   public int aMethod(int a, float b){...}

C.   public void aMethod (){...}

D.   public float aMethod (int m){…}

 

 

 

二、简答题(共10小题,每题5分,共50分)

1、JRE、JDK、JVM分别是什么?三者之间有什么联系?

答:JDK :英文名称(Java Development Kit),Java 开发工具包。jdk 是整个 Java 开发的核心,它集成了 jre 和开发工具包。

JRE 英文名称(Java Runtime Environment),我们叫它:Java 运行时环境。它主要包含两个部分,jvm 的标准实现和 Java 的一些基本类库。它相对于 jvm 来说,多出来的是一部分的 Java 类库。

JVM 英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。jvm 是 Java 能够跨平台的核心。

这三者的关系是:一层层的嵌套关系,JDK 包含 JRE,JRE 包含 JVM;

 

2、Java中的基本类型有哪些?它们的字节数,bit数分别是多少?

答:Java中的基本数据类型只有8个:

byte(1个字节,8bit)、short(2个字节,16bit)、int(4个字节,32bit)、long(8个字节,64bit)、

float(4个字节,32bit)、double(8个字节,64bit)、char(2个字节,16bit)、boolean(1个字节,8bit)

 

 

 

3、是否可以继承String类,为什么?

答:String 类是final类,不可以被继承。

 

4、逻辑运算符中&和&&的相同点和不同点?

答:相同点:Java中&&和&都是表示与的逻辑运算符,都表示逻辑运输符and,当两边的表达式都为true的时候,整个运算结果才为true,否则为false。

不同点:&&的短路功能,当第一个表达式的值为false的时候,则不再计算第二个表达式;&则两个表达式都执行。

 

5、String、StringBuilder、StringBuffer之间的区别?

答:Java平台提供了两种类型的字符串:String和StringBuffer/StringBuilder,它们可以储存和操作字符串。其中String是只读字符串,也就意味着String引用的字符串内容是不能被改变的,一旦修改 String的值就是隐形的重建了一个新的对象,释放了原 String对象。而StringBuffer/StringBuilder类表示的字符串对象可变的,可以直接进行修改。StringBuilder是Java 5中引入的,线程不安全,它和StringBuffer的方法完全相同,区别在于它是在单线程环境下使用的,因为它的所有方面都没有被synchronized修饰,因此它的效率也比StringBuffer要高。

 

6、接口是否可以继承(extends)接口?抽象类是否可以实现(implements)接口?抽象类是否可以继承具体类?

答:接口可以继承接口,而且支持多重继承。抽象类可以实现(implements)接口,抽象类可继承具体类也可以继承抽象类。

 

7、阐述静态变量和实例变量的区别?

答:静态变量是被static修饰符修饰的变量,也称为类变量,它属于类,不属于类的任何一个对象,一个类不管创建多少个对象,静态变量在内存中有且仅有一个拷贝;实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。静态变量可以实现让多个对象共享内存。

 

8、List、Map、Set三个接口存取元素时,各有什么特点?

答:List以特定索引来存取元素,有序,可以有重复元素。Set无序,不能存放重复元素(用对象的equals()方法来区分元素是否复)。Map保存键值对(key-value pair)映射。

 

9、阐述final、finally的区别。

答:

final:修饰符(关键字)有三种用法:1、类被声明为final,意味着它不能再派生出新的子类,即不能被继承;2、将变量声明为final,可以保证它们在使用中不被改变;被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取不可修改。3、被声明为final的方法不能在子类中被重写。

finally:通常放在try…catch…的后面,finally块中的代码总能执行,这就意味着程序无论正常执行还是发生异常,这里的代码只要JVM不关闭都能执行,可以将释放外部资源的代码写在finally块中。

 

10、阐述流的分类。

答:

1.输入流和输出流

按照流的流向来分,可以分为输入流和输出流。输入、输出都是从程序运行所在内存的角度来划分的。

输入流:只能从中读取数据,而不能向其写入数据。由InputStream和Reader作为基类

输出流:只能向其写入数据,而不能从中读取数据。由OutputStream和Writer作为基类

2.字节流和字符流

字节流和字符流的用法几乎完全一样,区别在于字节流和字符流所操作的数据单元不同。

字节流操作的数据单元是8位的字节,由InputStream和OutputStream作为基类。

字符流操作的数据单元是16位的字符,由 Reader和 Writer作为基类。

3.节点流和处理流

按照流的角色来分,可以分为节点流和处理流。

节点流:可以从向一个特定的IO设备(如磁盘、网络)读/写数据的流。也被称为低级流。

处理流:用于对一个已存在的流进行连接或封装,通过封装后的流来实现数据读/写功能。也称为高级流。

 

 

 

三、编程题(共2小题,每题20分,共40分)

注意:本大题需要把源码粘贴在对应题目下方,并且需要录制运行过程和运行结果视频。

 

1、假设1701班有40个学生,学号为170101~170140,全部参加Java集合阶段检测,给出所有同学的成绩(整数、随机产生,范围为50~100),请编写程序将本班各位同学成绩从高往低排序打印输出。

注:成绩相同时学号较小的先打印;要求:①打印的信息包含学号、姓名(姓名统一为“同学X”[X=01,02,03,...]和学号后两位一致)和成绩,具体格式参考截图。②遍历输出时使用迭代器

答:参考代码:

  1. package com.gx.test;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.Collections;  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值