热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java理论基础题库精编_必备|Java核心知识点练习题库

本题库精选了Java核心知识点的练习题,旨在帮助学习者巩固和检验对Java理论基础的掌握。其中,选择题部分涵盖了访问控制权限等关键概念,例如,Java语言中仅允许子类或同一包内的类访问的访问权限为protected。此外,题库还包括其他重要知识点,如异常处理、多线程、集合框架等,全面覆盖Java编程的核心内容。

一、选择题

1.Java语言中,只限子类或者同一包中的类的方法能访问的访问权限是(C)

A、public B、private C、protected D、无修饰

private:Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。

default:即不加任何访问修饰符,通常称为“默认访问权限“或者“包访问权限”。该模式下,只允许在同一个包中进行访问。

protected:介于public和private之间的一种访问修饰符,一般称之为“保护访问权限”。被其修饰的属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。

public:Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包访问。

2.在以下供选择的方法中,属于接口MouseMotionListener的方法是(D)

A、mouseReleased()B、mouseEntered()C、mouseExited()D、mouseMoved()

3.以下是关于线程的叙述,正确的是(C)

A、多线程的使用可以提高设备的平行工作能力,但是使系统管理变得复杂

B、同一个进程下的线程都有自己的状态、专用数据段和独立的内存资源

C、线程是能独立运行的程序

D、进程的执行效率比线程的执行效率高

4.在编写访问数据库的Java程序时,ResultSet对象的作用是(D)

A、建立新数据库连接B、用来表示与数据库的连接

C、在指定的连接中处理SQL语句D、存储查询结果

5.关于方法main()的说法哪个正确?(C)

A.方法main()只能放在公共类中B.main()的头定义可以根据情况任意更改

C.一个类中可以没有main()方法D.所有对象的创建都必须放在main()方法中

6.抽象方法:(C)

A.可以有方法体(错)B.可以出现在非抽象类中

C.是没有方法体的方法D.抽象类中的方法都是抽象方法

7.this和super:(C)

A.都可以用在main()方法中B.都是指一个内存地址

C.不能用在main()方法中D.意义相同

8.字符流与字节流的区别在于(D)

A.前者带有缓冲,后者没有B.前者是块读写,后者是字节读写

C.二者没有区别,可以互换使用D.每次读写的字节数不同

9.类B是一个抽象类,类C是类B的非抽象子类,下列创建对象x1的语句中正确的是(C)。(抽象类不能被实例化,即不能创建对象)

A.B x1=new B();B.B x1=C();

C.C x1=new C();D.C x1=new B();

10.线程对象的生命周期中,哪个不是其经历的状态(A)。

(五种基本状态:新建;就绪;运行;阻塞;死亡)

A.中断B.运行C.就绪D.死亡

11.对于可以随着窗口的宽度变化而改变相应的控件的位置的布局对象是哪一种(A)

A、FlowLayout B、GridLayout

C、BordyLayout D、CardLayout

12、对于import java.awt.Button;以下那种说法错误(D)

A、Button属于java.awt包B、Button在java.awt目录下

C、Button在java.awt文件中D、Button属于Sun的类

13、用abstract定义的类(D)

A、可以被实例化B、不能派生子类

C、不能被继承D、只能被继承

14、continue语句(C)

A、只中断最内层的循环B、只中断最外层的循环

C、只中断所在层循环中的当次循环D、只中断某一层的循环

15、每个使用组件的程序必须有一个(B)

A、按钮B、容器C、菜单D、标签

16、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的(D)方法来完成一些画图操作。

A.start()B.stop()

C.init()D.paint()

二、判断题

1.对于容器javax.swing.JPanel,它的默认布局是BorderLayout。(×)JPanel中的默认布局是FlowLayout

2.Socket通常也称为套接字,用于描述IP地址和端口。(√)

3.线程的优先级在1至10之间,数值越小任务越紧急。(×)

