Java面试题02

1.抽象类必须要有抽象方法吗?

        不一定。抽象类可以包含抽象方法,也可以不包含。抽象方法是没有实际实现的方法,需要 在子类中被具体实现。如果一个类中包含了至少一个抽象方法,那么这个类必须声明为抽象类。

2.普通类和抽象类有哪些区别?

        普通类可以被实例化,即可以创建对象。抽象类不能被直接实例化,只能被继承。普通类可 以有实例变量和方法,而抽象类可以包含抽象方法(可以有非抽象方法)。子类继承普通类时,不 需要实现父类的方法;但继承抽象类时,必须实现父类的抽象方法。

3.抽象类能使用 final 修饰吗?

        是的,抽象类可以使用final修饰。在Java中,final修饰的类不能被继承,无法有子类。如果 一个抽象类被final修饰,它就不能再被其他类继承,相当于限定了其子类的数量为零。

4.接口和抽象类有什么区别?

接口和抽象类都是用于实现多态性和定义规范。主要区别在于:

        一个类只能继承一个抽象类,但可以实现多个接口。

        抽象类可以包含抽象方法和非抽象方法,而接口只能包含抽象方法。

        抽象类可以有构造方法,接口不能有构造方法。

        接口中的字段默认为常量,而抽象类中可以有各种字段。

5.java 中 IO 流分为几种?

        Java中的IO流可以分为两类:字节流(Byte Stream)和字符流(Character Stream)。每 一类又分为输入流和输出流,共计四种类型:字节输入流、字节输出流、字符输入流和字符输出 流。

6.BIO、NIO、AIO 有什么区别?

        BIO(Blocking IO)是同步阻塞IO,每个连接都需要一个独立的线程处理,适合连接数较少 的情况;NIO(New IO,Non-Blocking IO)是同步非阻塞IO,通过单一线程管理多个连接,适合 高并发场景;AIO(Asynchronous IO)是异步非阻塞IO,适用于连接数较多且数据传输较大的情 况,通过异步事件通知方式工作。

在Java中,BIO、NIO和AIO是三种不同的输入输出(I/O)模型,它们在处理数据流的方式上有所不同。

  1. BIO (Blocking I/O)

    • 在BIO模型中,数据读写操作是阻塞的。这意味着在等待数据准备好进行读写操作时,线程会被阻塞。
    • 优点:实现简单。
    • 缺点:在高并发情况下,BIO的效率会降低,因为每个连接都需要一个线程进行处理,当连接数增加时,线程数也会大量增加,这将消耗大量的系统资源。
  2. NIO (Non-Blocking I/O)

    • 在NIO模型中,数据读写操作是非阻塞的。这意味着在等待数据准备好进行读写操作时,线程不会阻塞,可以继续执行其他任务。
    • 优点:可以更有效地利用系统资源,在高并发情况下表现较好。
    • 缺点:实现相对复杂,且对开发者的要求较高。此外,NIO并不能完全解决阻塞问题,它只是将阻塞点从数据读写操作转移到了Channel的Selector上。
  3. AIO (Asynchronous I/O)

    • 在AIO模型中,数据读写操作也是非阻塞的,但与NIO不同的是,AIO引入了Future的概念,当一个异步操作启动后,不需要等待它完成,可以继续执行其他任务。当操作完成后,可以通过Future获取操作结果。
    • 优点:可以更有效地利用系统资源,同时代码实现相对简单。
    • 缺点:虽然AIO在某些场景下表现优秀,但它并不是在所有场景下都表现得比NIO好,特别是在文件I/O方面。此外,AIO的普及度相对较低,一些旧的Java版本可能不支持。

在选择使用哪种I/O模型时,需要根据具体的应用场景和需求进行考虑。对于一些简单的、低并发的应用,使用BIO可能是一个不错的选择。对于高并发的场景,可能需要考虑使用NIO或AIO。同时,也要注意不同I/O模型的实现难度和适用场景。

7.Files 的常用方法都有哪些?

        Files类是java.nio.file包下用于操作文件和目录的工具类。其常用方法包括: readAllLines (读取所有行)、 write (写入数据到文件)、 createDirectory (创建目 录)、 copy (复制文件或目录)、 move (移动文件或目录)、 delete (删除文件或目录)、 isDirectory (判断是否是目录)、 isRegularFile (判断是否是普通文件)等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/133383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年亚太杯APMCM数学建模大赛ABC题辅导及组队

