1.JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?

区别:
1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)
2.jsp更擅长表现于页面显示,servlet更擅长于逻辑控制.
3.Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到.
Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,Jsp中的Java脚本如何镶嵌到一个类中,由Jsp容器完成。而Servlet则是个完整的Java类,这个类的Service方法用于生成对客户端的响应。

联系:
JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”.

不同:
Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件.

2. EJB需直接实现它的业务接口(remote)或Home接口吗,请简述理由。

remote接口和Home接口不需要直接实现,他们的实现代码是由服务器产生的,程序运行中对应实现类会作为对应接口类型的实例被使用。

3.冒泡排序(优化算法)

冒泡思路说明:
(1) 最开始将数组看做一个无序数列(个数是数组的长度)与一个有序数列(0个)的组合;
(2) 每一趟比较完后, 找到了无序数列的最大值, 将其放到有序数列中(有序数列个数+1);
(3) N个数, 比较N-1趟;
(4) 每一趟挨个进行比较:从数组的第一个元素开始, 到无序数列的最后一个为止;
(5) 如果前边一个大于后边一个, 那么交换位置;
(6) 每趟比较的次数与趟数有关;
(7) 根据每趟比较是否发生了交换判断数据是否已经有序,从而进行优化。

public class TestSort {
public static void main(String[] args) {
	int[] arr = {11, 66, 22, 0, 55, 32};
	// 调用排序方法
	sort(arr);
	// 输出排除后的数组
	for (int num : arr) {
	System.out.print(num + "\t");
  }
}
 
public static void sort(int[] arr) {
	// 定义标记
	boolean flag = false;
	int temp;
	// 排序
	// 外层循环控制的是比较的趟数
	for (int i = 0; i < arr.length - 1; i++) {
	// 每一趟比较之前初始化, 否则会保留上一堂比较的结果
	flag = false;
	// 内层循环控制的是每趟比较的次数
	for (int j = 0; j < arr.length - 1 - i; j++) {
	// 挨个进行比较: 从数组的第一个元素开始, 到无序数列的最后一个
	if (arr[j] > arr[j + 1]) {
		// 交换
		temp = arr[j];
		arr[j] = arr[j + 1];
		arr[j + 1] = temp;
		//如果发生交换,改变flag的值
		flag = true;
	}
}
	if (!flag) {
		break;
	}
  }
 }
}