java基础10题

1.假设num已经被创建为一个ArrayList对象,并且最初包含以下整数值:[0,0,4,2,5,0,3,0]。 执行下面的方法numQuest(),数组num会变成?

private List<Integer> nums;

//precondition: nums.size() > 0
//nums contains Integer objects
public void numQuest() {
    int k = 0;
    Integer zero = new Integer(0);
    while (k < nums.size()) {
        if (nums.get(k).equals(zero))
            nums.remove(k);
        k++;
    }
}

2.关于JDK1.8中Java的抽象类、接口,以下描述错误的是?
A.抽象类不一定含有抽象方法,接口中的方法都是抽象方法
B.一个类只能继承一个抽象类,但可以实现多个接口;一个接口可以继承多个接口
C.抽象类和接口中的方法都没有方法体
D.抽象类可以含有私有成员变量,接口不含有私有成员变量
3.下面代码输出结果为

public class TestObj{ 
    public static void main(String[] args){
        Object o=new Object(){
            public boolean equals(Object obj){
                return true;
            }
        }; 
        System.out.println(o.equals("Fred"));
    }
} 

4.ArrayList list = new ArrayList(20);中的list扩充几次
5.下面哪几个函数 public void example(){…} 的重载函数?()
A.public void example(int m){…}
B.public int example(){…}
C.public void example2(){…}
D.public int example(int m,float f){…}
6.用户不能调用构造方法,只能通过new关键字自动调用。()
A.正确
C.错误
7.假设有以下代码String s = “hello”;String t = “hello”;char c [ ] = {‘h’,‘e’,‘l’,‘l’,‘o’};下列选项中返回false的语句是?
A.s.equals (t);
B.t.equals ©;
C.s == t;
D.t.equals (new String (“hello”));
8.java用()机制实现了线程之间的同步执行
A.监视器
B.虚拟机
C.多个CPU
D.异步调用
9.@SuppressWarnings(“deprecation”)的功能是什么?
A.屏蔽不赞同使用的类和方法的警告
B.屏蔽在强制类型转换的时候编译器给出的警告
C.关闭所有警告信息
D.当在可序列化的类上缺少serialVersionUID定义的警告
10.Java语言中,方法的重写(Overriding)和重载(Overloading)是多态性的不同表现。下边哪些说法是对的?
A.重写是父类与子类之间多态性的一种表现
B.重写是一个类中多态性的一种表现
C.重载是一个类中多态性的一种表现
D.重载是父类与子类之间多态性的一种表现

(1)[0,4,2,5,3] ;

做这种题还是要一步一步来,不然一不小心就掉坑里:
List中的 get ( i )指的是获取下标(索引)为 i 的元素,也就是第 i+1 个元素
本题:
zero == 0,如果get(k) == 0,执行remove(k); ;
           size == 8 ; k==0 , 因此第一次remove(0) ,删除索引为0的元素也就是第一个元素0,然后k++, size()--;
此时集合元素为 :[0425030]
           size==7; k==1,因此get(1)==4 !=0 , 不执行remove();  k++,因没有删除元素,size()不变,
此时集合元素为:[0425030]
            size==7;k==2,k++;
            size==7;k==3,k++;
            size==7;k==4get(4)==0remove(4) ;  k++,  size()--; 
此时集合元素为: [042530]
            size==6;k==5get(5)==0remove(5);k++, size()--;
此时集合元素为: [04253]
            size==5; k==6 ;退出循环;最终输出此时集合元素为    [04253] ;
一般更改删除集合元素,使用iterator()迭代器,不推荐使用这种;

(2)选择C。
A----------抽象类不一定含有抽象方法,接口中的方法都是抽象方法。
接口中的方法默认修饰符有public abstract。
B----------一个类只能继承一个一个抽象类,但可以实现多个接口;一个接口可以继承多个接口。
Java里类是单继承的,接口是可以多继承的,用关键字extends。
C----------抽象类和接口中的方法都没有方法体。
抽象类中的方法是可以有方法体的。JDK1.8之后,接口中的方法也可以有方法体,用default关键字修饰方法。
D----------抽象类可以含有私有成员变量,接口不含有私有成员变量。
接口中的成员变量都是public static final的,一般用作常量。
(3)true
这里的equals方法被重写了,只要传入合法的参数就返回true,而不是比较对象o与字符串Fred是否相同。
(4)0
Arraylist默认数组大小是10,扩容后的大小是扩容前的1.5倍,最大值小于Integer 的最大值减8,如果新创建的集合有带初始值,默认就是传入的大小,也就不会扩容
(5)AD
方法的重载:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
两同一不同:同一个类,同一个方法名,
参数列表不同:参数个数不同,参数类型不同
与方法的权限修饰符、返回值类型没有关系
(6)选B。
在类内部可以用户可以使用关键字this.构造方法名()调用(参数决定调用的是本类对应的构造方法)
在子类中用户可以通过关键字super.父类构造方法名()调用(参数决定调用的是父类对应的构造方法。)
反射机制对于任意一个类,都能够知道这个类的所有属性和方法,包括类的构造方法。
(7)B:类型不匹配
A,D:equals方法比较的是内容,所以都是正确的;
C:s和t只是String类型变量,并不是new String对象,所以相等
(8)我的答案是A
首先jvm中没有进程的概念 ,但是jvm中的线程映射为操作系统中的进程,对应关系为1:1。那这道题的问的就是jvm中线程如何异步执行 。 在jvm中 是使用监视器锁来实现不同线程的异步执行, 在语法的表现就是synchronized
(9)A
简介:java.lang.SuppressWarnings是J2SE5.0中标准的Annotation之一。
可以标注在类、字段、方法、参数、构造方法,以及局部变量上。
作用:告诉编译器忽略指定的警告,不用在编译完成后出现警告信息。
(10A and C
重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。
Overloaded的方法是可以改变返回值的类型。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nicholas_giao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值