1.抽象类和接口的区别?
个人理解主要有下列几点:
1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;
2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
4)一个类只能继承一个抽象类,而一个类却可以实现多个接口。
5)抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。
对于抽象类:
1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。
2)抽象类不能用来创建对象;
3)如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。
在其他方面,抽象类和普通的类并没有区别。
对于接口:
1)接口中的变量会被隐式地指定为public static final变量
2)方法会被隐式地指定为public abstract方法且只能是public abstract方法(用其他关键字,比如private、protected、static、 final等修饰会报编译错误
3)接口中的方法必须都是抽象方法(不可实现)
2.servlet生命周期?
Servlet生命周期分为三个阶段:
1,初始化阶段 调用init()方法
2,响应客户请求阶段 调用service()方法
3,终止阶段 调用destroy()方法
Servlet初始化阶段:
在下列时刻Servlet容器装载Servlet:
1,Servlet容器启动时自动装载某些Servlet,实现它只需要在web.XML文件中的<Servlet></Servlet>之间添加如下代码
2,在Servlet容器启动后,客户首次向Servlet发送请求
3,Servlet类文件被更新后,重新装载Servlet
Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次。
3.冒泡排序或者快速排序?
冒泡:
public static void main(String[] args){
int score[] = {67, 69, 75, 87, 89, 90, 99, 100};
for (int i = 0; i < score.length -1; i++){ //最多做n-1趟排序
for(int j = 0 ;j < score.length - i - 1; j++){ //对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)
if(score[j] < score[j + 1]){ //把小的值交换到后面
int temp = score[j];
score[j] = score[j + 1];
score[j + 1] = temp;
}
}
}
快排:
通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
public class QuickSort {
public static void main(String[] args) {
int[] array = { 49, 38, 65, 97, 76, 13, 27 };
quickSort(array, 0, array.length - 1);
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " -- ");
}
}
/**
* 先按照数组为数据原型写出算法,再写出扩展性算法。数组{49,38,65,97,76,13,27}
*
* @param array
* @param left
* @param right
*/
public static void quickSort(int[] array, int left, int right) {
int pivotKey;
if (left < right) {
pivotKey = partitionByPivotValue(array, left, right);
// 对左右数组递归调用快速排序,直到顺序完全正确
quickSort(array, left, pivotKey - 1);
quickSort(array, pivotKey + 1, right);
}
}
/**
* pivotValue作为枢轴,较之小的元素排序后在其左,较之大的元素排序后在其右
*
* @param array
* @param left
* @param right
* @return
*/
public static int partitionByPivotValue(int[] array, int left, int right) {
int pivotValue = array[left];
// 枢轴选定后永远不变,最终在中间,前小后大
while (left < right) {
while (left < right && array[right] >= pivotValue) {
--right;
}
// 将比枢轴小的元素移到低端,此时right位相当于空,等待低位比pivotkey大的数补上
array[left] = array[right];
while (left < right && array[left] <= pivotValue) {
++left;
}
// 将比枢轴大的元素移到高端,此时left位相当于空,等待高位比pivotkey小的数补上
array[right] = array[left];
}
// 当left == right,完成一趟快速排序,此时left位相当于空,等待pivotkey补上
array[left] = pivotValue;
return left;
}
}
4.OSI七层模型 第二层是什么?
数据链路层:传帧!
交换机工作在OSI模型中的第二层数据链路层
5.基本SQL语句(更新)
update...set....
eg: update student set sage = sage+1;
两个智力题我都做出来了,红绿颜色比例——一样多!
给工人分钱,把金条分给15份,只能四次——1+2+3+4+5=15;
计算机课设中的怎样调研,资源。。,项目中用到的技术?没有读懂题目。
格力 人超级多,然后去了第二趟人更多,然后准备放弃的时候去了第三趟!!!
还好面上了,然而。。。。。。
介绍一下两个项目、SSH、有没有自己开发过APP、(感觉不像技术面)