2023年亚太杯APMCM数学建模大赛 ABC题 一元线性回归分析类 回归分析(Regression Analysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。   – 按涉及变量个数划分   • 一元回归分析   • 多元回归分析   – 按自变量和因变量之间关…

一种单总线串口通信的调试方法

单总线的优点: 节省IO口,发送时可以将单片机的RXD设置为普通IO进行软件模拟发送,发送完设置为串口接收。避免通信干扰,由于是通过IO口对三极管/MOS管进行拉高拉低,外部信号不易对IO口进行干扰,EMI&#xf…

Ubuntu20.0工作区(workspace)介绍,切换工作区方式和快捷键

Ubuntu20.0工作区(workspace)介绍,切换工作区方式和快捷键 先修改一下ubuntu截屏的快捷键查看工作区新建工作区工作区切换 先修改一下ubuntu截屏的快捷键 修改为 查看工作区 按下Super键(即Windows键),可…

解决logstash插件logstash-outputs-mongodb一条数据失败后一直重复尝试

描述 从日志中读取数据时,有一条数据不符合规范,导致logstash读取数据插入时出错,而插件又无限尝试插入,导致堵塞。 解决方案 找到logstash文件夹目录,例如是:/data/logstash-7.3.2 cd /data/logstash-…

新手用mac电脑,对文件的疑问和gpt回应

macOs系统安装软件的疑问 所有问题mac系统文件结构我用mac安装软件,不用像windows一样创建文件夹吗只能安装到Applications文件夹吗安装程序的指南和提供的安装选项是什么软件安装在Applications下的/appName文件夹,它的所有数据都会在该文件夹吗如果卸载…

如何在搜索引擎中应用AI大语言模型,提高企业生产力?

人工智能尤其是大型语言模型的应用,重塑了我们与信息交互的方式,也为企业带来了重大的变革。将基于大模型的检索增强生成(RAG)集成到业务实践中,不仅是一种趋势,更是一种必要。它有助于实现数据驱动型决策&…

1.性能优化

概述 今日目标: 性能优化的终极目标是什么压力测试压力测试的指标 性能优化的终极目标是什么 用户体验 产品设计(非技术) 系统性能(快,3秒不能更久了) 后端:RT,TPS,并发数 影响因素01:数据库读写,RPC&#xff…

✔ ★【备战实习(面经+项目+算法)】 11.6 学习

✔ ★【备战实习(面经项目算法)】 坚持完成每天必做如何找到好工作1. 科学的学习方法(专注!效率!记忆!心流!)2. 每天认真完成必做项,踏实学习技术 认真完成每天必做&…

前端工程化(vue2)

一、环境准备 1.依赖环境:NodeJS 官网:Node.js 2.脚手架:Vue-cli 参考网址:安装 | Vue CLI 介绍:Vue-cli用于快速的生成一个Vue的项目模板。主要功能有:统一的目录结构,本地调试&#xff0…

【一、http】go的http基本请求方法

1、http的基本请求 package mainimport ("bytes""fmt""io""net/http""net/url" )func post(){r, err : http.Post("http://httpbin.org/post", "", nil)if err ! nil {fmt.Println("ss")}de…

嵌入式系统设计与应用---ARM指令集(学习笔记)

目录 本文图片截取自书本和老师的ppt 概述 指令格式 指令的条件码 ARM的寻址方式 立即寻址 寄存器寻址 寄存器间接寻址 寄存器移位寻址 变址寻址 多寄存器寻址 相对寻址 堆栈寻址 块复制寻址 ARM指令集简介 跳转指令 1.B指令 2.BL指令 数据处理指令 1.数据传…

大华同轴电缆低时延监控方案300ms

1.具体的方案如下: 同轴电缆可以最长支持500米,8路视频流,原始视频流 产品型号:DH-HAC-HFW2401M-I1 和 DH/HCVR7104HS-V6 京东的上宣称实时: 2.时延具体参数 找技术厂家咨询了具体的时延参数,厂家说无法…

SQL审计是什么意思?目的是什么?有什么好处?

很多刚入行的运维小伙伴对于SQL审计不是很了解,不知道其是什么意思?使用SQL审计的目的是什么?使用SQL审计的好处有哪些?这里我们大家就来一起聊聊,仅供参考哈! SQL审计是什么意思? 【回答】&…

c语言中文件的定义

#include <stdio.h> /*文件的定义&#xff1a; * 磁盘文件&#xff1a;指一组相关数据的有序集合&#xff0c;通常存储在外部介质&#xff08;如磁盘&#xff09;上&#xff0c;使用时才调用内存。 * 设备文件&#xff1a;在操作系统中把每一个与主机相连的输入、输出设…

【LIUNX】修改hostname方法

【LIUNX】修改hostname方法 临时修改永久生效方法1方法2修改后立即生效方法方法1方法2 临时修改 hostname <new-hostname>永久生效 方法1 vi /etc/hostname方法2 hostnamectl set-hostname <newhostname>修改后立即生效方法 方法1 sysctl kernel.hostname$(c…

【Redis】String字符串类型-内部编码使用场景

文章目录 内部编码使用场景缓存功能计数功能共享会话手机验证码 内部编码 字符串类型的内部编码有3种&#xff1a; int&#xff1a;8个字节&#xff08;64位&#xff09;的⻓整型&#xff0c;存储整数embstr&#xff1a;压缩字符串&#xff0c;适用于表示较短的字符串raw&…

ClickHouse开发系列

一、 ClickHouse详解、安装教程_clickhouse源码安装 二、ClickHouse 语法详解_clickhouse讲解 三、ClickHouse SQL 操作语句详解 四、ClickHouse 高级教程—官方原版 五、ClickHouse主键索引最佳实践 六、MySQL与ClickHouse集成 七、ClickHouse 集成MongoDB、Re…

BSN专网+医疗保险:MediConCen与BSN达成战略合作,提升理赔效率

近日&#xff0c;领先的香港保险技术解决方案提供商MediConCen与区块链服务网络&#xff08;BSN&#xff09;宣布建立战略合作伙伴关系&#xff0c;MediConCen将基于BSN专网构建其保险理赔自动化平台。此次合作的重点是在医疗保险中简化住院和门诊病人的非现金保险理赔&#xf…

淘宝API商品详情接口丨关键词搜索接口丨用户评论接口丨淘宝销量接口

淘宝API商品详情接口&#xff0c;关键词搜索接口&#xff0c;用户评论接口&#xff0c;淘宝销量接口如下&#xff1a; 淘宝/天猫获得淘宝商品详情 API 返回值说明 item_get-获得淘宝商品详情 1.公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在…

2023-11笔记

1.switch空指针异常 Exception in thread "main" java.lang.NullPointerException:Cannot invoke "String.hashCode()" because "<local2>" is nullat Study5.Test03.main(Test03.java:6)我们由此可以知道&#xff0c;switch语句部分情况下…