我的校招——南京烽火笔试+格力初面

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、(感觉不像技术面)



  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
2019烽火Java笔试题主要是考察Java编程语言的基础知识和编程能力,下面我用300字来回答这道题。 这道Java笔试题主要是关于一个学生信息管理系统的编写,要求实现添加学生、删除学生、查询学生和修改学生信息等功能。 在编写学生信息管理系统时,我们首先需要定义一个学生类,包括学生的姓名、学号、年龄等基本信息,然后通过构造器创建学生对象。 对于添加学生功能,我们可以通过输入学生的基本信息,创建一个新的学生对象,并将其添加到学生集合中。 对于删除学生功能,我们可以通过输入要删除的学生学号,遍历学生集合,找到对应的学生对象,并将其从集合中移除。 对于查询学生功能,我们可以通过输入学生学号或姓名,遍历学生集合,找到对应的学生对象,并输出其基本信息。 对于修改学生信息功能,我们可以通过输入要修改的学生学号,遍历学生集合,找到对应的学生对象,并可以选择要修改的信息进行修改。 最后,需要在入口函数中添加菜单选项,通过输入不同的选项来调用对应的功能函数,实现交互式的学生信息管理系统。 以上就是对2019烽火Java笔试题的回答,通过实现添加、删除、查询和修改等功能,我们可以创建一个简单的学生信息管理系统。当然,对于真正的实际应用,还需要考虑更多的功能和异常处理等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值