动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

30道初级Java工程师面试题(附答案)

07-21 17:44 253浏览
举报 T字号
  • 大字
  • 中字
  • 小字

面试也是一场考试,面试也像考试一样,目的是检验能力水平和资格。既然也是考试,一定是因人而异的,在java面试中,会根据面试的职位和等级的不同,出现不同难度的面试题和考核标准。这篇文章汇总30道初级java工程师面试题,没有很严格安排好照分是java数据库还是框架的知识整理面试题,而是按照java面试题初级java工程师的难度标准做了汇总整理,希望对初级java工程师有所帮助。

1、什么是 Servlet

答:Servlet 是一种服务器端的 Java 应用程序,具有独立于平台和协议的特性,可以生成动态的 Web 页面。它担当客户请求(Web浏览器或其他HTTP 客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet是位于Web服务器内部的服务器端的java应用程序,与传统的从命令行启动的 Java 应用程序不同,Servlet 由Web服务器进行加载,该 Web 服务器必须包含支持 Servlet 的java虚拟机。

2、Servlet 的生命周期分几个阶段?

答:Servlet 生命周期可以分成四个阶段:加载和实例化、初始化、服务、销毁。当客户第一次请求时,首先判断是否存在 Servlet 对象,若不存在,则由 Web 容器创建对象,而后调用 init()方法对其初始化,此初始化方法在整个 Servlet 生命周期中只调用一次。完成 Servlet 对象的创建和实例化之后,Web 容器会调用 Servlet 对象的service()方法来处理请求。当 Web 容器关闭或者 Servlet 对象要从容器中被删除时,会自动调用 destory()方法。

3、过滤器有哪些作用和用法?

答:对于一个web应用程序来说,过滤器是处于web容器内的一个组件,它会过滤特定请求资源请求信息和响应信息。一个请求来到时,web 容器会判断是否有过滤器与该信息资源相关联,如果有则交给过滤器处理,然后再交给目标资源,响应的时候则以相反的顺序交给过滤器处理,最后再返回给用户浏览器。

常见的过滤器用途主要包括:对用户请求进行统一认证、对用户的访问请求进行记录和审核、对用户发送的数据进行过滤或替换、转换图象格式、对响应内容进行压缩以减少传输量、对请求或响应进行加解密处理、触发资源访问事件等。

4、写出一个冒泡排序

答:

public static void bubbleSort() {
    int arr[] = {-5, 29, 7, 10, 5, 16};
    for (int i = 1; i < arr.length; i++) {
        for (int j = 0; j < arr.length - i; j++) {
            if (arr[j] < arr[j + 1]) {
                int temp;
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    for (int i = 0; i < arr.length; i++) {
        System.out.print(" " + arr[i] + " ");
    }
}

5、写出一个单例的实现(懒加载方式)

答:

class LazySingleton {
    private LazySingleton() {
    }
    private static class SingletonHolder {
        private static LazySingleton instance = new LazySingleton();
    }
    public static LazySingleton getInstance() {
        return SingletonHolder.instance;
    }
}

6、设有一个二维数组 A[m][n],假设A[0][0]存放的位置在 644(10),A[2][2]存放的文职在676(10)每个元素占一个空间,问 A[3][3](10)存放在什么位置? 脚注(10)表示用 10进制表示(C)

A.688           B.678            C.692               D.699

7、下列代码执行结果是(B)

public static void main(String args[]) {
    Thread t = new Thread() {
        public void run() {
            pong();
        }
    };
    t.run();
    System.out.print("ping");
}
static void pong() {
    System.out.print("pong");
}

A.pingpong     B.pongping      C.pingpong和pongping 都有可能

D.都有可能

8、下面程序能正常运行吗?

class NULL {
    public static void haha() {
        System.out.println("haha");
    }
    public static void main(String[] args) {
        ((NULL) null).haha();
    }
}

答:可以正常运行

9、如果去掉了main方法的 static 修饰符会怎样(B)

A.程序无法翻译。

B.程序能正常编译,运行时或抛出 NoSuchMethodError 异常。

C.程序能正常编译,正常运行。

D.程序能正常编译,正常运行一会会立刻退出。

10、下面程序输出的结果是(A)

static boolean foo(char c) {
    System.out.print(c);
    return true;
}
public static void main(String[] args) {
    int i = 0;
    for (foo('A'); foo('B') && (i < 2); foo('C')) {
        i++;
        foo('D');
    }
}

A.ABDCBDCB    B.ABDCDBCB     C.ABDBCDCB    D.ABDBCDCB

11、下面哪些是Thread 类的方法(A,B,D)

A.start()          B.run()          C.exit()          D.getPriority()

12、下列关于Thread 类提供的线程控制的方法中,错误的一项是(A)

A.在线程A中执行线程B的 join()方法,则线程A等待直到B执行完成。

B.线程A通过调用 interrupt()方法来中断其阻塞状态。

C.currentThread()方法返回当前线程的引用。

D.若线程A调用方法isAlive()返回为true,则说明A正在执行中。

13、设String s1 =”Topwalk”;String s2 =”Company”; 以 下 方 法 可 以 得 到 字 符 串“TopwalkCompany” 有:(ABD)

A.s2+s1;           B.s1.concat(s2);          C.s1.append(s2);

D.StringBuffer buf = new StringBuffer(s1); buf.append(s2);

14、String a = new String(“1”+”2”)最终创建了几个对象(D)

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

15、int 类型占用(B)个字节?

A.2                 B.4              C.8                 D.16

16、下列那一条语句可以实现快速的复制一张数据库表(C)

A.select * into b from a where 1<>1;

B.creat table b as select * from a where 0=1;

C.insert into b as select * from a where 1<>1;

D.insert into b select * from a where 1<>1;

17、属于单例模式的特点的是(ACD)

A.提供了对唯一实现的受控访问

B.允许可变数目的实例

C.单例模式的抽象层会导致单例类扩展有和那的困难

D.单例模式很容易导致数据库的连接池溢出

18、选择Oracle的分页语句的关键字(A)

A.rownum        B.limit          C.TOP          D.pagenum

19、选出可以查询出所有的表和视图的方法:(B)

A.preparedStatement.getMetaData().getTables(***);

B.connection.getMetaData().getTables(***);

C.result.getMetaData().getTables(***);

D..DiverManager.getMeta().getTables(***);

20、可以监控到数据库变化的机制有哪些(ABC)

A.存储过程      B.数据库日志      C.触发器        D.物化视图

21、清空表所有数据的性能最优的语句是哪一个(B)

A.delete from tsuer;

B.truncate table tuser;

C.drop table tuser;

D.delete tuser;

22、文件对外共享的协议有哪几个(AB)

A.FTP          B.Windows 共享          C.TCP         D.SSH

23、关于Java中特殊符号的用法正确的是(AD)

A.判断一个字符串 str 中是否含有“.”,可以根据 str.indexOf(“.”)是否等于-1 判断。

B.判断一个字符串 str 是否含有“.”,可以根据 str.indexOf(“\\.”)是否等于-1 判断。

C.根据“.”分隔字符串 str 的写法可以是 str.split(“\\.”)

D.根据“.”分隔字符串 str 的写法可以是 str.split(“.”)

24、根据以下代码回答问题,放置什么方法在第 6 行,会引起编译错误的是(B)

1.class Super {
2.    public float getNum() {
3.    }
4.}
5.public class Sub extends Super {
6.
7.}

A.public float getNum{return 4.0f;}

B.public void getNum(){}

C.public void getNum(double d()){}

D.public double getNum(float d){return 4.0d;}

25、根据以下代码回答问题:输出结果是什么?(B)

class Foo {
    public static void main(String args[]) {
        try {
            return;
        } finally {
            System.out.println("Finally");
        }
    }
}

A.print out nothing;          B.print out “Finally”

C.编译错误                   D.以上都不对

26、根据以下代码回答问题,请问输出 i 和 j 的值是多少(D)

int i = 1, j = 10;
do {
    if (i++ > --j) continue;
} while (i < 5);

A.i=6 j=5        B.i=5 j=5         C.i=6 j=4         D.i=5 j=6

27、请问以下是java关键字的有?(CD)

A.run          B.low          C.import           D.implements

28、由甲地到乙地有一天线路的巴士,全程行驶时间 42 分钟,到达总站后,司机至少休息 10 分钟,巴士就掉头行驶,如果这条线路甲,乙两边总站每隔 8 分钟都发一辆(不必是同一时间),则这条线路至少需要是多少俩巴士(C)

A.15             B.14              C.13              D.12

29、编号为 1 至 10 的 10 个果盘中,每盘都盛有水果,共盛放 100 个。其中第一盘里有 16 个,并且编号相邻的三个果盘中水果是的和都相等,求第 8 盘中水果最多可能有几个(A)

A.11          B.12          C.13               D.14

30、假设一个池塘,里面有无穷多的水,现在有 2 个空水壶,容积分别是 5 升和 6 升,问如何用这两只水壶取得 3 升水。

答:5L桶打满水,全部倒入6L桶;

5L桶再次打满,往6L桶倒水至其满。此时5桶留下4L水;

6L桶清空,将5L桶中的4L水倒入6L桶;

5L桶打满水,往6L桶倒水至其满,则5L桶中得3L水。

以上就是今天为各位java学习者整理的初级java工程师面试题,共有30道,涉及到不少java的相关知识,不仅有java专业上的知识,还有考察程序员逻辑思维能力的题目,还希望大家可以根据这些题目对自己的知识框架有更清晰的认识,起到查漏补缺的作用,顺利通过初级java工程师的面试。

0人推荐
共同学习,写下你的评论
0条评论
妄想没有错
程序员妄想没有错

5篇文章贡献24586字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

五分钟读懂UML类图

江湖人称小李白12-10 10:41

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消