【每日进步一点点系列】十道精选Java习题

简介: 【每日进步一点点系列】十道精选Java习题

🍋1.下面说法正确的是?


A.不需要定义类,就能创建对象


B.对象中必须有数据域和方法


C.数据域可以是基本数据类型变量,也可以是一个对象


D.数据域必须是基本类型变量


正确答案为C。


A:对象依赖于类而生存,先有类才可以实例化出对象


B:类中可以都没有,则它对应的对象也会是什么都没有


C:数据域其实就是一个类的成员变量,它可以是基本数据类型也可以是引用类型(也就是一个对象)


D:同C解释,数据域也可以是引用类型


🍋2.一个Java源程序文件中定义几个类和接口,则编译该文件后生成几个以.class为后缀的字节码文件。


       A.正确


       B.错误


正确答案: A


一个Java文件中定义了几个类和接口,则编译后将会产生多少个.class文件(这里的类包括内部类和匿名内部类)。动手能力强的可以自己测试一下


🍋3.下列哪个说法是正确的?


    A.ConcurrentHashMap使用synchronized关键字保证线程安全


    B.HashMap实现了Collection接口


    C.Array.asList方法返回java.util.ArrayList对象


    D.SimpleDateFormat是线程不安全的


正确答案:D


A:ConcurrentHashMap实际上是HashTable的升级版,使用segment来分段和管理锁,并不是synchronized;


B:HashMap实现了Map接口,并未实现Collection接口。


C:Arrays.asList方法返回的ArrayList对象来自java.util.Arrays.ArrayList,并不是我们熟悉的java.util.ArrayList,这个ArrayList是Arrays的一个内部类


D:SimpleDateFormat是线程不安全的


🍋4.将下列哪个代码(A、B、C、D)放入程序中标注的【代码】处将导致编译错误?


class A{
    public float getNum(){
        return 3.0f;
    }
}
public class B extends A{
    【代码】
}

       A:public float getNum(){return 4.0f;}


       B:public void getNum(){}


       C:public void getNum(double d){}


       D:public double getNum(float d){return 4.0d;}


正确答案:B


方法重写的原则:两同两小一大。想要具体温习重写与重载的博客直达链接——【JavaSE基础】学会区分和使用重载和重写


A:返回值类型相同,参数列表相同,满足重写要求


B:方法名一致且参数列表一致,但返回值不同,编译出错


C:返回值和参数列表不同,属于类B独有的方法,不是重写


D:返回值和参数列表不同,属于类B独有的方法,不是重写(C和D在类B中是方法重载的体现)


🍋5.在java中,下列对继承的说法,正确的是()


       A:子类能继承父类的所有成员


       B:子类继承父类的所有非私有方法和状态


       C:子类只能继承父类的public方法和状态


       D:子类只能继承父类的方法


正确答案:A


在我们长期接收的思想便是子类是无法调用父类中的私有成员方法和变量的,这就让许多人认为子类无法继承父类的私有实现,其实子类是可以继承父类的所有东西,只不过对于父类私有的属性和方法子类只是拥有,却没有使用的权限,但利用反射时可以调用。


🍋6.下列关于容器集合类的说法正确的是?


   A:LinkedList继承自List

   B:AbstractSet继承自Set

   C:HashSet继承自AbstractSet

   D:WeakMap继承自HashMap

正确答案:C


A:LinkedList是实现了List接口,而非继承


B:AbstractSet实现了Set接口


C:HashSet继承自AbstractSet同时它还实现了Set接口


D:WeakMap不是Java集合框架中的东西(应该是js里面的),Java中只有一个叫WeakHashMap的


🍋7.以下选项中,switch语句判断条件可以接受的数据类型有哪些?(多选)


     A:int

     B:byte

     C:char

     D:short

正确答案:ABCD

int是可以的被switch选择我们肯定是知道的,byte、char、short三者在参与运算时都会转化为int,所以这三者是可行的。在jdk1.7后对于String和enum也是支持的      


🍋8. 如果Child extends Parent,那么正确的有()?


     A:如果Child是class,且只有一个有参数的构造函数,那么必然会调用Parent中相同参数的构造函数


     B:如果Child是interface,那么Parent必然是interface


     C:如果Child是interface,那么Child可以同时extends Parent1,Parent2等多个interface


     D:如果Child是class,并且没有显示声明任何构造函数,那么此时仍然会调用Parent的构造函数


正确答案:BCD


A:子类构造器第一行都默认为super(),默认调用父类的无参构造。一旦父类没有无参构造,则子类需要显示的声明调用父类的哪个有参构造。至于调用父类的什么构造方法,与子类构造方法无关。


B:接口只能继承接口


C:接口是可以多继承的,但类不可以


D:子类的构造方法都默认为super()去调用父类的无参构造(这个super()调用父类无参构造时被省略了)        


🍋9.对 Map 的用法,正确的有:


     A:new java.util.Map().put("key" , "value") ;


     B:new java.util.SortedMap().put("key" , "value") ;


     C:new java.util.HashMap().put( null , null ) ;


     D:new java.util.TreeMap().put( 0 , null ) ;


答案选:CD


A:Map是接口,不可以直接实例化


B:SortedMap是接口,不可以直接实例化


C:HashMap是基于哈希实现Map接口的类,可以存储null键和null值


D:TreeMap是通过红黑树实现Map接口的类,key不可以为null,会报空指针异常,value可以为null        


答案汇总:

1、正确答案:C

2、正确答案:A

3、正确答案:D

4、正确答案:B

5、正确答案:A

6、正确答案:C

7、正确答案:ABCD

8、正确答案:BCD

9、正确答案:CD

相关文章
|
1月前
|
Java 数据安全/隐私保护
JAVA经典习题详解
JAVA经典习题详解
17 4
|
1月前
|
Java 数据安全/隐私保护
java学习笔记(基础习题)
java学习笔记(基础习题)
33 0
|
6月前
|
Java
<Java>逻辑控制,方法详解,重载,牛客习题,IDEA调试方法...
<Java>逻辑控制,方法详解,重载,牛客习题,IDEA调试方法
40 0
|
11月前
|
Java
Java学习 10.Java-数组习题
Java学习 10.Java-数组习题
99 0
|
11月前
|
存储 机器学习/深度学习 Java
Java学习 9.Java-数组 讲解及习题
Java学习 9.Java-数组 讲解及习题
88 0
|
11月前
|
Java
Java学习 8.方法习题
Java学习 8.方法习题
68 0
|
11月前
|
Java
Java学习 6.循环习题
Java学习 6.循环习题
69 0
|
11月前
|
Java
Java学习 5.习题2.
Java学习 5.习题2.
48 0
|
11月前
|
Java
Java学习 3. 习题 1.
Java学习 3. 习题 1.
46 0
|
Java
Java习题之实现平方根(sqrt)函数
Java习题之实现平方根(sqrt)函数
273 0