Java基础周测-08-综合

一、单选题 

Arrays、Array、Constructor<T>、Class<T>

1. 下面哪个类能够动态创建数组?()

Array
Constructor
Class
参考答案: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类型( booleanbytecharshortintlongfloatdouble ),和关键字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中,使用哪个类封装方法?()
Methods
Method
Constructors
参考答案:B
知识点:
 public final class Method(java.lang.reflect.Method):
  方法提供有关类和接口上单一方法的信息和访问权限。
  反映的方法可以是类方法或实例方法(包括抽象方法)。
 

定义注解

3. 下面哪个选项正确声明了一个注解类型?()
public interface TestAnnotation{}
public Annotation TestAnnotation{}
public @interface TestAnnotation{}
public @Annotation TestAnnotation{}
参考答案:C
 知识点:
  Java语言使用@interface语法来定义注解(Annotation)。
  使用 @interface 定义注解时,意味着它实现了 java.lang.annotation.Annotation 接口,即该注解就是一个Annotation。
注意:
  Annotation 接口的实现细节都由编译器完成。
  通过 @interface 定义注解后,该注解不能继承其他的注解或接口。
  注解的参数类似无参数方法,可以用default设定一个默认值。
  最常用的参数应当命名为value
 

createNewFile、exists、mkdirs、mkdir

4. File类型中定义了什么方法来创建一级目录
createNewFile
exists
mkdirs
mkdir
参考答案: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 FileNotFoundException
append:   如果 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”); } }
corejava.txt 文件在系统中被创建
在 windows 系统上运行出错,因为路径分隔符不正确
参考答案:C
题目解析:
指定路径(可以不存在) -> new File(path)
创建文件 -> file.createNewFile()
 
9. 使用Java IO流实现对文本文件的读写过程中,需要处理下列()异常
ClassNotFoundException
IOException
SQLException
RemoteException
参考答案:B
 
10. 在Java的IO操作中,( )方法可以用来刷新流的缓冲。
void release()
void close()
void remove()
void flush()
参考答案:D
 
11. 一台计算机上可以运行多个服务,服务用什么来区别?
IP地址
HOST名字
端口号
用户名
参考答案:C
 
12. 当服务器端没有找到客户端请求的资源时,响应状态码为多少?
80
200
403
D、 404
参考答案:D
 
13. 以下说法正确的是?()
FileWriter类提供有操作基本数据类型的方法
RandomAccessFile类提供有删除磁盘文件的方法
File类提供有删除磁盘文件的方法
参考答案:D
 

UUID

14. Java语言中支持UUID的类在哪个包里?()
java.util
java.lang
java.io
java.sql
参考答案:A
 
15. Random类的nextDouble()方法返回的随机数范围是什么?()
[0, 1.0]
[0, 1.0)
(0, 1.0)
任意值
参考答案:B
 

String

16. 用以下哪个方法会导致字符串被改变?()
concat()
toUpperCase()
replace()
没有改变字符串的方法可以调用;
参考答案:D
知识点:
Stirng concat(String str)
  将指定的字符串连接到该字符串的末尾。
String toUpperCase()
  转换为大写
String replace(char oldChar,char newChar)
  替换字符
都是返回一个新的字符串。原字符串不改变。
 
17. 如何获取一个String类实例s包含的字符个数?()
s.size
s.length
s.size()
s.length()
参考答案:D
数组length      字符串length()
 

substring

18. 有String s = "Metallica";请问以下哪个语句可以打印输出ica?()
System.out.println(s.substring(7));
System.out.println(s.substring(6));
System.out.println(s.substring(6,8));
System.out.println(s.substring(7,9));
参考答案: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. 下面哪个选项正确声明了注解中的一个属性?()
public String urlpattern() ;
public String urlpattern ;
public String urlpattern() {};
public String urlpattern[];
参考答案:A
 

getAnnotation()

20. 哪个类中定义了getAnnotation方法?
Object
Annotation
Class
enum
参考答案:C
知识点:
public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
  参数类型A - 要查询的注释的类型,如果存在则返回参数
  annotationClass -  对应于注释类型的Class对象
  结果 - 该元素的注释指定的注释类型,如果存在于此元素,否则为null
 

finalize()

21. 以下哪个是finalize()方法的正确形式?()
protected void finalize() throws Throwable
final finalize()
public final finalize()
参考答案:A
知识点:
protected void finalize() 
  当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象。Object类的方法。  
 
22. 如何明确显式释放掉一个对象占据的内存空间?()
调用free()方法
调用System.gc()方法
赋值给该对象的引用为null
程序员无法明确强制垃圾回收器运行
参考答案:D
 
23. 下列哪个属于集合接口?()
Tree
Stack
Array
Map
参考答案:D
 
二、多选题 
 

标识符

1. 下面哪个是合法的Java标识符?
Stu_name
STUName2
Stu$name
1stuname
参考答案:A,B,C
 

声明数组

2. 下面哪个语句正确?
int[] a=new int[];
int[] a={1};
int a[]={1};
int[] a=new int[]{1,2};
参考答案:B,C,D
 

读写文件

3. 在Java中,下列关于读写文件的描述正确的是( )
Reader类的read(int n )方法用来从源中读取一个字符的数据
Writer类的write(int n)方法用来向输出流写入单个字符
Writer类的write(String str)方法用来向输出流写入一个字符串
参考答案:A,C, D
 

内存回收

4. 下列哪些语句关于Java内存回收的说明是不正确的? ()
程序员必须创建一个线程来释放内存
内存回收程序允许程序员直接释放内存
内存回收程序可以在指定的时间释放内存对象
参考答案:A,C,D
题目解析:
A:垃圾回收程序是一般是在堆上分配空间不够的时候会自己进行一次GC,程序员不需要也不能主动释放内存。
B:Java的内存释放由垃圾回收程序来进行释放。
C:在Java里,内存的释放由垃圾回收程序进行管理,程序员不能直接进行释放。
D:程序员可以调用System.gc()运行垃圾回收器,但是不能指定时间。
 

内部类

5. 对于内部类,以下说法正确的是()
匿名内部类可以实现接口或继承其他类,但不能同时即实现接口又继承类
匿名内部类不能有任何明确的构造器
内部类可以定义在外部类类体中,也可以定义在外部类的方法体中,和外部类不同,内部类均能使用访问修饰符,并能使用static修饰
在Java中,对内部类的嵌套层次没有限制
参考答案: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的对象写出(即保存其状态),要恢复的话则用输入流。

posted @ 2022-05-15 16:14  carat9588  阅读(158)  评论(0编辑  收藏  举报