Java基础笔试练习(六)

Java基础笔试练习(六)

1.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为?

A.隐藏
B.覆盖
C.重载
D.Java不支持此特性

答案:
C

解析:

2.编译 Java 源程序文件产生的字节码文件的扩展名为()?

A.java
B.class
C.html
D.exe

答案:
B

解析:
送分题

3.以下程序的运行结果是() ?

public class Increment
{
    public static void main(String args[])
    {
        int a;
        a = 6;
        System.out.print(a);
        System.out.print(a++);
        System.out.print(a);
    }
}

A.666
B.667
C.677
D.676

答案:
B

解析:
a++很好记的,表示先用后+,而++a表示先+后用。看+在前在后,也决定第一步。

4.有以下程序片段且Interesting不是内部类,下列哪个选项不能插入到行1。( )

1.
2.public class Interesting{
3. // 省略代码
4.} 

A.import java.awt.*;
B.package mypackage;
C.class OtherClass{ }
D.public class MyClass{ }

答案:
D

解析:
在同一个java原文件中,可以有多个class类,但是只有有一个公共的 public class

5.Math.round(11.5) 等于多少 (). Math.round(-11.5) 等于多少 ( )?

A.11 ,-11
B.11 ,-12
C.12 ,-11
D.12 ,-12

答案:
C

解析:

  • floor:意为地板,指向下取整,返回不大于它的最大整数
  • ceil:意为天花板,指向上取整,返回不小于它的最小整数
  • round:意为大约,表示“四舍五入”,而四舍五入是往大数方向入。
  • Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11而不是-12。

6.一个以“.java”为后缀的源文件

A.只能包含一个public类,类名必须与文件名相同
B.只能包含与文件名相同的public类以及其中的内部类
C.只能有一个与文件名相同的public类,可以包含其他非public类(不考虑内部类)
D.可以包含任意public类

答案:
C

解析:
.java文件可以包含多个类,唯一的限制就是:一个文件中只能有一个public类,并且此public类必须与文件名相同。而且这些类和写在多个文件中没有区别。

7.关于Float,下列说法错误的是() ?

A.Float是一个类
B.Float在java.lang包中
C.Float a=1.0是正确的赋值方法
D.Float a= new Float(1.0)是正确的赋值方法

答案:
C

解析:
1.Float是类,float不是类.
2.查看JDK源码就可以发现Byte,Character,Short,Integer,Long,Float,Double,Boolean都在java.lang包中.
3.Float正确复制方式是Float f=1.0f,若不加f会被识别成double型,double无法向float隐式转换.
4.Float a= new Float(1.0)是正确的赋值方法,但是在1.5及以上版本引入自动装箱拆箱后,会提示这是不必要的装箱的警告,通常直接使用Float f=1.0f.

8.子类要调用继承自父类的方法,必须使用super关键字。

A.正确
B.错误

答案:
B

解析:
1、子类构造函数调用父类构造函数用super
2、子类重写父类方法后,若想调用父类中被重写的方法,用super
3、未被重写的方法可以直接调用。

9.下列属于容器的组件有()?

A.JButton
B.JPanel
C.Thread
D.JTextArea

答案:
B

解析:
JPanel是Java图形用户界面(GUI)工具包中的面板容器类,包含在javax.swing包中,是一种轻量级容器,可以加入到JFrame窗体中。JPanel默认的布局管理器是FlowLayout,其自身可以嵌套组合,在不同子容器中可包含其他组件(component),如JButton、JTextArea、JTextField等,功能是对对窗体上的这些控件进行组合,相当于C++和C#中的Panel类。

10.我们在程序中经常使用“System.out.println()”来输出信息,语句中的System是包名,out是类名,println是方法名。

A.对
B.错

答案:
B

解析:
system是java.lang中的一个类,out是System内的一个成员变量,这个变量是一个java.io.PrintStream类的对象,println就是一个方法了。

11.正则表达式中,表示匹配非数字字符的字符是()?

A.\b
B.\d
C.\B
D.\D

答案:
D

解析:
大写表示“非”,d表示digit数字。非数字就是\D, w表示word,非单词就是\W

12.对于以下代码段,4个输出语句中输出true的个数是( )。

class A{}
class B extends A{}
class C extends A{}
class D extends B{}
A obj = new D();
System.out.println(obj instanceof B);
System.out.println(obj instanceof C);
System.out.println(obj instanceof D);
System.out.println(obj instanceof A); 

A.1
B.2
C.3
D.4

答案:
C

解析:
D属于B,D属于A,D属于D,D不属于C.所以选C

13.在Java中,HashMap中是用哪些方法来解决哈希冲突的?

A.开放地址法
B.二次哈希法
C.链地址法
D.建立一个公共溢出区

答案:
C

解析:
以上方法都是解决哈希填冲突的策略,但是在java.util.HashMap中,总体来说是使用的链地址法来解决冲突的。
当然了,使用链地址法会导致get的效率从o(1)降至o(n),所以在Java8中,使用的是平衡树来解决提高效率的。

14. 关于匿名内部类叙述正确的是? ( )

A.匿名内部类可以继承一个基类,不可以实现一个接口
B.匿名内部类不可以定义构造器
C.匿名内部类不能用于形参
D.以上说法都不正确

答案:
B

解析:
由于构造器的名字必须与类名相同,而匿名类没有类名,所以匿名类不能有构造器。

15.下下面哪一项不是加载驱动程序的方法?

