小试牛刀 在线考试 答题题目
1、(多选题) String 类能被继承吗,为什么()
A、A、在Java中,String是不可变的
B、B、String 类是可以被继承的
C、C、继承可能会降低程序的性能
D、D、Sting类是用final 修饰的
2、(多选题) String,Stringbuffer,StringBuilder 的区别。
A、A、Sting类是可变的
B、B、StringBuilder,采用无final 修饰的字符数组进行保存,因此可变。
C、C、StringBuilder是线程不安全的
D、D、StringBuffer是线程安全的
E、E、StringBuffer和StringBuilder都是采用无final 修饰的字符数组进行保存
3、(多选题) ArrayList 和 LinkedList 有什么区别。
A、A、Arraylist 是字符数组 根据下标、索引访问
B、B、LinkedList 是双向链表,可以在头部和尾部插入
C、C、Arraylist 频繁插入效率较高
D、D、LinkedList 查找效率较快
E、E、LinkedList插入元素时,不需要对数据进行移动
4、(多选题) 下列类的实例化顺序哪些是正确的
A、A、先后顺序:静态成员变量、成员变量、构造方法
B、B、父类静态代码块、父类静态变量、子类静态变量、子类静态代码块
C、C、、父类静态变量、子类非静态代码块、父类静态代码块
D、D、父类静态变量、父类静态代码块、子类静态变量、子类静态代码块
5、(多选题) 下列 有关hashMapMap 类,说法正确的是()
A、A、hashMap 是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,访问速度很快
B、B、hashMap 遍历时,取得数据的顺序是完全随机的
C、C、HashMap 最多只允许一条记录的键为null,允许多条哦记录的值为Null
D、D、HashMap不支持线程的同步,是非线程安全的
E、E、HashMap需要同步,可以用Collections和SynchrinizdeMap方法使HashMap具有同步能力,或者使用ConcurrentHashMap.
6、(多选题) 下列有关LinkedHashMap 说法正确的是()
A、A、LinkedHashMap保存了记录的插入顺序,在用Interator遍历LinkedHashMap时,先得到的记录肯定是先插入的
B、B、在遍历的时候会比HashMap快
C、C、当HashMap容量很大,实际数据较少时,遍历起来可能会比linkedHashMap慢
D、D、LinkedHashMap的遍历速度只和实际数据有关,和容量无关
7、(多选题) 下列有关**TreeMap**的说法正确的是()
A、A、TreeMap实现SortMap接口,能够把它保存的记录根据键排序
B、B、默认是按键值的升序排序,当使用Iterator遍历时,得到的记录是排过序的。
C、C、如果要按自然顺序或自定义顺序遍历键,那么TreeMap会更好
D、D、TreeMap 的访问速度比 hashMap 快
8、(多选题) Java 语言具有哪些特点?()
A、A、Java 为纯面向对象的语言。它能够直接反应现实生活中的对象。
B、B、具有平台无关性。Java 利用 Java 虚拟机运行字节码,无论是在 Windows、Linux 还是 MacOS 等其它平台对 Java 程序进行编译,编译后的程序可在其它平台运行。
C、C、Java 提供了很多内置类库。如对多线程支持,对网络通信支持,最重要的一点是提供了垃圾回收器。
D、D、Java 具有较好的安全性和健壮性。Java 提供了异常处理和垃圾回收机制,去除了 C++中难以理解的指针特性。
E、E、编译器把 Java 代码编译成与平台无关的中间代码,然后在 JVM 上解释运行,具有很好的可移植性。
9、(多选题) JDK 与 JRE 有什么区别?()
A、A、JDK:Java 开发工具包(Java Development Kit),提供了 Java 的开发环境和运行环境
B、B、JRE 包含了 JDK。如果只运行 Java 程序,安装 JRE 即可。要编写 Java 程序需安装 JDK.
C、C、JDK 包含了 JRE。如果只运行 Java 程序,安装 JRE 即可。要编写 Java 程序需安装 JDK
D、D、JRE:Java 运行环境(Java Runtime Environment),提供了 Java 运行所需的环境
10、(多选题) 自动装箱拆箱说法正确的是()
A、A、装箱就是自动将基本数据类型转换为包装器类型,如 int->Integer
B、B、拆箱就是自动将包装器类型转换为基本数据类型,如 Integer->int
C、C、装箱可以不自动将基本数据类型转换为包装器类型,如 int->Integer
D、D、String类 的包装类是characer
11、(多选题) 下列Java 访问修饰符说法正确的是()
A、A、default: 默认访问修饰符,在同一包内可见
B、B、private: 在同一类内可见,不能修饰类
C、C、public: 对多项目下的对所有类可见
D、D、protected : 对同一包内的类和所有子类可见
12、(多选题) 面向对象的三大特性说法正确的是()
A、A、继承:对象的一个新类可以从现有的类中派生,派生类可以从它的基类那继承方法和实例变量,且派生类可以修改或新增新的方法使之更适合特殊的需求
B、B、封装:将客观事物抽象成类,每个类可以把自身数据和方法只让可信的类或对象操作,对不可信的进行信息隐藏。
C、C、多态:可以通过接口来实现
D、D、多态:允许不同类的对象对同一消息作出响应。不同对象调用相同方法即使参数也相同,最终表现行为是不一样的。
13、(多选题) Java 提供的多态机制说法正确的是()
A、A、覆盖是接口的引用变量指向其实现类的实例对象
B、B、覆盖是指派生类重写基类的方法,使用基类指向其子类的实例对象
C、C、重载:重载是指同一个类中有多个同名的方法,但这些方法有不同的参数,在编译期间就可以确定调用哪个方法。
D、D、Java 提供了两种用于多态的机制,分别是重载与覆盖。
14、(多选题) 下列关于Java 的多态说法正确的是()
A、A、Java 多态可以分为编译时多态和运行时多态
B、B、编译时多态主要指方法的重载,即通过参数列表的不同来区分不同的方法
C、C、运行时多态主要指继承父类和实现接口时,可使用父类引用指向子类对象
D、D、运行时多态的实现:如果子类改写了父类的方法,那么子类和父类的那些同名方法共享一个方法表项,都被认作是父类的方法。因此可以实现运行时多态。
15、(多选题) 重载与覆盖的区别?()
A、A、覆盖是父类与子类之间的关系,是垂直关系;重载是同一类中方法之间的关系,是水平关系
B、C、覆盖要求参数列表不相同;重载要求参数列表相同
C、D、覆盖中,调用方法体是根据对象的类型来决定的,而重载是根据调用时实参表与形参表来对应选择方法体。
D、E、重载方法可以改变返回值的类型,覆盖方法不能改变返回值的类型。
16、(多选题) 接口和抽象类的区别正确的是()
A、A、接口和抽象类都不能被实例化
B、B、接口的实现类或抽象类的子类需实现接口或抽象类中相应的方法才能被实例化
C、C、接口只能有方法定义,不能有方法的实现,而抽象类可以有方法的定义与实现。
D、D、实现接口的关键字为 implements,继承抽象类的关键字为 extends。一个类可以实现多个接口,可以继承多个抽象类。
E、E、使用接口能降低软件系统的耦合度,便于日后维护或添加删除方法。
17、(多选题) 下列关于内部类及其作用正确的是()
A、A、成员内部类:可以访问 private 及以上外部类的属性和方法。外部类想要访问内部类属性或方法时,必须要创建一个内部类对象
B、B、局部内部类:存在于方法中的内部类。访问权限类似局部变量,只能访问外部类的 final 变量。
C、C、匿名内部类:只能使用一次,没有类名,只能访问外部类的 final 变量。
D、D、静态内部类:类似类的静态成员变量。
18、(多选题) Java 语言中关键字 static 的作用是什么()
A、A、为某种特定数据类型或对象分配与创建对象个数无关的单一的存储空间。
B、B、使得某个方法或属性与类而不是对象关联在一起,即在不创建对象的情况下可通过类直接调用方法或使用类的属性。
C、C、修饰成员变量。用 static 关键字修饰的静态变量在内存中只有一个副本
D、D、修饰成员方法。static 修饰的方法无需创建对象就可以被调用。static 方法中不能使用 this 和 super 关键字,
E、E、修饰代码块。JVM 在加载类的时候会执行 static 代码块。static 代码块常用于初始化静态变量。
19、(多选题) 为什么要把 String 设计为不可变()
A、A、节省空间:字符串常量存储在 JVM 的字符串池中可以被用户共享
B、B、提高效率:String 可以被不同线程共享,是线程安全的。在涉及多线程操作中不需要同步操作。
C、C、安全:String 常被用于用户名、密码、文件名等使用,由于其不可变,可避免黑客行为对其恶意修改。
D、D、便于继承,有利于后续的开发。
20、(多选题) 下列关于运算符==与 equals 的区别正确的是()
A、A、== 比较的是引用,equals 比较的是内容
B、B、如果变量是基础数据类型,== 用于比较其对应值是否相等。如果变量指向的是对象,== 用于比较两个对象是否指向同一[块存储]空间。
C、C、Object 类中定义的 equals 方法内部是直接调用 == 比较对象的。但通过覆盖的方法可以让它不是比较引用而是比较数据内容。
D、D、equals 是 Object 类提供的方法之一,每个 Java 类都继承自 Object 类
21、(多选题) 下列Object 类常用方法正确的是()
A、A、clone:深拷贝一个对象
B、B、toString: 用字符串表示该对象
C、C、equals:判断两个对象的引用地址是否一致。需保证 equals 方法相同对应的对象 hashCode 也相同。
D、D、hashCode:通过对象计算出的散列码。用于 map 型或 equals 方法。需要保证同一个对象多次调用该方法,总返回相同的整型值。
22、(多选题) 下列Java 中一维数组和二维数组的创建方式正确的是()
A、A、int a[][]=new int[3][4];
B、B、int [] arrayName[] = new int [1][3];
C、C、imt [0]=y
D、D、String[] names=new String[]{"大名","小米","夏雨荷"};
23、(多选题) final、finally 和 finalize 的区别正确的是()
A、A、final 用于声明属性、方法和类,分别表示属性不可变、方法不可覆盖、类不可继承。
B、B、finally 作为异常处理的一部分,只能在 try/catch 语句中使用,finally 附带一个语句块用来表示这个语句最终一定被执行,经常被用在需要释放资源的情况下
C、finalize 是 Object 类的一个方法,在垃圾收集器执行的时候会调用被回收对象的 finalize()方法。当垃圾回收器准备好释放对象占用空间时,首先会调用 finalize()方法,并在下一次垃圾回收动作发生时真正回收对象占用的内存。
C、C、finalize :在垃圾收集器执行的时候会调用被回收对象的 finalize()方法。当垃圾回收器准备好释放对象占用空间时,首先会调用 finalize()方法,并在下一次垃圾回收动作发生时真正回收对象占用的内存。
D、D、final修饰的类可以被调用
24、(多选题) 获取 Class 对象的方法有()
A、A、Class.forName(“类的全限定名”)
B、B、Class.>clazz = Class.forName("com.test.reflection.User01");
C、实例对象.getClass()
D、类名.class
C、B、Class.>clazz = Class.forName("com.test.reflection.User01");
D、C、实例对象.getClass()
E、D、类名.class
25、(多选题) (1)AVA 中的几种基本数据类型是什么。()
A. 整数型 byte 1个字节 short 2个字节 int 4个字节
B. 长整型 byte
C. 字符串 char 2个
D.浮点型 float 4个 double 8个
E. 布尔类型 boolen
A、A. 整型 byte 1个字节 short 2个字节 int 4个字节
Long 8个字节
B、B. 布尔类型 boolen
C、C. 字符串 char 2个
D. float 4个 double 8个
D、C. 字符串 char 2个
D. float 4个 double 8个
26、(多选题) 为什么 Java 语言不支持直接多重继承?()
A、A、如果支持多继承会产生二义性
B、B、多重继承会使类型转换、构造方法的调用顺序变得复杂,会影响到性能
C、C、Java 语言通过实现多个接口间接支持多重继承,接口由于只包含方法定义,不能有方法的实现
D、D、子类可以继承多个父类
微信扫一扫 在线答题 在线出卷 随机出题小程序 闯关答题软件 出题答题小程序