叨叨两句
累
牛客网——java专项练习020
1
一个完整的URL地址由(),(),端口和文件四部分组成。
正确答案: B
协议 用户名
协议 主机名
主机名 ip
以上都不正确
URL(Uniform Resource Locator) ,统一资源定位符,能够对因特网的资源进行定位。
URL一般有四部分组成: <协议>://<主机>:<端口>/<路径>
现在最常用的<协议>为http协议。
<主机>是指主机在因特网上的域名。
http协议的默认<端口>为80(可以省略)。
<路径>是指要活的的文件的路径。
ip地址+子网掩码=主机号
2
下列关于java抽象类的说法哪个正确?
正确答案: D
某个抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法
接口和抽象类是同一回事
可以用抽象类直接去实例化创建对象
一个类只能继承一个抽象类
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;
}
}
这个排序算法虽然能实现从大到小排序,但看得人眼晕。。。
每次排序,先拿前面的值依次和末尾值比较,比末尾值大的则交换,每次排序最大的值放到末尾;关键还没完,还要再和前面的值交换,将最大值放到前面。。。
是快排吧 总是以最后一个数作为区分 大的放前面 小的放后面 然后递归两个区间
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。