Java基础周测-08-综合
一、单选题
Arrays、Array、Constructor<T>、Class<T>
1. 下面哪个类能够动态创建数组?()
参考答案:B
知识点:pubic class Arrays(java.util.Arrays):包含用于操作数组的各种方法(如排序和搜索),该类还包含一个静态工厂,可以将数组视为列表。public final class Array(java.lang.reflect.Array):提供静态方法来动态创建和访问Java数组。public final class Constructor<T>(java.lang.reflect.Constructor<T>):提供了一个类的单个构造函数的信息和访问。public final class Class<T>(java.lang.Class<T>):Class的类表示正在运行的Java应用程序中的类和接口。枚举是一种类,一个注释是一种界面。每个数组也属于一个反映为类对象的类。原始Java类型(boolean
,byte
,char
,short
,int
,long
,float
和double
),和关键字void
也表示为类
对象。
import java.lang.reflect.Array;
public class ArrayTest {
public static void main(String[] args) {
/*new Array();
Array的构造方法是私有的,不能new
*/
Object array = Array.newInstance(Integer.class, 10);
Array.set(array, 2, 100);
Integer value = (Integer) Array.get(array, 2);
System.out.println(value);//100
int length = Array.getLength(array);
System.out.println(length);//10
}
}
Method
2. 反射API中,使用哪个类封装方法?()
参考答案:B
知识点:public final class Method(java.lang.reflect.Method):方法提供有关类和接口上单一方法的信息和访问权限。反映的方法可以是类方法或实例方法(包括抽象方法)。
定义注解
3. 下面哪个选项正确声明了一个注解类型?()
参考答案:C
知识点:Java语言使用@interface
语法来定义注解(Annotation
)。使用 @interface 定义注解时,意味着它实现了 java.lang.annotation.Annotation 接口,即该注解就是一个Annotation。注意:Annotation 接口的实现细节都由编译器完成。通过 @interface 定义注解后,该注解不能继承其他的注解或接口。注解的参数类似无参数方法,可以用default
设定一个默认值。最常用的参数应当命名为value
。
createNewFile、exists、mkdirs、mkdir
4. File类型中定义了什么方法来创建一级目录?
参考答案:D
题目解析:boolean createNewFile():根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败。boolean exists():测试此抽象路径名表示的文件或目录是否存在。boolean mkdirs():创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。boolean mkdir():创建由此抽象路径名命名的目录。父目录存在的情况下,子目录才能创建成功。
5. TCP/IP是一种:
参考答案:B
文件输出流的构造方法中的boolean append
6. 文件输出流的构造方法是 public FileOutputStream(String name,Boolean append) throws FileNotFoundException,当参数 append 的值为 true时,表示 ()
参考答案:B
知识点:public FileOutputStream(String fileName,boolean append)throws FileNotFoundExceptionappend: 如果 append 参数为 true,则将字节写入文件末尾处,相当于追加信息。如果 append 参数为 false,则写入文件开始处。public FileWriter(File file,boolean append) throws IOException
7. 凡是从中央处理器或者是内存流向外部设备的数据流称为()
参考答案:D
createNewFile
8. 有如下代码 , 正确答案是()
public class TestFile{
public static void main(String args[]){
File file = new File(“chp13/corejava.txt”); } }
参考答案:C
题目解析:指定路径(可以不存在) -> new File(path)创建文件 -> file.createNewFile()
9. 使用Java IO流实现对文本文件的读写过程中,需要处理下列()异常
参考答案:B
10. 在Java的IO操作中,( )方法可以用来刷新流的缓冲。
参考答案:D
11. 一台计算机上可以运行多个服务,服务用什么来区别?
参考答案:C
12. 当服务器端没有找到客户端请求的资源时,响应状态码为多少?
13. 以下说法正确的是?()
参考答案:D
UUID
14. Java语言中支持UUID的类在哪个包里?()
参考答案:A
15. Random类的nextDouble()方法返回的随机数范围是什么?()
参考答案:B
String
16. 用以下哪个方法会导致字符串被改变?()
参考答案:D
知识点:Stirng concat(String str)将指定的字符串连接到该字符串的末尾。String toUpperCase()转换为大写String replace(char oldChar,char newChar)替换字符都是返回一个新的字符串。原字符串不改变。
17. 如何获取一个String类实例s包含的字符个数?()
参考答案:D
数组length 字符串length()
substring
18. 有String s = "Metallica";请问以下哪个语句可以打印输出ica?()
参考答案:B
题目解析:"Metallica".substring(6) returns "ica""Metallica".substring(6,9) returns "ica"知识点:索引从0开始String substring(int beginIndex)String substring(int beginIndex,int endIndex)beginIndex
- 开始索引,包括。endIndex
- 结束索引,不包括。
声明注解属性
19. 下面哪个选项正确声明了注解中的一个属性?()
参考答案:A
getAnnotation()
20. 哪个类中定义了getAnnotation方法?
参考答案:C
知识点:public <A extends Annotation> A getAnnotation(Class<A> annotationClass)参数类型A
- 要查询的注释的类型,如果存在则返回参数annotationClass
- 对应于注释类型的Class对象结果 - 该元素的注释指定的注释类型,如果存在于此元素,否则为null
finalize()
21. 以下哪个是finalize()方法的正确形式?()
参考答案:A
知识点:protected void finalize()
当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象。Object类的方法。
22. 如何明确显式释放掉一个对象占据的内存空间?()
参考答案:D
23. 下列哪个属于集合接口?()
参考答案:D
二、多选题
标识符
1. 下面哪个是合法的Java标识符?
参考答案:A,B,C
声明数组
2. 下面哪个语句正确?
参考答案:B,C,D
读写文件
3. 在Java中,下列关于读写文件的描述正确的是( )
参考答案:A,C, D
内存回收
4. 下列哪些语句关于Java内存回收的说明是不正确的? ()
参考答案:A,C,D
题目解析:A:垃圾回收程序是一般是在堆上分配空间不够的时候会自己进行一次GC,程序员不需要也不能主动释放内存。
B:Java的内存释放由垃圾回收程序来进行释放。
C:在Java里,内存的释放由垃圾回收程序进行管理,程序员不能直接进行释放。
D:程序员可以调用System.gc()运行垃圾回收器,但是不能指定时间。
内部类
5. 对于内部类,以下说法正确的是()
参考答案:A,B,D
题目解析:局部内部不能定义静态方法
三、判断题
1. Java中,==恒等运算符用于判定两个引用是否为同一对象,而Object类提供的equals方法默认实现则用于判定两个对象的内容是否相同
参考答案:B
==是一个比较运算符
(1) ==:如果判断基本类型,判断的是值是否相等
(2) ==:如果判断引用类型,判断的是地址是否相等,即判定是不是同一个对象
equals是Object类中的方法
(3)equals:只能判断引用类型
(4)默认判断地址是否相等,子类中往往重写了该方法(后面结合源码分析),用于判断内容是否相等,比如Integer,String
2. 如果import语句存在,则必须出现在源文件的非空白首行
参考答案:B
import语句可以一个也没有,也可以有很多个,也可以在类定义之前导入
3. 在系统正常运行的情况下 try-catch后如果定义了finally,则finally肯定会执行
参考答案:A
4. Java程序中,默认导入的包为java.lang包
参考答案:A
5. List允许重复元素,而Set不允许
参考答案:A
6. 数组可以调用length()方法获取数组长度
参考答案:B
7. HashMap是线程安全的。
参考答案:B
8. 编译中的多态表现在方法的重载
参考答案:A
9. 一个普通类继承抽象类,必须重写其未实现的方法操作
参考答案:A
10. 子线程的生命周期不会超过主线程
参考答案:A
四、简答题
什么是java序列化,如何实现java序列化?
参考答案:
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。
可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。
序列化是为了解决在对对象流进行读写操作时所引发的问题。序列化的实现:
将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法。
implements Serializable只是为了标注该对象是可被序列化的。
然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象。
接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。