Java面试-企业实战面试题1

一个人想着一个人 提交于 2019-11-27 05:43:28

1. 选择题

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

1.2 一个栈的输入序列为 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

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

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

1.5 以下哪些不是 javaScript 的全局函数( C)
A. eval
B. escape
C. setTimeout
D. parseFloat

1.6 你使用 mkdir 命令创建一个临时的文件夹/tmp/aaa, 并将一些文件复制其中,使用完
后要删除/mnt/tmp 文件夹及其中的所有文件, 应该使用命令(B)
A. rm /tmp/aaa
B. rm –r /tmp/aaa
C. rmdir –r /tmp/aaa
D. rmdir /tmp/aaa

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

1.8 下面有关系统并发访问数估算数据哪个最有效: (B)
A. 高峰时段日处理业务量 100000
B. 高峰时段平均每秒请求数 80
C. 同时在线用户 100
D. 平均每秒用户请求 50

1.9 不同级别的用户对同一对象拥有不同的访问权利或某个客户端不能直接操作到某个
对象,但有必须和那个对象有所互动, 这种情况最好使用什么设计模式.( D)
A.Bridge 模式
B. Fa?ade 模式
C. Adapter 模式
D. Proxy 模式

1.10 下面哪个 Set 是排序的? ©
A. LinkedHashSet
B. HashSet
C. TreeSet
D. AbstractSet

2. 编程题

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

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();
} }

2.2 一个数如果恰好等于它的因子之和, 这个数就称为”完数”. 例如 6 = 1+2+3。编程找出
1000 以内的所有完数。

 public class wsTest {
public static void main(String[] args) {
for(int m=2;m<1000;m++){
int s=0;
for(int i=1;i<m;i++){
if((m%i)==0)
s+=i;
}
if(s==m){
System.out.print(m+" its factors are:");
for(int j=1;j<m;j++)
{
if((m%j)==0){
System.out.print(j);
System.out.print(" ");
} }
System.out.println();
} } } }

结果:
6 its factors are:1 2 3
28 its factors are:1 2 4 7 14
496 its factors are:1 2 4 8 16 31 62 124 248

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!