冒死潜入某个外包公司获得的珍贵Java基础笔试题(附答案)

Posted manor的大数据奋斗之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒死潜入某个外包公司获得的珍贵Java基础笔试题(附答案)相关的知识,希望对你有一定的参考价值。

前言

大家好,我是程序员manor,上次货拉拉面试太打击心情,于是我决定找些小boss打打让自己愉悦起来,于是就有了下面👇这篇Java基础面试笔试题,
文章末尾给出答案

JAVA基础笔试题目

一、单选题( 共8题,每题2分 )

1、下列语句哪一个正确( )

A. Java程序经编译后会产生machine code

B. Java程序经编译后会产生byte code

C. Java程序经编译后会产生DLL

D. 以上都不正确

2、下列说法正确的有( )

A. class中的constructor不可省略

B. constructor必须与class同名,但方法不能与class同名

C. constructor在一个对象被new时执行

D. 一个class只能定义一个constructor

3、提供Java存取数据库能力的包是( )

A.java.sql

B.java.awt

C.java.lang

D.java.swing

4、下列运算符合法的是( )

A.&&

B.<>

C.if

D.:=

5、执行如下程序代码

a=0;c=0; do{

–c;

a=a-1;

}

while(a>0);

后,c的值是( )

A.0

B.1

C.-1

D.死循环

6、下列哪一种叙述是正确的( )

A.abstract修饰符可修饰字段、方法和类

B.抽象方法的body部分必须用一对大括号{ }包住

C.声明抽象方法,大括号可有可无

D.声明抽象方法不可写出大括号

7、在Java中,表示换行符的转义字符是( )

A \\n

B \\f

C „n?6?8

D \\dd

8、HttpServletRequest对象的( )方法能够获取一个表单参数的值:

A. getQuaryString()

B. getPathInfo()

C. getParameter()

D. getAttribute()

二、多选题( 共7题,每题4分 )

1、下列标识符不合法的有( )

A.new

B.$Usdollars

C.1234

D.car.taxi

2、下列说法错误的有( )

A.数组是一种对象

B.数组属于一种原生类

C.int number=[]={31,23,33,43,35,63}

D.数组的大小可以任意改变

3、不能用来修饰interface的有( )

A.private

B.public

C.protected

D.static

4、下列说法错误的有( )

A. 在类方法中可用this来调用本类的类方法

B. 在类方法中调用本类的类方法时可直接调用

C. 在类方法中只能调用本类中的类方法

D. 在类方法中绝对不能调用实例方法

5、下列说法错误的有( )

A. Java面向对象语言容许单独的过程与函数存在

B. Java面向对象语言容许单独的方法存在

C. Java语言中的方法属于类中的成员(member)

D. Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同

6、Servlet API 由哪两个包组成?( )

A. javax.servlet

B. javax.servlet.jsp

C. javax.servlet.http

D. java.servlet

7、 关于异常处理机制的叙述哪些正确 ( )

A. catch部分捕捉到异常情况时,才会执行finally部分

B. 当try区段的程序发生异常时,才会执行catch区段的程序

C. 不论程序是否发生错误及捕捉到异常情况,都会执行finally部分

D. 以上都是

三、简答题( 共4题,每题10分 )

1、简单分析Java语言中的final, finally, finalize三者的区别。

2、Overload(方法重载)和Override(方法重写)的区别。Overloaded的方法是否可以改变返回值的类型?

3、abstract class(抽象类)和interface(接口)有什么区别?

4、ArrayList Vector LinkedList 的存储性能好特性,HashMap和Hashtable的区别。

四、综合题( 共1题,共16分 )

1、编写程序,计算任意两个日期之间间隔的天数。

看看你能得多少分?


------------------------------------------我是答案分割线-----------------------------------------------------------------------

JAVA基础笔试题目

一、单选题( 共8题,每题2分 )

1、下列语句哪一个正确(B )
A. Java程序经编译后会产生machine code
B. Java程序经编译后会产生byte code
C. Java程序经编译后会产生DLL
D. 以上都不正确

2、下列说法正确的有( C )
A. class中的constructor不可省略
B. constructor必须与class同名,但方法不能与class同名
C. constructor在一个对象被new时执行
D. 一个class只能定义一个constructor

3、提供Java存取数据库能力的包是( A )
A.java.sql
B.java.awt
C.java.lang
D.java.swing

4、下列运算符合法的是( A )
A.&&
B.<>
C.if
D.:=

5、执行如下程序代码
a=0;c=0; do{
–c;
a=a-1;
}
while(a>0);
后,c的值是(C )
A.0
B.1
C.-1
D.死循环

6、下列哪一种叙述是正确的( D )
A.abstract修饰符可修饰字段、方法和类
B.抽象方法的body部分必须用一对大括号{ }包住
C.声明抽象方法,大括号可有可无
D.声明抽象方法不可写出大括号

7、在Java中,表示换行符的转义字符是(A )
A \\n
B \\f
C „n‟
D \\dd

