Java中10道练习题

这篇文章主要介绍了Java中10道练习题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

    1、若 a 的值为 3 时,下列程序段被执行后, c 的值是多少?( )

    int c = 1;

    if ( a>0 ){

    if ( a>3){

    c = 2;

    }

    else{

    c = 3;

    }

    }

    else{

    c = 4;

    }

    正确答案: C

    1

    2

    3

    4

    题解:
    无题解

    2、以下哪项不是java基础类型()

    正确答案: C

    boolean

    String

    float

    题解:
    数据类型包括基本数据类型和引用数据类型
    基本数据类型:byte,short,int,long,char,float,double,boolean
    引用数据类型:数组,接口,枚举,类,空类

    3、Java中只有整型才能使用的运算符为?

    正确答案: C

    *

    /

    %

    +

    题解:
    ABD选项的操作符都可用于float和double
    只有%取余操作,只适用于整型

    4、下面代码运行结果是()

    public class Test{	
        public int add(int a,int b){	
             try {	
                 return a+b;		
             } 
            catch (Exception e) {	
                System.out.println("catch语句块");	
             }	
             finally{	
                 System.out.println("finally语句块");	
             }	
             return 0;	
        } 
         public static void main(String argv[]){ 
             Test test =new Test(); 
             System.out.println("和是:"+test.add(9, 34)); 
         }
    }

    正确答案: C

    A:catch语句块

    和是:43

    B:编译异常

    C:finally语句块

    和是:43

    D:和是:43

    finally语句块

    题解:
    结论:
    1、不管有木有出现异常,finally块中代码都会执行;
    2、当try和catch中有return时,finally仍然会执行;
    3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;
    4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。

    5、抽象类方法的访问权限默认都是public。( )

    正确答案: B

    正确

    错误

    题解:
    关于抽象类
    JDK 1.8以前,抽象类的方法默认访问权限为protected
    JDK 1.8时,抽象类的方法默认访问权限变为default
    关于接口
    JDK 1.8以前,接口中的方法必须是public的
    JDK 1.8时,接口中的方法可以是public的,也可以是default的
    JDK 1.9时,接口中的方法可以是private的

    6、要导入java/awt/event下面的所有类,叙述正确的是?()

    正确答案: C

    import java.awt. * 和import java.awt.event. * 都可以

    只能是import java.awt. *

    只能是import java.awt.event. *

    import java.awt. * 和import java.awt.event. * 都不可以

    题解:
    java.awt. * 是导入java\awt包下所有的类,并不包括其子包下的类。
    java.awt.event. * 才能导入java\awt\event包下的类。

    7、JDK中提供的java、javac、jar等开发工具也是用Java编写的。

    正确答案: A


    题解:
    JAVA里的jvm虚拟机用的是C语言+汇编语言开发的,其它就是java编写的了。

    8、关于AWT和Swing说法正确的是?

    正确答案: D

    Swing是AWT的子类

    AWT在不同操作系统中显示相同的风格

    AWT不支持事件类型,Swing支持事件模型

    Swing在不同的操作系统中显示相同的风格

    题解:
    Swing是轻量级组件,AWT是重量级组件,不存在 继承关系。
    AWT由于不完善,是用本地化方法实现窗体创建,所以显示风格跟平台相关。
    Swing是弥补这一缺点,窗体的创建与平台无关。
    awt与swing都支持事件模型。

    9、下面代码在main()方法中第八行后可以正常使用的是( )

    public class Test

    {

    private int a=10;

    int b=20;

    static int c=1;

    public static void main(String arg[])

    {

    Test t = new Test();

    }

    }

    正确答案: A D

    t.a

    this.c

    Test.b

    t.c

    题解:
    A : 在private 修饰不能在外部类中调用,main 方法属于Test类的方法, 所以 对象 t 可以在他自己的类方法中调用它的private
    B : static 方法中没有this 这么一说
    C: b不是static变量
    D: 合理

    10、关于下面一段代码,以下说法正确的是: ()

    public class Test {
        private synchronized void a() {
        }
        private void b() {
            synchronized (this) {
            }
        }
        private synchronized static void c() {
        }
        private void d() {
            synchronized (Test.class) {
            }
        }
    }

    正确答案: A C

    同一个对象,分别调用方法a和b,锁住的是同一个对象

    同一个对象,分别调用方法a和c,锁住的是同一个对象

    同一个对象,分别调用方法b和c,锁住的不是同一个对象

    同一个对象,分别调用方法a、b、c,锁住的不是同一个对象

    题解:
    方法a为同步方法,方法b里面的是同步块,同步方法使用的锁是固有对象this,同步块使用的锁可以是任意对象,但是方法b里面的同步块使用的锁是对象this,所以方法a和方法b锁住的是同一个对象。方法 c为静态同步方法,使用的锁是该类的字节码文件,也就是Test.class。方法d里面的也是同步块,只不过使用的锁是Test.class,所以方法c和方法d锁住的是同一个对象。

    答案汇总:

    1、正确答案: C

    2、正确答案: C

    3、正确答案: C

    4、正确答案: C

    5、正确答案: B

    6、正确答案: C

    7、正确答案: A

    8、正确答案: D

    9、正确答案: A D

    10、正确答案: A C

    感谢你能够认真阅读完这篇文章,希望小编分享的“Java中10道练习题”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注行业资讯频道,更多相关知识等着你来学习!