A.通过DriverManager.getConnection方法加载
B.调用方法 Class.forName
C.通过添加系统的jdbc.drivers属性
D.通过registerDriver方法注册

答案:
A

解析:
DriverManager.getConnection方法返回一个Connection对象,这是加载驱动之后才能进行的

16.关于以下代码的说明,正确的是()?

1. class StaticStuff
2. {
3. static int x=10;
4. static { x+=5;}
5. public static void main(String args[ ])
6. {
7. System.out.println(“x=” + x);
8. }
9. static { x/=3;}
10. }

A.4行与9行不能通过编译,因为缺少方法名和返回类型
B.9行不能通过编译,因为只能有一个静态初始化器
C.编译通过,执行结果为:x=5
D.编译通过,执行结果为:x=3

答案:
C

解析:

先执行:
1 static int x = 10;
再执行两个静态块:
1 static { x+=5; }
2 static { x/=3; }
最后执行main():
1 System.out.println(“x=” + x);

所以x = 10 -> x = x +5 = 15 -> x = x / 3 = 5 打印x=5

17.以下集合对象中哪几个是线程安全的()?

A.LinkedList
B.ArrayList
C.Vector
D.Hashtable

答案:
C D

解析:

简单记忆线程安全的集合类:喂!SHE! 喂是指vector,S是指stack,H是指hashtable,E是指:Eenumeration

18.下面哪些可能是重载的基本条件()(注意:是可能为重载的基本条件)

A.参数的类型不同
B.参数的顺序不同
C.函数的返回值类型不同
D.参数的个数不同

答案:
A B D

解析:

重载的概念是:
方法名称相同,参数个数、次序、类型不同
因此重载对返回值没有要求,可以相同,也可以不同
但是如果参数的个数、类型、次序都相同,方法名也相同,仅返回值不同,则无法构成重载

19.下面有关 java 类加载器,说法正确的是?()

A.引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的
B.扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。
C.系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类
D.tomcat 为每个 App 创建一个 Loader,里面保存着此 WebApp 的 ClassLoader。需要加载 WebApp 下的类时,就取出 ClassLoader 来使用

答案:
A B C D

解析:
类的加载是由类加载器完成的,类加载器包括:根加载器(BootStrap)、扩展加载器(Extension)、系统加载器(System)和用户自定义类加载器( java.lang.ClassLoader 的子类)。从 Java 2 (JDK 1.2)开始,类加载过程采取了父亲委托机制( PDM )。 PDM 更好的保证了 Java 平台的安全性,在该机制中, JVM 自带的 Bootstrap 是根加载器,其他的加载器都有且仅有一个父类加载器。类的加载首先请求父类加载器加载,父类加载器无能为力时才由其子类加载器自行加载。 JVM 不会向 Java 程序提供对 Bootstrap 的引用。下面是关于几个类加载器的说明:

  • Bootstrap :一般用本地代码实现,负责加载 JVM 基础核心类库( rt.jar );
  • Extension :从 java.ext.dirs 系统属性所指定的目录中加载类库,它的父加载器是 Bootstrap ;
  • system class loader:又叫应用类加载器,其父类是Extension。它是应用最广泛的类加载器。它从环境变量 classpath 或者系统属性 java.class.path 所指定的目录中记载类,是用户自定义加载器的默认父加载器。
    用户自定义类加载器: java.lang.ClassLoader 的子类
    -父类委托机制是可以修改的,有些服务器就是自定义类加载器优先的。

20.关于Java的一些概念,下面哪些描述是正确的:( )

A.所有的Java异常和错误的基类都是java.lang.Exception, 包括java.lang.RuntimeException
B.通过try … catch … finally语句,finally中的语句部分无论发生什么异常都会得到执行
C.java中所有的数据都是对象
D.Java通过垃圾回收回收不再引用的变量,垃圾回收时对象的finallize方法一定会得到执行
E.Java是跨平台的语言,无论通过哪个版本的Java编写的程序都能在所有的Java运行平台中运行
F.Java通过synchronized进行访问的同步,synchronized作用非静态成员方法和静态成员方法上同步的目标是不同的

答案:
B F

解析:
A:Java中所有错误和异常的父类是java.lang.Throwable
B:基本数据类型不是对象,不能用new的方法获取,但是每个基本数据类型都对应着封装类型,这些封装类型为了解决基本数据类型面向对象用的。
C:Java垃圾回收器负责回收无用对象占据的内存资源,但对象没有使用new获取了一块特殊区域,这块特殊区域的回收使用finallize()
D:Java跨平台是因为有JVM的存在,Java的三个版本的运行需要各自不同的环境。

推荐

大厂笔试内容集合(内有详细解析) 持续更新中....

ProcessOn是一个在线作图工具的聚合平台~

文末

欢迎关注个人微信公众号:Coder编程
欢迎关注Coder编程公众号,主要分享数据结构与算法、Java相关知识体系、框架知识及原理、Spring全家桶、微服务项目实战、DevOps实践之路、每日一篇互联网大厂面试或笔试题以及PMP项目管理知识等。更多精彩内容正在路上~
新建了一个qq群:315211365,欢迎大家进群交流一起学习。谢谢了!也可以介绍给身边有需要的朋友。

文章收录至
Github: https://github.com/CoderMerlin/coder-programming
Gitee: https://gitee.com/573059382/coder-programming
欢迎关注并star~
微信公众号

猜你喜欢

转载自www.cnblogs.com/coder-programming/p/11683851.html