牛客网开始刷题(日积月累)(java)

0307
1
在这里插入图片描述
3
在这里插入图片描述

直接上源码:这样够清楚吗?
public interface Collection<E> extends Iterable<E>
{
    
     Collection接口继承了Iterable 接口  }

public class Collections {
    
       
    private Collections() {
    
    
    }
}
Collections类是不能够被实例化的,因为它的构造方法为私有方法,因此可以推测 Collections 里面的方法都为静态方法
(其实是在源码中看的)
Collection是单列集合的顶层接口,Map是双列集合的顶层接口
Collections是一个集合的工具类,提供了排序、查找等操作集合的一些常用方法

4
这题都做错了,很可惜!
在这里插入图片描述

在这里插入图片描述

sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法让当前线程暂停执行指定的时间,将执行机会(CPU)让给其他线程,
但是对象的锁依然保持,因此休眠时间结束后会自动恢复(线程回到就绪状态,请参考第66题中的线程状态转换图)。

wait()是Object类的方法,调用对象的wait()方法导致当前线程放弃对象的锁(线程暂停执行),进入对象的等待池(wait pool),
只有调用对象的notify()方法(或notifyAll()方法)时才能唤醒等待池中的线程进入等锁池(lock pool),
如果线程重新获得对象的锁就可以进入就绪状态。

5
在这里插入图片描述

选ABD
A和B中longfloat,正常定义需要加l和f,但是longfloat属于基本类型,会进行转化,所以不会报出异常。AB正确
boolean类型不能和任何类型进行转换,会报出类型异常错误。所以C错。
D选项可以这样定义,D正确。
E选项中,byte的取值范围是-128127。报出异常: cannot convert from int to byte.所以E选项错误。

在这里插入图片描述

0318

1.System.out.println(10%3*2);

	%和*是同一个优先级
	2
2.下面这段程序的输出结果是()

public class Main {
    public static void main(String[] args) {
        split(12);
    }
    public static int split(int number) {
        if (number > 1) {
            if (number % 2 != 0) System.out.print(split((number + 1) / 2));
                System.out.print(split(number / 2));
            }
        return number;
    }
}

12136

在这里插入图片描述

A对:java类单继承,多实现
B错:被abstract修饰的类就是抽象类,有没有抽象方法无所谓
C错:描述有问题。protected成员在子类的可见性,我最初理解是子类(不继承父类protected成员方法)获取父类被protected修饰的成员属性或方法,可见性是不可能变的,因为修饰符protected就是描述可见性的。
        这道题应该是要考察子类继承父类,并重写父类的protected成员方法,该方法的可见性可以修改,这是对的,因为子类继承父类的方法,访问权限可以相同或往大了改   
D对。
E错:final修饰的方法只是不能重写,static修饰的方法只能访问类的成员变量
F对。

在这里插入图片描述

A.抽象类可以有构造方法,只是不能直接创建抽象类的实例对象而已
B.在接口中 不可以有构造方法,在接口里写入构造方法时,编译器提示:Interfaces cannot have constructors。
C.Java不允许类多重继承
D.jdk1.8后接口中的方法可以有方法体,jdk1.8之前不可以有方法体

猜你喜欢

转载自blog.csdn.net/AC_872767407/article/details/114495930