8、HttpServletRequest对象的( C )方法能够获取一个表单参数的值:
A. getQuaryString()
B. getPathInfo()
C. getParameter()
D. getAttribute()

二、多选题( 共7题,每题4分 )
1、下列标识符不合法的有(ACD )
A.new
B.$Usdollars
C.1234
D.car.taxi

2、下列说法错误的有( BCD )
A.数组是一种对象
B.数组属于一种原生类
C.int number=[]={31,23,33,43,35,63}
D.数组的大小可以任意改变

3、不能用来修饰interface的有(ACD )
A.private
B.public
C.protected
D.static

4、下列说法错误的有( ACD )
A. 在类方法中可用this来调用本类的类方法
B. 在类方法中调用本类的类方法时可直接调用
C. 在类方法中只能调用本类中的类方法
D. 在类方法中绝对不能调用实例方法

5、下列说法错误的有( ABC )
A. Java面向对象语言容许单独的过程与函数存在
B. Java面向对象语言容许单独的方法存在
C. Java语言中的方法属于类中的成员(member)
D. Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同

6、Servlet API 由哪两个包组成?(AC )
A. javax.servlet
B. javax.servlet.jsp
C. javax.servlet.http
D. java.servlet

7、 关于异常处理机制的叙述哪些正确 ( BC )
A. catch部分捕捉到异常情况时,才会执行finally部分
B. 当try区段的程序发生异常时,才会执行catch区段的程序
C. 不论程序是否发生错误及捕捉到异常情况,都会执行finally部分
D. 以上都是

三、简答题( 共4题,每题10分 )

1、简单分析Java语言中的final, finally, finalize三者的区别。
final:修饰符(关键字)有三种用法:修饰类、变量和方法。
修饰类时,意味着它不能再派生出新的子类,即不能被继承,因此它和 abstract 是反义词。修饰变量时,该变量使用中不被改变,必须在声明时给定初值,在引用中只能读取不可修改,即为常量。
修饰方法时,也同样 只能使用,不能在子类中被重写。

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

finalize:Object 类中定义的方法,Java 中允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在销毁对象时调用的,通过重写 finalize() 方法可以整理系统资源或者执行其他清理工作。

2、Overload(方法重载)和Override(方法重写)的区别。Overloaded的方法是否可以改变返回值的类型?
Overload是重载的意思,
Override是覆盖的意思,也就是重写。

Override覆盖要注意以下的几点:
1.覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;

2.覆盖的方法的返回值必须和被覆盖的方法的返回值一致;

3.被覆盖的方法不能为private,
否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。

4.子类覆盖父类方法,方法访问权限必须大于等于父类

5.覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;

overload要注意以下的几点:
1.重载只和参数列表有关。例如,不同的参数类型,不同的参数个数,不同的参数顺序
2.不能通过访问权限、返回类型、抛出的异常进行重载;
3.方法的异常类型和数目不会对重载造成影响;
4.对于继承来说,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。

3、abstract class(抽象类)和interface(接口)有什么区别?
主要有以下6点区别:
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
抽象类中的抽象方法的访问类型可以是public,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
5.抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。
6. 一个类可以实现多个接口,但只能继承一个抽象类

4、ArrayList Vector LinkedList 的存储性能好特性,HashMap和Hashtable的区别。
ArrayList Vector:以数组的方式存储,增、删慢,查、改快
ArrayList:线程不安全,速度快
Vector:线程安全,速度慢(synchoronized)
LikedList: 以单链表的方式存储,增、删快,查、改慢
HashMap与Hashtable都实现的Map接口,
HashTable线程安全,HashMap线程不安全。

四、综合题( 共1题,共16分 )

1、编写程序,计算任意两个日期之间间隔的天数。
package com.ct;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

/**
 * @author ChinaManor
 * #Description demo
 * #Date: 10/8/2021 22:56
 */
public class demo {
    public static void main(String[] args) {
        System.out.println("请输入第一个日期:");
        String date = new Scanner(System.in).next();
        System.out.println("请输入第二个日期:");
        String date2 = new Scanner(System.in).next();

        count(date,date2);

    }

    private static void count(String date, String date2) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date d1 = sdf.parse(date);
            Date d2 = sdf.parse(date2);

            long time = d1.getTime();
            long time2 = d2.getTime();
            long day = (time - time2) / 1000 / 60 / 60 / 24;
            System.out.println(day);
        } catch (ParseException e) {
           System.err.println("日期错误!!");
        }
    }

}

总结

我是manor 一个默默努力的菜鸟程序员,我们下期再见~

以上是关于冒死潜入某个外包公司获得的珍贵Java基础笔试题(附答案)的主要内容,如果未能解决你的问题,请参考以下文章

某大型数据公司的笔试题

一道简单的 Java 笔试题,但值得很多人反思

各大公司笔试题及答案

软件公司笔试题

Java基础阶段笔试题2

Java基础笔试题