077期综合面试题系列一

2020-09-07 22:18 Java最全面试题库

  点击上方蓝色字体,关注我吧

2020年百日百更原创Java最全面试题库之往期回顾

【000期】Java最全面试题库思维导图

【020期】JavaSE系列面试题汇总(共18篇)

【028期】JavaWeb系列面试题汇总(共10篇)

【042期】JavaEE系列面试题汇总(共13篇)

【049期】数据库系列面试题汇总(共6篇)

【053期】中间件系列面试题汇总(共3篇)

【065期】数据结构与算法面试题汇总(共11篇)

【076期】分布式面试题汇总(共10篇)


开篇介绍

大家好,我是Java最全面试题库提裤姐,今天这篇是综合面试题系列的第一篇,主要总结了各个大厂的面试题相关的问题;在后续,会沿着第一篇开篇的知识线路一直总结下去,做到日更!如果我能做到百日百更,希望你也可以跟着百日百刷,一百天养成一个好习惯。



Q:

选择题

在Java  中,负责对字节代码解释执行的是 B
A. 应用服务器
B. 虚拟机
C. 垃圾回收器
D. 编译器

解析:Java程序从源文件创建到程序运行要经过两个步骤:
①编译:源文件由编译器编译成字节码(ByteCode)  
②运行:字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言( "semi-interpreted" language)

一个栈的输入序列为  1 2 3 4 5,  则下列序列中不可能是栈输出的序列的是 A
A. 5 4 1 3 2
B. 2 3 4 1 5
C. 1 5 4 3 2
D. 2 3 1 4 5

解析:栈的特点是先进后出,比较笨的方法是一个个的试:
B:先进1和2,2出栈进入3,3出栈,进入4,4出栈,1再出栈,5进,5出栈,即23415
C:1进,1出,2345进,然后5432出,就是15432
D:进1和2,2出栈进入3,3出栈,进入4,在进入5,5出,4在出,就是23145

下列那一个选项按照顺序包括了OSI 模型的 7个层次 C
A. 物理层 数据链路层 传输层 网络层 会话层 表示层 应用层
B. 物理层 数据链路层 会话层 网络层 传输层 表示层 应用层
C. 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层
D. 网络层 传输层 物理层 数据链路层 会话层 表示层 应用层

当客户度关闭一个从连接池中获取的连接,  会发生下面哪一种情况 A
A. 连接不会关闭, 只是简单地归还给连接池
B. 连接被关闭 , 但又被重新打开并归还给连接池
C. 连接永久性关闭

在UML 提供的图中 ,  用于按数据顺序描述对象间的交互的是C
A. 协作图
B. 网络图
C. 序列图
D. 状态图


Q:

简答题

MySQL中的varchar和char有什么区别?

  • char是一个定长字段,假如申请了char(10)的空间,那么无论实际存储多少内容。该字段都占用10个字符

  • varchar是变长的,也就是说申请的只是最大长度,占用的空间为实际字符长度+1,最后一个字符存储使用了多长的空间。

在检索效率上来讲,char > varchar,因此在使用中,如果确定某个字段的值的长度,可以使用char,否则应该尽量使用varchar。例如存储用户MD5加密后的密码,则应该使用char。


Q:

编程题

用  1,2 , 2 ,3, 4 ,5  这 6 个数字,  用 Java写一个main 函数,  打印出所有不同的排列,  
如:512234, 412345  等,  要求: “4” 不能在第三位, “ 3” 与” 5” 不能相连

 1package com.hcx.security.core.validate.code;
2
3import java.util.Iterator;
4import java.util.TreeSet;
5
6public class NumberRandom {
7    String[] stra = { "1""2""2""3""4""5" };
8    int n = stra.length;
9    boolean[] visited = new boolean[n];
10    String result = "";
11    TreeSet<String> ts = new TreeSet<String>();
12    int[][] a = new int[n][n];
13
14    private void searchMap() {
15        for (int i = 0; i < n; i++) {
16            for (int j = 0; j < n; j++) {
17                if (i == j) {
18                    a[i][j] = 0;
19                } else {
20                    a[i][j] = 1;
21                }
22            }
23        }
24        // 3 和 5 不能相连
25        a[3][5] = 0;
26        a[5][3] = 0;
27        // 开始遍历
28        for (int i = 0; i < n; i++) {
29            search(i);
30        }
31        Iterator<String> it = ts.iterator();
32        while (it.hasNext()) {
33            String str = it.next();
34            // 4 不能在第三位
35            if (str.indexOf("4") != 2) {
36                System.out.println(str);
37            }
38        }
39    }
40
41    private void search(int startIndex) {
42        visited[startIndex] = true;
43        result = result + stra[startIndex];
44        if (result.length() == n) {
45            ts.add(result);
46        }
47        for (int j = 0; j < n; j++) {
48            if (a[startIndex][j] == 1 && visited[j] == false) {
49                search(j);
50            } else {
51                continue;
52            }
53        }
54        // 一个 result 结束后排掉最后一个,寻找别的可能性,若没有的话,则继续向前排掉当前最后一个
55        result = result.substring(0, result.length() - 1);
56        visited[startIndex] = false;
57    }
58
59    public static void main(String[] args) {
60        new NumberRandom().searchMap();
61    }
62}











“一个专注于分享各类Java面试题的号主,长按二维码关注我吧 ”

祝大家都能拿到心仪的offer!







长按识别二维码

等风也等你



文章都看完了不点个 吗

本文章转载自公众号:tikujie

首页 - Java 相关的更多文章: