Java日常练习题,每天进步一点点(20)

 更新时间:2021年07月23日 09:54:48   作者:牛哄哄的柯南  
下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你

承蒙各位厚爱,我们一起每天进步一点点!(鼠标选中空白处查看答案)

1、如何跳出Array的forEach循环?( )

正确答案: A

break

return true

return false

以上都不是

题解:
送分题,break

2、对抽象类的描述正确的是()

正确答案: D

抽象类的方法都是抽象方法

一个类可以继承多个抽象类

抽象类不能有构造方法

抽象类不能被实例化

题解:
A.抽象类也可以有非抽象的方法,而接口中的方法都是抽象方法
B.java中类只能单继承,接口可以‘继承'多个接口
C.抽象类必须有构造方法,接口一定没有构造方法
D.实例化一般指new一个对象,所以抽象类不能实例化

3、类方法中可以直接调用对象变量。( )

正确答案: B

正确

错误

题解:
静态方法中不能调用对象的变量,因为静态方法在类加载时就初始化,对象变量需要在新建对象后才能使用

4、如果一个接口Cow有个方法drink(),有个类Calf实现接口Cow,则在类Calf中正确的是? ( )

正确答案: C

void drink() { …}

protected void drink() { …}

public void drink() { …}

以上语句都可以用在类Calf中

题解:
子类重写父类方法时,方法的访问权限不能小于原访问权限,在接口中,方法的默认权限就是public,所以子类重写后只能是public

5、内部类(也叫成员内部类)可以有4种访问权限。( )

正确答案: A

正确

错误

题解:
你就把内部类理解成类的成员,成员有4种访问权限吧,内部类也是!分别为private、protected、public以及默认的访问权限

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

public static void main(String[] args){

String s;

System.out.println(“s=”+s);

}

正确答案: C

代码编程成功,并输出”s=”

代码编译成功,并输出”s=null”

由于String s没有初始化,代码不能编译通过。

代码编译成功,但捕获到NullPointException异常

题解:
成员变量有初始值,而局部变量没有初始值得。本体中的s定义在方法中所以为局部变量没有初始值。变量没有初始值就使用了,编译通不过,敲代码的时候就能发现不初始化使用时就是红的错误提示。

7、关键字super的作用是?

正确答案: D

用来访问父类被隐藏的非私有成员变量

用来调用父类中被重写的方法

用来调用父类的构造函数

以上都是

题解:
全是

8、下面程序运行完之后,t2与t3的关系为()

Object obj=new Object();
List aList=new ArrayList();
List bList=new LinkedList();
 
long t1=System.currentTimeMillis();
for(int i=0;i<50000;i++){
    aList.add(0,obj);
}
long t2=System.currentTimeMillis()-t1;
 
t1=System.currentTimeMillis();
for(int i=0;i<50000;i++){
    bList.add(0,obj);
}
long t3=System.currentTimeMillis()-t1; 

正确答案: D

t2

t2=t3

不确定

t2>t3

题解:
此题考察的是ArrayList和LinkedList的特征:同样是新增5000个对象,LinkedLIst比ArrayList更快
 
ArrayList:增删慢,查询快。
由于是数据组实现,需要连续的内存空间,如果删除数组中间的值,为了保证下标的有效性,需要将后面的数据往前移,所以删除慢。
当插入A对象到B对象的前面时,需要将B对象和B对象之后的所有对象后移一位,再插入A对象。所以插入慢。
数组的大小是固定的,如果数组满了,需要重新分配空间,new一个新数组并copy旧数据之后再增加新数据,所以增加慢。
因为是连续内存空间,可以通过下标查询数据,所以查询快。
 
LInkedList:增删快,查询慢。
由于是链表实现,当前节点的next指向下一个节点,prev指向上一个节点,不需要连续的内存空间,所以增删快。
因为不是连续内存空间,所以不能使用下标查询,只能通过next遍历,所以查询慢。

9、下列不属于Java语言性特点的是

正确答案: D

Java致力于检查程序在编译和运行时的错误

Java能运行虚拟机实现跨平台

Java自己操纵内存减少了内存出错的可能性

Java还实现了真数组,避免了覆盖数据类型的可能

题解:
Java致力于检查程序在编译和运行时的错误。
Java虚拟机实现了跨平台接口
类型检查帮助检查出许多开发早期出现的错误。
Java自己操纵内存减少了内存出错的可能性。
Java还实现了真数组,避免了覆盖数据的可能。
注意,是避免数据覆盖的可能,而不是数据覆盖类型

10、下面哪个行为被打断不会导致InterruptedException:( )

正确答案: E

Thread.join

