Java一年面试总结

小小又去面试了,今日面试总结如下

第一题

数据库有a如下的表,表构造如下

员工编号 职务 组织编码
employeeID JobTitle OrganizationCode

要求,编写部门员工数>10人的员工
编写相应的SQL语句
答复

select * from a group by  OrganizationCode  having count(employeeID) > 10;

第二题

在如下的源代码文件中,那个是正确的类定义

A

public class test {
    public int x = 0;
    public test(int x){
        this.x = x;
    }
}

B

public class Test{
    public int x = 0;
    public Test(int x){
        this.x = x;
    }
}

C

public class Test extends T1, T2 {
    public int x = 0;
    public Test(int x){
        this.x = x;
    }
}

D

public class Test extends T1 {
    public int x = 0;
    public Test(int x){
        this.x = x;
    }
}

E

protected class Test extends T2{
    public int x = 0;
    public Test(int x){
        this.x = x;
    }
}

答案:BDE

第三题

已知如下的代码,

switch(m){
    case 0: System.out.println("0");
    case 1: System.out.println("1");
    case 2: System.out.println("2");
    case 3: System.out.println("3");break;
    default: System.out.println("Other Condition");
}

A: 0
B: 1
C: 2
D: 3
E: 4
F: None

答案 F

第四题

面向对象的根本个性:
封装,继承,多态。

封装

封装是指暗藏对象的属性和细节,仅仅对外公开接口,例如封装成一个Class类。

继承

子类继承父类的办法和行为。例如Java中的继承关键字Extends。

多态

一个类有多种状态,例如Java中定义的接口,以及抽象类。

第五题

kibana反对哪些图形的生成
反对生成线形图、区域图和条形图

第六题

Es搜寻速度为什么快于MySql
首先Es应用的是B+Tree索引,如下图所示

es应用的是倒排序索引,如下图所示

TreeIndex以树的模式保留在内存中,应用FST+压缩公共前缀的办法节俭了内存,TermIndex查问到Term Dictionary 所在的block,去磁盘上查找Term缩小I/O次数。

第七题

Redis和MySql有什么区别
Redis是key类型的NoSql,不反对简单的查问,单线程事物只满足隔离性,writer操作不能满足长久化,占用内存很多,偶然会把数据写入swap中。
MySql是合乎笛卡尔积的关系型数据库,反对绝大多数的Sql,满足ACID以及各种隔离级别,数据能保障长久化,数据可能保留在磁盘中。

第八题

什么是ACID
ACID别离为原子性,一致性,隔离性,持久性。

第九题

客户申请拜访HTML页面,与拜访Servlet有什么异同?
A 雷同,都应用HTTP协定。
B 区别,前者 Web 服务器间接返回 HTML 页面,后者 Web 服务器间接调用 Servlet 办法,由 Servlet 动静生成 HTML 页面。
C 区别: 后者须要在 Web.xml 中配置 URL 门路。
D 区别:前者应用 HTTP 协定,后者应用 RMI 协定。

答案 AD

第十题

i++ 和 ++i 有什么区别
i++ 先赋值再相加
++i 先相加再赋值

第十一题

哪些类能够用于解决 Unicode 编码

A:  InputStreamReader
B:BufferedReader
C:Writer
D:PipedInputStream
 

答案: A

四个API如下

A、

InputStreanReader的构造函数:
InputStreamReader(InputStream in)
          创立一个应用默认字符集的 InputStreamReader。
InputStreamReader(InputStream in, Charset cs)
          创立应用给定字符集的 InputStreamReader。
InputStreamReader(InputStream in, CharsetDecoder dec)
          创立应用给定字符集解码器的 InputStreamReader。
InputStreamReader(InputStream in, String charsetName)
          创立应用指定字符集的 InputStreamReader。

B、

BufferedReader的构造函数:
BufferedReader(Reader in)
          创立一个应用默认大小输出缓冲区的缓冲字符输出流。
BufferedReader(Reader in, int sz)
          创立一个应用指定大小输出缓冲区的缓冲字符输出流。

C、

Writer的构造函数:
protected    Writer()
          创立一个新的字符流 writer,其要害局部将同步 writer 本身。
protected    Writer(Object lock)
          创立一个新的字符流 writer,其要害局部将同步给定的对象。

D、

PipedInputStream的构造函数:
PipedInputStream()
          创立尚未连贯的PipedInputStream。
PipedInputStream(int pipeSize)
          创立一个尚未连贯的PipedInputStream,并对管道缓冲区应用指定的管道大小。
PipedInputStream(PipedOutputStream src)
          创立PipedInputStream,使其连贯到管道输入流src。
PipedInputStream(PipedOutputStream src, int pipeSize)
          创立一个PipedInputStream,使其连贯到管道输入流src,并对管道缓冲区应用指定的管道大小。

第十二题

简略写下冒泡算法

private int[] bubbleSort(int[] array) {
    int temp;
    for (int i = 0; i < array.length - 1; i++) {
        boolean Flag = false; // 是否产生替换。没有替换,提前跳出外层循环
        for (int j = 0; j < array.length - 1 - i; j++) {
            if (array[j] > array[j + 1]) {
                temp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = temp;
                Flag = true;
            }
        }
        if (!Flag)
        {
            break;
        }
    }
    return array;
}

第十三题

String s = new String(“xyz”) 创立了几个String Object
A 1
B 2
C 3
D 4

答案 A

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理