线程的优先级用1-10之间的整数表示,数值越大优先级越高,即越高执行越快,默认的优先级为5。

Java语言的类只允许单继承。(√)

5.Java源程序的扩展名是.java,经过编译后的程序的扩展名是.class。(√)

6.在一个时间只能由一个线程访问的资源称为临界资源。访问临界资源的代码称为临界代码。(×)

多个线程间共享的数据称为临界资源

7.并发就是事件、任务在同一时刻开始。(×)(并行才是同一时刻开始)

8.URL在网络中是唯一的。(√)(一个URL必须唯一地,永久地代表一个在线对象)

三、填空题

1.Java语言采用多种机制来保证可移植性,其中最主要的是___java虚拟机___。

2.程序包声明的格式是__package包名.包名.包名…;。

3.当联编推迟至运行时间实现时,该联编过程称为_动态联编_____。

4.使用默认字节字符对应表,将字符串转化为字节数组的方法是___getBytes();。

5.在Swing中,带有滚动条的面板的类名是__JScrollPanel____。

6.组合框(JComboBox)是____文本框和列表_____的组合。

7.在Java语言中,文件随机访问可以利用___RandomAccessFile___类实现。

8.Java程序可以用纯Java的___JDBC_____驱动程序,实现与数据库连接。

9.下列哪个叙述是不正确的?(B)

A.JButton在javax.Swing包中

B.ActionEvcent在java.awt包中(其实在javax.Swing包中)

C.ActionListener在java.awt.event包中

D.Font类在java.awt包中

10.下列流中哪些不属于字节流(D)(菜鸟教程IO流讲解里面有详细介绍)

A.FileInputStream B.BufferedInputStream C.FileInputStream D.InputStreamReader

四、简答题

1.请写出Applet类中init()方法的功能。

init()方法:主要是为了Applet的正常运行做一些初始化的工作。

2.请写出空布局安置组件的两个步骤。

1)首先利用setLayout(null)语句将容器的布局设置为null布局(空布局)。

2)再调用组件的setBounds(int x,int y,int width,int height)方法设置组件在容器中的大小和位置,单位均为像素。

3.在Swing中,对话框有几种?并请写出它们的主要区别。

五种:文件对话框、消息对话框、输入对话框、确认对话框、颜色对话框

实现功能不同,调用的函数也不同

4.请写出用Runnable接口实现多线程的主要工作。(注意大小写类名以及变量的名称)

