1、软件开放性面试题开放型面试题答题人:_ 答题时间:_一、 简答题:1. 谈谈你对spring,hibernate的理解?2. 你在项目中用到了哪些设计模式?分别都用在什么场景?3. xml有哪些解析技术?区别是什么?4. 多线程有几种表示方法,都是什么?同步有几种实现方法,都是什么?5. 深克隆和浅克隆的区别?6. 你在项目中最常用的集合有哪些,区别是什么?7. 试说说socket通信的原理(客户端和服务器端)?8. 邮件传输协议有哪些?pop39. 存储过程和函数的区别?存储过程一般没有返回值函数一定有返回值10. 事务是什么?它的原理是哪4个?原子性、一致性、分离性、持久性11. SELE
2、CT * FROM TABLE和SELECT * FROM TABLE WHERE NAME LIKE % AND ADDR LIKE % AND (1_ADDR LIKE % OR 2_ADDR LIKE % OR 3_ADDR LIKE % OR 4_ADDR LIKE % ) 的检索结果为何不同?12. 链表的特点有哪些? 插入删除快,检索慢13. 在一个长度为n的顺序表中删除第i个元素,要移动几个元素?如果要在第i个元素前插入一个元素,要后移几个元素? n-i,n-i+114. 你常用的排序算法有哪些,举例说明对5个数字进行排序。你认为对中文排序该如何实现? 冒泡,插入,选择,希尔,快
3、速15. 你做过权限系统吗?如果是你设计权限系统,你会怎么设计? 过滤器二、 编程题:1. 求出前 1000 个素数。2. 从D盘读取一个xml文件,并将其解析为java中的一个对象,例子自理。3. 输入一个二叉树,如何从叶子节点向上逐层打印?比如二叉树如下 1 2 34 5 6 7程序打印:4 5 6 7 2 3 1一,冒泡排序:package com.sort;import java.util.Random;public class No1Maopao public static void main(String args) Random rd = new Random();/生成随即数组
4、 int src = new int10; for(int i=0;i10;i+) srci=rd.nextInt(100); /排序前打印数组所有元素 for(int i:src) System.out.println(i); System.out.println(-可爱的分割线-); src = sort(src);/排序后打印数组所有元素 for(int i:src) System.out.println(i); public static int sort(int src) for (int i = 0; i src.length; i+) for(int j=i;jsrc.lengt
5、h;j+) if(srcjsrci) int temp = srcj; srcj=srci; srci=temp; return src; 二、选择排序:package com.sort;import java.util.Random;public class No2XuanZhe public static void main(String args) Random rd = new Random(); int src = new int10; for (int i = 0; i 10; i+) srci = rd.nextInt(100); for (int i : src) System
6、.out.println(i); System.out.println(-可爱的分割线-); src = sort(src); for (int i : src) System.out.println(i); public static int sort(int src) int min; for (int i = 0; i src.length; i+) min = srci; for (int j = i + 1; j src.length; j+) if (srcj min) min = srcj; int temp = srci; srci = srcj; srcj = temp; r
7、eturn src; 三、插入排序:package com.sort;import java.util.Random;public class No3ChaRu public static void main(String args) Random rd = new Random(); int src = new int10; for (int i = 0; i 10; i+) srci = rd.nextInt(100); for (int i : src) System.out.println(i); System.out.println(-可爱的分割线-); src = sort(src
8、); for (int i : src) System.out.println(i); public static int sort(int src) int in, out; for (in = 1; in 0 & srcout - 1 = temp) srcout = srcout - 1; -out; srcout = temp; return src; 四、希尔排序:package com.sort;import java.util.Random;public class No4Xier public static void main(String args) Random rd =
9、new Random(); int src = new int10; for (int i = 0; i 10; i+) srci = rd.nextInt(100); for (int i : src) System.out.println(i); System.out.println(-可爱的分割线-); src = sort(src); for (int i : src) System.out.println(i); public static int sort(int src) int len = src.length; int temp, i, j; int h = 1; while
10、 (h 0) for (i = h; i h - 1 & srcj - h = temp) srcj = srcj - h; j -= h; srcj = temp; h = (h - 1) / 3; return src; 五、快速排序:public class No5Kuaisu public static void quickSort(int array) quickSort(array, 0, array.length - 1); private static void quickSort(int array, int low, int high) if (low high) int
11、p = partition(array, low, high); quickSort(array, low, p - 1); quickSort(array, p + 1, high); private static int partition(int array, int low, int high) int s = arrayhigh; int i = low - 1; for (int j = low; j high; j+) if (arrayj s) i+; swap(array, i, j); swap(array, +i, high); return i; private sta
12、tic void swap(int array, int i, int j) int temp; temp = arrayi; arrayi = arrayj; arrayj = temp; public static void main(String args) Random rd = new Random(); int src = new int10; for (int i = 0; i 10; i+) srci = rd.nextInt(100); for (int i : src) System.out.println(i); System.out.println(-可爱的分割线-);
13、 quickSort(src); for (int i : src) System.out.println(i); System.out.println(-可爱的分割线-); 二叉树public class TestTree public static void main(String args) Node root = new Node(); root.setNodeText(1); Node leftNode = new Node(); leftNode.setNodeText(2); leftNode.setParentNode(root); Node rightNode = new N
14、ode(); rightNode.setNodeText(3); rightNode.setParentNode(root); root.setLeftNode(leftNode); root.setRightNode(rightNode); Node leftNode2 = new Node(); leftNode2.setNodeText(4); leftNode2.setParentNode(leftNode); Node rightNode2 = new Node(); rightNode2.setNodeText(5); rightNode2.setParentNode(leftNo
15、de); leftNode.setLeftNode(leftNode2); leftNode.setRightNode(rightNode2); Node leftNode3 = new Node(); leftNode3.setNodeText(6); leftNode3.setParentNode(rightNode); Node rightNode3 = new Node(); rightNode3.setNodeText(7); leftNode3.setParentNode(rightNode); rightNode.setLeftNode(leftNode3); rightNode
16、.setRightNode(rightNode3); /printLeaf(root.getLeftNode(),root.getRightNode(); printLeaf(root); System.out.println(*); zPrintLeaf(root); System.out.println(*); hPrintLeaf(root); /前序 public static void printLeaf(Node root) System.out.print(root.getNodeText(); if(root.getLeftNode()!=null) printLeaf(roo
17、t.getLeftNode(); if(root.getRightNode()!=null) printLeaf(root.getRightNode(); /中序 public static void zPrintLeaf(Node root) if(root.getLeftNode()!=null) zPrintLeaf(root.getLeftNode(); System.out.print(root.getNodeText(); if(root.getRightNode()!=null) zPrintLeaf(root.getRightNode(); /后序 public static
18、void hPrintLeaf(Node root) if(root.getLeftNode()!=null) hPrintLeaf(root.getLeftNode(); if(root.getRightNode()!=null) hPrintLeaf(root.getRightNode(); System.out.print(root.getNodeText(); class Node protected String nodeText; protected Node parentNode; protected Node leftNode; protected Node rightNode
19、; public Node getParentNode() return parentNode; public void setParentNode(Node parentNode) this.parentNode = parentNode; public String getNodeText() return nodeText; public void setNodeText(String nodeText) this.nodeText = nodeText; public Node getLeftNode() return leftNode; public void setLeftNode(Node leftNode) this.leftNode = leftNode; public Node getRightNode() return rightNode; public void setRightNode(Node rightNode) this.rightNode = rightNode;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1