日常Java练习题(每天进步一点点系列)

简介: 日常Java练习题(每天进步一点点系列)


1、下面程序的运行结果:()

public static void main(String args[]) {
        Thread t=new Thread(){
        public void  run(){
            dianping();
        }
    };
    t.run();
    System.out.print("dazhong");
    }
    static void dianping(){
        System.out.print("dianping");
}

正确答案: B 你的答案: B (正确)

dazhongdianping

dianpingdazhong

a和b都有可能

dianping循环输出,dazhong夹杂在中间


题解:

在上面main()方法中,并没有创建一个新的线程,只是简单地方法调用而已,如果想要创建线程,需要t.start();创建线程,等待cpu时间片,而run()方法只是简单地方法调用,所以先执行run(),在输出dazhong


2、如果int x=20, y=5,则语句System.out.println(x+y +""+(x+y)+y); 的输出结果是()

正确答案: D 你的答案: D (正确)

2530

55

2052055

25255


题解:

1)不论有什么运算,小括号的优先级都是最高的,先计算小括号中的运算,得到x+y +""+25+y

2)任何字符与字符串相加都是字符串,但是是有顺序的,字符串前面的按原来的格式相加,字符串后面的都按字符串相加,得到25+“”+25+5

3)上面的结果按字符串相加得到25255


3、有以下类定义:


abstract class Animal{
    abstract void say();
}
public class Cat extends Animal{
    public Cat(){
        System.out.printf("I am a cat");
    }
    public static void main(String[] args) {
        Cat cat=new Cat();
    }
}

运行后:

正确答案: B 你的答案: B (正确)

I am a cat

Animal能编译,Cat不能编译

Animal不能编译,Cat能编译

编译能通过,但是没有输出结果


题解:

当一个实体类集成一个抽象类,必须实现抽象类中的抽象方法,抽象类本身没有错误,但是cat类编译通不过


4、以下代码的输出的正确结果是


public class Test {
public static void main(String args[]) {
  String s = "祝你考出好成绩!";
  System.out.println(s.length());
  }
}

正确答案: D 你的答案: D (正确)

24

16

15

8


题解:

别想太多,length() 方法返回的就是字符串的长度,一个 char 可以存下汉字,剩下的数数就完事了。

如果想获得占用字节数的话,可以用 s.getBytes(“GBK”).length,结果就是 16 了。


5、下列说法正确的是()

正确答案: B 你的答案: B (正确)

在类方法中可用this来调用本类的类方法

在类方法中调用本类的类方法时可直接调用

在类方法中只能调用本类中的类方法

在类方法中绝对不能调用实例方法


题解:

在类方法中不能有this关键字,,直接调用类方法即可,A错误,B正确,在类方法中可以通过创建实例对象调用类的实例方法,C、D错误


6、以下代码输出的是:


public class SendValue{
    public String str="6";
    public static void main(String[] args) {
        SendValue sv=new SendValue();
        sv.change(sv.str);
        System.out.println(sv.str);
    }
    public void change(String str) {
        str="10";
    }
}

正确答案: A 你的答案: A (正确)

6

10

都不对

16


题解:4.png



7、非抽象类实现接口后,必须实现接口中的所有抽象方法,除了abstract外,方法头必须完全一致.

正确答案: B 你的答案: B (正确)

正确

错误


题解:

方法头:包括修饰符(可大),返回值(可小)、方法名

方法名与参数相同时:

修饰符:可以大于等于父类方法的访问权限,而非必须一致

返回值:可以小于父类方法返回的类型,而非必须一致

实现接口中的方法是重写要求 没必须完全一样 如接口中返回值是Object 实现接口方法返回值可以是其他的


8、下列关于容器集合类的说法正确的是?

正确答案: C 你的答案: C (正确)

LinkedList继承自List

AbstractSet继承自Set

HashSet继承自AbstractSet

WeakMap继承自HashMap


题解:

A.LinkedList是继承自AbstractSequentialList(抽象类,实现了List接口)的,并且实现了List接口。所以A错误。

B.AbstractSet是实现了Set接口的,本身是一个抽象类。继承自AbstractCollection(抽象类,实现了Collection接口)。所以B错误。

C.HashSet是继承自AbstractSet,实现了Set接口。所以C正确。

D.WeakMap不存在于java集合框架的。只有一个叫做WeakHashMap(继承自AbstractMap)。


5.png

9、下面说法正确的是?()

正确答案:B C 你的答案:B C (正确)

调用Thread的sleep()方法会释放锁,调用wait()方法不释放锁

一个线程调用yield方法,可以使具有相同优先级线程获得处理器

在Java中,高优先级的可运行的线程会抢占低优先级线程的资源

java中,线程可以调用yield方法使比自己低优先级的线程运行


题解:

yiled方法属于高风亮节的行为,这个坑位我不上了,后面跟我同级别的先上厕所。这样比较好记!

高优先级的就是你们的县长,县长要上厕所,对不起,你得出来,县长先上,县长上完了,CPU分配到你了,你才能继续拉X。


10、下面的对象创建方法中哪些会调用构造方法 ()?

正确答案:A C 你的答案:A C (正确)

new语句创建对象

调用Java.io.ObjectInputStream的readObject方法

java反射机制使用java.lang.Class或java.lang.reflect.Constructor的newInstance()方法

调用对象的clone()方法


题解:

题目的四个选项是构造方法new,序列化对象,反射,克隆分别创建一个对象的方法,,只有new和反射用到了构造方法


答案汇总:

1、正确答案: B

2、正确答案: D

3、正确答案: B

4、正确答案: D

5、正确答案: B

6、正确答案: A

7、正确答案: B

8、正确答案: C

9、正确答案: B C

10、正确答案: A C


相关文章
|
7月前
|
存储 Java
创建一个乘法练习题生成器 using Java
创建一个乘法练习题生成器 using Java
|
8月前
|
人工智能 Java
Java练习题-输出二维数组对角线元素和
Java练习题-输出二维数组对角线元素和
109 1
|
8月前
|
存储 Java 索引
Java练习题-获取数组元素最大值
Java练习题-获取数组元素最大值
Java练习题-获取数组元素最大值
|
8月前
|
Java
<Java SE> 数组详解大全(附带练习题).一维数组、二维数组、数组拷贝、数组遍历...
<Java SE> 数组详解大全(附带练习题).一维数组、二维数组、数组拷贝、数组遍历
64 0
|
8月前
|
Java 索引
Java练习题-用冒泡排序法实现数组排序
Java练习题-用冒泡排序法实现数组排序
|
8月前
|
Java
Java练习题-键盘录入字符串实现大小写转换
Java练习题-键盘录入字符串实现大小写转换
|
8月前
|
Java
Java练习题-输出斐波那契(Fibonacci)数列
Java练习题-输出斐波那契(Fibonacci)数列
|
8月前
|
算法 Java 程序员
Java数组全套深入探究——进阶知识阶段4、一维数组练习题
Java数组全套深入探究——进阶知识阶段4、一维数组练习题
68 0
Java数组全套深入探究——进阶知识阶段4、一维数组练习题
|
8月前
|
Java
java字符串练习题8、同构字符串
java字符串练习题8、同构字符串
62 0
java字符串练习题8、同构字符串
|
8月前
|
存储 Java
Java程序设计练习题8异常处理
Java程序设计练习题8异常处理
191 0