Public class MyRunnable implements Runnable{

Public void run(){

for(int i&#61;0;i<10000;i&#43;&#43;){

System.out.println("aaaaaaaaaaaaa");

}

}

Public class TestDemo{

Public static void main(String[]args){

MyRunnable mr&#61;new MyRunnable();

Thread t&#61;new Thread(mr);

T.start();//线程启动

}

}

5&#xff0e;编写一个程序&#xff0c;创建一个文本文件&#xff0c;从键盘输入字符到这个文本文件中&#xff0c;以END结束。

注意大括号不要漏了

import java.io.*;

import java.util.Scanner;

public class Demo4{

public static void main(String[]args){

//TODO Auto-generated method stub

System.out.println("请输入字符&#xff1a;");

Scanner scanner&#61;new Scanner(System.in);

String str&#61;scanner.next();

File f&#61;new File("d:\\ss.txt");

//字节流输出

FileOutputStream fos&#61;null;

try{

fos&#61;new FileOutputStream(f);

//定义一个数组

byte[]bytes&#61;new byte[1024];

//如何把String转换成byte数组

fos.write(str.getBytes());

}catch(Exception e){

//TODO Auto-generated catch block

e.printStackTrace();

}

finally

{

try{

fos.close();

}catch(IOException e){

//TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

6&#xff0e;Java语言的特点。

Java语言的特点&#xff1a;

(1)简单的

(2)面向对象的

(3)分布式的

(4)健壮性的

(5)安全的

(6)体系结构中立的

(7)可移植的

(8)解释型的

7&#xff0e;在Java中&#xff0c;怎样创建一个线程&#xff1f;

(1)通过继承Thread类创建线程

(2)通过实现Runnable接口创建线程

(3)通过Callable和Future创建线程

8.事件处理的三要素是什么&#xff1f;

1)事件源(Event Source)&#xff1a;即事件发生的场所&#xff0c;就是指各个组件&#xff0c;如按钮等&#xff0c;点击按钮其实就是组件上发生的一个事件&#xff1b;

2)事件(Event)&#xff1a;事件封装了组件上发生的事情&#xff0c;比如按钮单击、按钮松开等等&#xff1b;

3)事件监听器(Event Listener)&#xff1a;负责监听事件源上发生的特定类型的事件&#xff0c;当事件到来时还必须负责处理相应的事件&#xff1b;

9.抽象类与接口有何不同&#xff1f;

抽象类中可以存在非抽象的方法&#xff0c;接口中的方法被默认的变成抽象方法&#xff1b;

(2)实现抽象类的方法时,如果方法是抽象的,子类必须重写抽象的方法.如果方法不是抽象的,子类可以选择继承&#xff0c;实现了接口就必须实现接口中的所有方法,因为接口中的方法默认的全部都是抽象的方法&#xff1b;

(3)抽象类可以有私有的成员变量和成员方法&#xff0c;接口中的方法全都被默认的修饰为:public abstract类型的方法&#xff1b;

(4)一个类只能继承一个抽象类&#xff0c;一个类可以实现多个接口,接口可以实现多继承

(5)抽象类中的非抽象的方法可以选择继承&#xff0c;接口中的方法必须全部被重写,并且全部是公有的public方法.



推荐阅读
  • 深入解析动态代理模式:23种设计模式之三
    在设计模式中,动态代理模式是应用最为广泛的一种代理模式。它允许我们在运行时动态创建代理对象,并在调用方法时进行增强处理。本文将详细介绍动态代理的实现机制及其应用场景。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 云函数与数据库API实现增删查改的对比
    本文将深入探讨使用云函数和数据库API实现数据操作(增删查改)的不同方法,通过详细的代码示例帮助读者更好地理解和掌握这些技术。文章不仅提供代码实现,还解释了每种方法的特点和适用场景。 ... [详细]
  • 本文介绍如何使用 Angular 6 的 HttpClient 模块来获取 HTTP 响应头,包括代码示例和常见问题的解决方案。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 解决TensorFlow CPU版本安装中的依赖问题
    本文记录了在安装CPU版本的TensorFlow过程中遇到的依赖问题及解决方案,特别是numpy版本不匹配和动态链接库(DLL)错误。通过详细的步骤说明和专业建议,帮助读者顺利安装并使用TensorFlow。 ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • Linux环境下C语言实现定时向文件写入当前时间
    本文介绍如何在Linux系统中使用C语言编程,实现在每秒钟向指定文件中写入当前时间戳。通过此示例,读者可以了解基本的文件操作、时间处理以及循环控制。 ... [详细]
  • 黑马头条项目:Vue 文章详情模块与交互功能实现
    本文详细介绍了如何在黑马头条项目中配置文章详情模块的路由、获取和展示文章详情数据,以及实现关注、点赞、不喜欢和评论功能。通过这些步骤,您可以全面了解如何开发一个完整的前端文章详情页面。 ... [详细]
  • 探讨 HDU 1536 题目,即 S-Nim 游戏的博弈策略。通过 SG 函数分析游戏胜负的关键,并介绍如何编程实现解决方案。 ... [详细]
  • 在使用 Vue CLI 创建的项目中,引入样式模块(CSS Module)后,发现类名被自动修改。本文将详细解释这一现象并提供解决方案。 ... [详细]
author-avatar
香香画室_769
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有