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

简介: 冒死潜入某个外包公司获得的珍贵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 一个默默努力的菜鸟程序员,我们下期再见~


目录
相关文章
|
3月前
|
存储 Java 编译器
刷完一千道java笔试题的常见题目分析
这篇文章是关于刷完一千道Java笔试题后的常见题目分析,涵盖了Java基础知识点,如标识符命名规则、抽象类与接口的区别、String类的equals方法、try-catch-finally块的执行逻辑、类与实例方法的区别、this与super关键字的用法、面向对象的基本概念、重写与重载的原则等,并建议结合JVM内存结构图加深理解。
刷完一千道java笔试题的常见题目分析
|
5月前
|
前端开发 JavaScript Java
计算机Java项目|游戏美术外包管理信息系统
计算机Java项目|游戏美术外包管理信息系统
|
6月前
|
Dubbo Java 应用服务中间件
Java外包是如何进入阿里的熬夜整理出Java后端学习路线
Java外包是如何进入阿里的熬夜整理出Java后端学习路线
|
6月前
|
SQL Java 数据库连接
Java笔试题
Java笔试题
|
SQL 存储 数据管理
Java经典笔试题—day13
Java经典笔试题—day13
113 0
|
机器学习/深度学习 SQL 关系型数据库
Java经典笔试题—day14
Java经典笔试题—day14
Java经典笔试题—day12
Java经典笔试题—day12
|
算法 Java 数据库
Java经典笔试题—day11
Java经典笔试题—day11
|
存储 安全 Java
Java经典笔试题—day10
Java经典笔试题—day10
182 0
Java经典笔试题—day09
Java经典笔试题—day09
101 0