关于java:持续输出面试题系列之综合面试题一

选择题

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

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

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

解析: A,栈的特点是先进后出,比拟笨的办法是一个个的试:
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个档次
A. 物理层 数据链路层 传输层 网络层 会话层 表示层 应用层
B. 物理层 数据链路层 会话层 网络层 传输层 表示层 应用层
C. 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层
D. 网络层 传输层 物理层 数据链路层 会话层 表示层 应用层

解析: C

当客户度敞开一个从连接池中获取的连贯, 会产生上面哪一种状况
A. 连贯不会敞开, 只是简略地归还给连接池
B. 连贯被敞开 , 但又被从新关上并归还给连接池
C. 连贯永久性敞开

解析:A

在UML 提供的图中 , 用于按数据程序形容对象间的交互的是: C
A. 合作图
B. 网络图
C. 序列图
D. 状态图

解析: C

简答题:

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

  • char是一个定长字段,如果申请了char(10)的空间,那么无论理论存储多少内容。该字段都占用10个字符
  • varchar是变长的,也就是说申请的只是最大长度,占用的空间为理论字符长度+1,最初一个字符存储应用了多长的空间。

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

编程题:

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

package com.hcx.security.core.validate.code;

import java.util.Iterator;
import java.util.TreeSet;

public class NumberRandom {
    String[] stra = { "1", "2", "2", "3", "4", "5" };
    int n = stra.length;
    boolean[] visited = new boolean[n];
    String result = "";
    TreeSet<String> ts = new TreeSet<String>();
    int[][] a = new int[n][n];

    private void searchMap() {
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if (i == j) {
                    a[i][j] = 0;
                } else {
                    a[i][j] = 1;
                }
            }
        }
        // 3 和 5 不能相连
        a[3][5] = 0;
        a[5][3] = 0;
        // 开始遍历
        for (int i = 0; i < n; i++) {
            search(i);
        }
        Iterator<String> it = ts.iterator();
        while (it.hasNext()) {
            String str = it.next();
            // 4 不能在第三位
            if (str.indexOf("4") != 2) {
                System.out.println(str);
            }
        }
    }

    private void search(int startIndex) {
        visited[startIndex] = true;
        result = result + stra[startIndex];
        if (result.length() == n) {
            ts.add(result);
        }
        for (int j = 0; j < n; j++) {
            if (a[startIndex][j] == 1 && visited[j] == false) {
                search(j);
            } else {
                continue;
            }
        }
        // 一个 result 完结后排掉最初一个,寻找别的可能性,若没有的话,则持续向前排掉以后最初一个
        result = result.substring(0, result.length() - 1);
        visited[startIndex] = false;
    }

    public static void main(String[] args) {
        new NumberRandom().searchMap();
    }
}

评论

发表回复

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

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