• 京东笔试


    一、Java语言中,覆盖和重载相同和不同的地方。

    答:Java语言中,方法重载和方法覆盖的相同点如下。

    1. 都要求方法同名。
    2. 都可以用于抽象方法和非抽象方法。

    不同点如下。

    1. 方法覆盖要求参数必须一致,而方法重载要求参数必须不一致。
    2. 方法覆盖要求返回类型必须一致,而方法重载对此不作限制。
    3. 方法覆盖只能用于子类覆盖父类的方法,方法重载用于同一个类的所有方法(包括从父类中继承而来的方法)。
    4. 方法覆盖对方法的访问权限和抛出的异常有特殊的要求,而方发重载在这方面没有任何限制。
    5. 父类的一个方法只能被子类覆盖,而一个方法在所在的类中可以被重载多次。

    二、请说出equals()和==的区别。

    答:equals()方法是Object类中定义的一个方法,用来比较两个对象引用是否相等,这一点和“==”表达式是一样的。

    所不同的是equals()方法可以在子类或者特定类中重写,例如String类就重写了该方法,使用String类的equals()方法可以比较两个String实例的内容是否相等。

    三、forward()和redirect()方法的区别?

    答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。

    四、 表单中的get和post有什么区别?

    答:

    1. Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。
    2. Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。
    3. Get是不安全的,因为在传输过程中,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。
    4. Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。
    5. Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
    6. Get是Form的默认方法。

    五、冒泡排序

      1.思路

    从0到n-1,两两比较数组中的元素,如果前者大于后者,则交换之(如a[0]>a[1],则交换a[0]和a[1])。作一趟冒泡排序后,最大值就在最后一个位置a[n-1]上了。然后对余下的0到n-2个元素作第二趟冒泡排序,次最大值就去到倒数第二个位置a[n-2]上了,如此类推。

      例如对10,-3,5,34,-34,5,0,9进行排序

      第一趟:-3,5,10,-34,5,0,9,34

      第二趟:-3,5,-34,5,0,9,10,34

      第三趟:-3,-34,5,5,0,9,10,34

      第四趟:-34,-3,5,0,5,9,10,34

      第五趟:-34,-3,0,5,5,9,10,34

    这时不再发生交换,排序结束。

      2.算法

      

     1     public static void main(String[] args) {
     2         int a[] = { 4, 5, 2, 1, 6, 7, 8, 0, 0, 0 };
     3         bubbleSort(a);
     4         for (int each : a) {
     5             System.out.print(each + " ");
     6         }
     7 
     8     }
     9 
    10     static void bubbleSort(int[] array) {
    11         boolean isSwap = false;
    12         int length = array.length;
    13         for (int i = 1; i < length; i++) {
    14             for (int j = 0; j < length - i; j++) {
    15                 if (array[j] > array[j + 1]) {
    16                     int temp = array[j];
    17                     array[j] = array[j + 1];
    18                     array[j + 1] = temp;
    19                     isSwap = true;
    20                 }
    21             }
    22             if (!isSwap)
    23                 break;
    24         }
    25     }
  • 相关阅读:
    gitlabrunner之坑
    [最佳实践] quarkus编译二进制可执行文件
    coredns周期性,偶尔无法访问指定的内部域名
    滚动备份最近x天数据
    !!危险Windows CMD 大风起
    echo e ANSI控制设置字体格式中里面的字符串如果有任意位置的两个感叹号!!,则会执行异常 大风起
    检查和管理Windows的常用命令 大风起
    从服务间的一次调用分析整个springcloud的调用过程(一)
    从服务间的一次调用分析整个springcloud的调用过程(二)
    从服务间的一次调用分析整个springcloud的调用过程(三)
  • 原文地址:https://www.cnblogs.com/hntyzgn/p/3439597.html
Copyright © 2020-2023  润新知