叨叨两句

牛客网——java专项练习020

1

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

  1. 协议 用户名

  2. 协议 主机名

  3. 主机名 ip

  4. 以上都不正确

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

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

2

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

  1. 某个抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法

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

  3. 可以用抽象类直接去实例化创建对象

  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;

}
}

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

Wall_Breaker
2.1k 声望1.2k 粉丝

生死之间,就是我的跃迁之路,全程记录,欢迎见证