Thread.sleep

Object.wait

CyclicBarrier.await

Thread.suspend

题解:
抛InterruptedException的代表方法有:
java.lang.Object 类的 wait 方法
java.lang.Thread 类的 sleep 方法
java.lang.Thread 类的 join 方法
当线程在活动之前或活动期间处于正在等待、休眠或占用状态且该线程被中断时,抛出该异常。
对于常见的ABC选项都有说明,对于D,CyclicBarrier是一个屏障类,它的await方法可以简单的理解为:等待多个线程同时到达之后才能继续进行,在此之前它就是这些线程的屏障,线程不能继续进行,而对于失败的同步尝试,CyclicBarrier 使用了一种要么全部要么全不 (all-or-none) 的破坏模式:如果因为中断、失败或者超时等原因,导致线程过早地离开了屏障点,那么在该屏障点等待的其他所有线程也将通过 BrokenBarrierException(如果它们几乎同时被中断,则用 interruptedException)以反常的方式离开。因此它被中断也是可以抛出interruptedException的,如果还是不清楚,查看一下JavaAPI,对于这个类介绍的清清楚楚。

答案汇总:

1、正确答案: A

2、正确答案: D

3、正确答案: B

4、正确答案: C

5、正确答案: A

6、正确答案: C

7、正确答案: D

8、正确答案: D

9、正确答案: D

10、正确答案: E

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • 基于kafka实现Spring Cloud Bus消息总线

    基于kafka实现Spring Cloud Bus消息总线

    消息总线是一种通信工具,可以在机器之间互相传输消息、文件等,这篇文章主要介绍了如何利用kafka实现SpringCloud Bus消息总线,感兴趣的可以学习一下
    2022-04-04
  • java中复杂查询sql语句该怎么写

    java中复杂查询sql语句该怎么写

    我们知道在java连接数据库之后,需要数据库的sql语句,下面这篇文章主要给大家介绍了关于java中复杂查询sql语句该怎么写的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • SpringBoot整合Mybatis-plus关键词模糊查询结果为空

    SpringBoot整合Mybatis-plus关键词模糊查询结果为空

    SpringBoot整合Mybatis-plus使用关键词模糊查询的时候,数据库中有数据,但是无法查找出来,本文就来介绍一下SpringBoot整合Mybatis-plus关键词模糊查询结果为空的解决方法
    2025-04-04
  • IDEA调试源码小技巧之辨别抽象类或接口多种实现类的正确路径

    IDEA调试源码小技巧之辨别抽象类或接口多种实现类的正确路径

    这篇文章主要介绍了IDEA调试源码小技巧之辨别抽象类或接口多种实现类的正确路径,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • springboot获取当前用户信息的三种方式

    springboot获取当前用户信息的三种方式

    本文详细介绍了在开发中获取当前操作用户信息的三种方式:使用ThreadLocal存储用户信息、通过拦截器和注解结合Shiro框架获取用户信息、以及使用Redis存储用户信息,每种方式都有具体的实现步骤和注意事项,可根据实际需求选择合适的方法
    2024-10-10
  • Spring Boot最经典的20道面试题你都会了吗

    Spring Boot最经典的20道面试题你都会了吗

    Spring Boot是现代化的Java应用程序开发框架,具有高度的灵活性和可扩展性,下面这篇文章主要给大家介绍了关于Spring Boot最经典的20道面试题,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • SpringBoot集成Swagger2生成接口文档的方法示例

    SpringBoot集成Swagger2生成接口文档的方法示例

    我们提供Restful接口的时候,API文档是尤为的重要,它承载着对接口的定义,描述等,本文主要介绍了SpringBoot集成Swagger2生成接口文档的方法示例,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • 爬虫技术详解

    爬虫技术详解

    本文全面的介绍了爬虫的原理、技术现状、以及目前仍面临的问题。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • Java中的CountDownLatch、CyclicBarrier和semaphore实现原理解读

    Java中的CountDownLatch、CyclicBarrier和semaphore实现原理解读

    这篇文章主要介绍了Java中的CountDownLatch、CyclicBarrier和semaphore实现原理详解,CountDownLatch中调用await方法线程需要等待所有调用countDown方法的线程执行,这就很适合一个业务需要一些准备条件,等准备条件准备好之后再继续执行,需要的朋友可以参考下
    2023-12-12
  • java 中JDBC连接数据库代码和步骤详解及实例代码

    java 中JDBC连接数据库代码和步骤详解及实例代码

    这篇文章主要介绍了java 中JDBC连接数据库代码和步骤详解及实例代码的相关资料,需要的朋友可以参考下
    2017-02-02

最新评论