【281天】我爱刷题系列(40)

叨叨两句

  1. java

牛客网——java专项练习020

1

一个完整的URL地址由(),(),端口和文件四部分组成。
正确答案: B算法

  1. 协议 用户名code

  2. 协议 主机名orm

  3. 主机名 ip对象

  4. 以上都不正确排序

URL(Uniform Resource Locator) ,统一资源定位符,可以对因特网的资源进行定位。
URL通常有四部分组成: <协议>://<主机>:<端口>/<路径> 
如今最经常使用的<协议>为http协议。
<主机>是指主机在因特网上的域名。
http协议的默认<端口>为80(能够省略)。
<路径>是指要活的的文件的路径。

ip地址+子网掩码=主机号

2

下列关于java抽象类的说法哪一个正确?
正确答案: D继承

  1. 某个抽象类的父类是抽象类,则这个子类必须重载父类的全部抽象方法递归

  2. 接口和抽象类是同一回事接口

  3. 能够用抽象类直接去实例化建立对象ip

  4. 一个类只能继承一个抽象类

A.非抽象类继承抽象类,必须将抽象类中的方法重写,不然需将方法再次申明为抽象。因此这个方法还可再次声明为抽象,而不用重写。而用重载也错了,重载是在同一个类中,重写、覆盖才是在父子类中。
B.抽象类能够没有抽象方法,接口是彻底的抽象,只能出现抽象方法。
C.抽象类没法实例化,没法建立对象。现实生活中也有抽象类的类子,好比说人类是一个抽象类,没法建立一个叫人类的对象,人继承人类来建立对象。何况抽象类中的抽象方法只有声明,没有主体,若是实例化了,又如何去实现调用呢?
D由于类是单继承的,类继承了一个抽象类之后,就不能再继承其余类了。

3

下面程序的输出结果是什么。

public class A2{
public static void main(String[] args){

int[] a={2,4,6,8,3,6,9,12};
doSomething(a,0,a.length-1);
for(int i=0;i<=a.length-1;i++)
System.out.print(a[i]+" ");

}
private static void doSomething(int[] a,int start,int end){

if(start<end){
    int p=core(a,start,end);
    doSomething(a,start,p-1);
    doSomething(a,p+1,end);
}

}
private static int core(int[] a,int start,int end)
{

int x=a[end];
int i=start;
for(int j=start;j<=end-1;j++){
    if(a[j]>=x){
        swap(a,i,j);
        i++;//交换了几回 
    }
}//把最大的放到最后
swap(a,i,end);//把最大的放到i的位置 
return i;

}

private static void swap(int[] a,int i,int j)
{

int tmp=a[i];
a[i]=a[j];
a[j]=tmp;

}
}

这个排序算法虽然能实现从大到小排序,但看得人眼晕。。。
每次排序,先拿前面的值依次和末尾值比较,比末尾值大的则交换,每次排序最大的值放到末尾;关键还没完,还要再和前面的值交换,将最大值放到前面。。。
是快排吧 老是以最后一个数做为区分 大的放前面 小的放后面 而后递归两个区间