【Java】第一次月考错题及分析

第一次月考错题及分析

9.(单选题)关于下列代码说法正确的是:
class ClassA {
    public int numberOfinstances;
    protected ClassA(int numberOfinstances) {
        this.numberOfinstances = numberOfinstances;
    }
}
public class ExtendedA extends ClassA {
    private ExtendedA(int numberOfinstances) {
        super(numberOfinstances);
    }
    public static void main(String[] args) {
        ExtendedA ext = new ExtendedA(420);
        System.out.print(ext.numberOfinstances);
    }
}


 A.运行后,输出420
 B.运行时抛出异常
 C.编译错误,所有的构造器必须是public的
 D.编译错误,构造器不能是private的

 正确答案:A
 解析:
 main方法在类ExtendedA里面,因此可以访问ExtendedA类的任何成员变量及方法。如果把此main方法放在另一个类中,则报错。

在类中如果声明了私有化的构造方法,那么主方法中若取得并且实例化对象可以用以下方法:
  ·在类中进行对私有化的构造方法的实例化。
  ·用static的get方法对实例化的对象进行取值。
  ·在主方法中取得实例化对象用get方法。


22.(单选题)请看下列代码,出现错误的行是:()
public interface Cookie {
    Cookie cookie = new Cart("小面包", "盼盼");
}
class Cart implements Cookie {
    private String name;
    private String production;
    public Cart(String name, String production) {
        this.name = name;
        this.production = production;
    }
    public void smell() {
        cookie = new Cart("蛋黄派", "达利园");
    }
}


 A.第2行
 B.第4行
 C.第11行
 D.第12行

 正确答案:D
 解析:
第2行的代码相当于定义了一个public static final Cookie类型的变量cookie,因此在12行cookie = new Cart("蛋黄派", "达利园");时报错,不能改变final修饰的变量。



37. (单选题)查看如下代码:
public class HasStatic {
    private static int x = 100;
    public static void main(String args[]) {
        HasStatic hs1 = new HasStatic();
        hs1.x++;
        HasStatic hs2 = new HasStatic();
        hs2.x++;
        hs1 = new HasStatic();
        hs1.x++;
        HasStatic.x--;
        System.out.println("x=" + x);
    }
}


对于此代码,下列描述中,正确的是()。
 A.5行不能通过编译,因为引用了私有静态变量
 B.10行不能通过编译,因为x是私有静态变量
 C.程序通过编译,输出结果为:x=103
 D.程序通过编译,输出结果为:x=102

正确答案:D
解析:main方法在类的内部,故可以访问类的私有成员变量。如果放在别的类中,则不行。

41.(多选题)下面的方法属于StringBuffer的是:()。
 A.size
 B.insert
 C.delete
 D.length

 正确答案:BCD
 解析:记住即可



44.(多选题)在Java语言中,下列说法正确的是:()。
 A.StringBuffer和StringBuilder的区别在于:StringBuffer是线程安全的而StringBuilder不是。
 B.String是不可变对象,而StringBuffer中封装的字符串数据是可以动态改变的。
 C.判断两个StringBuilder对象的字符序列是否相同,可以调用其equlas方法进行比较。
 D.String的重写了equals方法,重写的逻辑是:字符序列相同的String对象equals方法返回true。

正确答案:ABD
解析:错误答案ABCD,StringBuilder中没有重写equals方法,故想比较字符序列是否相同需转成String类型(.toString即可)再进行比较。

48.(多选题)下列关于HashMap的描述正确的是:
 A.HashMap的Key和Value是以链表的方式存入对应的bucket
 B.HashMap的查找方式是获取Key的hashCode值,通过hash算法确定存储的bucket,调用equals方法依次 与bucket中的Key进行比较
 C.放入HashMap集合中的元素按照key的自然顺序排序
 D.HashMap中的key是不可以的重复的

正确答案:ABD

解析:暂未搞懂



总结分析:平时练习的太少,导致很多细节问题不是很清晰,然后就做错了很多题,很多题考查的还是比较全面的,通过这次测试,让我发现了自己很多不足,自己需要改进的地方还很多,以后 的学习中要更加的踏实与努力!!!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值