Java每日一练,技术成长不间断

news2024/11/14 21:01:09

目录

  • 题目
    • 1.下列关于继承的哪项叙述是正确的?
    • 2.Java的跨平台特性是指它的源代码可以在多个平台运行。()
    • 3.以下 _____ 不是 Object 类的方法
    • 4.以下代码:
    • 5.下面哪个流类不属于面向字符的流()
      • 总结

题目

选自牛客网

1.下列关于继承的哪项叙述是正确的?

A.在java中类允许多继承
B.在java中一个类只能实现一个接口
C.在java中一个类不能同时继承一个类和实现一个接口
D.java的单一继承使代码更可靠

正确答案:D

正确答案是D。在Java中,类的单一继承机制确实有助于提高代码的可靠性和可维护性。单一继承意味着一个类只能直接继承一个父类,这种设计简化了类之间的继承关系,避免了多继承可能带来的复杂性和二义性问题。例如,当一个类从多个父类继承相同的方法时,如果没有明确的规则来决定优先级,可能会导致运行时错误或不可预测的行为。

Java的设计者选择单一继承作为语言的基础特性,主要是为了简化语言的语义,减少潜在的编程错误,并使类层次结构更加清晰。虽然Java不支持类的多继承,但它通过接口的机制允许类实现多个接口,以此来达到某种程度的多继承功能,即一个类可以实现多个接口,从而继承多个抽象行为。这种方式既保持了代码的简洁性,又提供了足够的灵活性来满足复杂的设计需求。

因此,选项D“Java的单一继承使代码更可靠”是正确的描述。

对于A来说,这种多重继承是通过接口实现的,而不是类。也就是说,Java允许一个类实现多个接口,这可以被视为一种“横向”的多重继承,因为一个类可以从多个接口继承行为,但这些接口之间没有直接的继承关系。

而当谈到“多继承”时,通常指的是一个类直接继承多个父类的情况,这在Java中是不被支持的。Java设计者为了避免多继承带来的复杂性和潜在问题(如钻石问题,即两个父类有共同的父类导致方法选择的二义性),选择了单一继承的模型。在单一继承模型中,每个非抽象类只能继承一个直接父类,这有助于保持代码的清晰性和可维护性。

然而,Java通过接口的机制提供了一种变通的解决方案,允许类实现多个接口,从而获得多个抽象方法的定义。接口可以继承其他接口,形成层次结构,这在一定程度上模拟了多重继承的效果,但没有直接的类到类的多继承所带来的问题。

因此,Java确实支持通过接口实现的“多重继承”,但不支持类的“多继承”。这样的设计权衡了灵活性和代码的简洁性,是Java语言设计哲学的一部分。

2.Java的跨平台特性是指它的源代码可以在多个平台运行。()

A.正确
B.错误

正确答案:B
Java的跨平台特性并不直接指源代码可以在多个平台直接运行,而是指编译后的字节码(.class文件)可以在安装了Java虚拟机(JVM)的任何平台上运行。Java源代码首先被编译成平台无关的字节码,而不是特定平台的机器代码。字节码是一种中间语言,由JVM解释执行,而JVM则为不同的操作系统和硬件平台提供了相应的实现。这样,只要目标平台上安装了兼容的JVM,Java程序就可以在该平台上运行,而无需重新编译。

Java的跨平台特性是通过“一次编写,到处运行”(Write Once, Run Anywhere,
简称WORA)的原则实现的,这使得开发者能够在不同的操作系统和硬件架构上部署和运行相同的Java程序,而无需针对每个平台进行修改或重新编译。因此,Java的跨平台特性实际上是指编译后的字节码可以在多个平台上运行,而非源代码。

综上所述,Java的跨平台特性是基于JVM的,它允许编译后的Java程序在多种平台上运行,但源代码本身并不直接在不同平台运行,而是需要先被编译成字节码。

3.以下 _____ 不是 Object 类的方法

A.clone()
B.finalize()
C.toString()
D.hasNext()

正确答案是D,hasNext()

在Java中,Object类是所有类的基类,它提供了一些基本的方法,如clone()用于对象的浅拷贝,finalize()用于垃圾回收前的资源清理(尽管不推荐使用,且在很多现代JVM实现中已被弃用),以及toString()用于返回对象的字符串表示。这些方法都是Object类的成员方法。

然而,hasNext()方法并不是Object类的一部分,而是Iterator接口中的方法。Iterator接口用于遍历集合中的元素,hasNext()方法用于检查迭代器是否还有更多的元素可以迭代。因此,hasNext()方法与Object类无关,它属于集合框架的一部分,通常在实现Iterable接口的类或使用迭代器模式的类中找到。

因此,选项D,hasNext(),不是Object类的方法。

4.以下代码:

public class Test {
private static int j = 0;

private static Boolean methodB(int k) {
    j += k;
    return true;
}

public static void methodA(int i) {
    boolean b;
    b = i < 10 | methodB(4);
    b = i < 10 || methodB(8);

}

public static void main(String args[]) {
    methodA(0);
    System.out.println(j);
}

}
结果是什么?
A.The program prints”0”
B.The program prints”4”
C.The program prints”8”
D.The program prints”12”
E.The code does not complete.

正确答案:B这段代码的主要逻辑在于methodA方法中的两个布尔表达式,以及methodB方法对静态变量j的修改。我们来逐步分析:

  1. methodB方法接收一个整数参数k,将其加到静态变量j上,并返回true。每次调用methodB都会增加j的值。

  2. methodA方法中的第一个布尔表达式b = i < 10 | methodB(4);使用了按位或|操作符,但是Java中布尔运算通常使用逻辑运算符&&||。这里按位或|实际上会将布尔值转换为整数,然后进行位运算。不过,由于methodB总是返回true,在布尔上下文中会被解释为非零值,因此这个表达式总是为真,methodB(4)会被调用,使得j的值增加4。

  3. 第二个布尔表达式b = i < 10 || methodB(8);使用了逻辑或||操作符,这意味着如果i < 10为真(在i为0时确实为真),methodB(8)不会被调用,因为左侧表达式已经确定了整个表达式的真值。因此,这里methodB(8)不会被执行。

  4. 最终,在main方法中调用methodA(0)methodB(4)会被调用一次,使得j的值从0变为4。

  5. 打印语句System.out.println(j);将输出此时j的值,也就是4。

因此,正确答案是B,程序将打印"4"。

5.下面哪个流类不属于面向字符的流()

A.BufferedWriter
B.FileInputStream
C.ObjectInputStream
D.InputStreamReader

正确答案是B和C,FileInputStreamObjectInputStream

面向字符的流(即字符流)在Java中主要用于处理文本数据,它们操作的是字符,而不是字节。字符流类通常继承自ReaderWriter。在提供的选项中:

  • BufferedWriter是面向字符的流,它继承自Writer类,用于提高写入字符数据的效率。

  • FileInputStream不是面向字符的流,而是面向字节的流,它继承自InputStream类,用于读取文件中的原始字节数据。

  • ObjectInputStream也不是面向字符的流,它是面向对象的流,用于反序列化对象,即从流中读取对象。它继承自InputStream类,处理的是字节数据,但其目的是读取和重建Java对象。

  • InputStreamReader是面向字符的流,它继承自Reader类,用于将字节流转换为字符流,通常用于读取使用特定字符集编码的文本数据。

因此,FileInputStreamObjectInputStream不属于面向字符的流,而属于面向字节的流或面向对象的流。选项B和C是正确的。

总结

通过持续的实践来巩固知识和提升技术水平。加油!!!请添加图片描述

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

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

相关文章

AI系统测试方法|变异测试的流程及优化技术

变异测试是AI系统测试中较为常见的一种测试方法。通过引入人工制造的缺陷来评估系统的健壮性。在AI系统测试实践中&#xff0c;变异测试解决了对测试套件进行有效性和充分性评估的难题。本文将重点探讨变异测试在AI系统测试中的执行流程&#xff0c;呈现一个完整的测试框架&…

Apple intelligence 正式开启测试!第一波文本工具测试体验来啦!

Apple Intelligence 开启测试了&#xff01;苹果带着它的人工智能走进现实了&#xff01; 但是&#xff0c;坏消息是&#xff0c;目前Apple Intelligence仅支持美国地区使用美英语言的开发者账户使用&#xff0c;国行的小伙伴不要急着更新了。 本次测试内容为WWDC2024预告中公布…

PTA 6-2 多项式求值

6-2 多项式求值&#xff08;15分&#xff09; 本题要求实现一个函数&#xff0c;计算阶数为n&#xff0c;系数为a[0] ... a[n]的多项式 在x点的值。 函数接口定义&#xff1a; double f( int n, double a[], double x ); 其中n是多项式的阶数&#xff0c;a[]中存储系数&…

【Qt】QWidget的windowOpacity属性 cursor属性 font属性

一.windowOpacity属性 1.概念&#xff1a; windowOpacity属性是Qt中QWindow类的一个属性。它用于设置窗口的不透明度&#xff08;透明度&#xff09;。 窗口的不透明度值范围是0.0到1.0之间&#xff0c;其中0.0表示完全透明&#xff0c;1.0表示完全不透明。默认情况下&#…

Python科研数据可视化教程

原文链接&#xff1a;Python科研数据可视化教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247609609&idx4&sn8629ee10544f43b46993694d929843d0&chksmfa826ceecdf5e5f8ca4fbc72104c3488d5c53c0735f41f393c9a494aceddf2b93c8eb5622813&token214…

部署一个nodejs项目+配置server

1.jdk环境 tomcat服务器需要jdk环境 版本对应 ​ tomcat9>jdk1.8 ​ tomcat10>jdk17 配置系统变量JAVA_HOME 2.nginx平滑升级&#xff0c;不停服务升级nginx服务器&#xff0c;1.26.1升级到1.27.0 3.负载均衡&#xff0c;使用nginx管理后端服务器&#xff0c;…

基础复习(IO流)

1.File类 创建对象 File f1 new File("D:/resource/ab.txt"); File f2 new File("D:\\resource\\abc.txt"); 基础方法 创建与删除方法 1、public boolean createNewFile()&#xff1a;创建一个新文件&#xff08;文件内容为空&#xff09;&#xff0c;…

区块链技术在智能城市中的创新应用探索

随着全球城市化进程的加速和信息技术的快速发展&#xff0c;智能城市成为了未来城市发展的重要方向。在智能城市建设中&#xff0c;区块链技术作为一种去中心化、安全和透明的分布式账本技术&#xff0c;正逐渐展现出其在优化城市管理、提升公共服务和增强城市安全性方面的潜力…

1.6 树和二叉树

1.树的基本概念 2.二叉树的概念和性质 2.1.二叉树性质 1&#xff09;结点个数 2&#xff09;第i层&#xff0c;最多结点个数 3&#xff09;者深度为k,前k层最多结点个数 4&#xff09;叶子结点个数 2.2.完全二叉树性质 1&#xff09;结点个数 2&#xff09;第i层最多节…

云计算实训18——基于域名配置虚拟主机、基于ip配置虚拟主机、基于端口配置虚拟主机、配置samba、部署nfs服务器

一、配置文件的结构 1.首先查看配置文件 [rootstatic-server ~]# vim /usr/local/nginx/conf/nginx.conf 使用grep指令查看配置文件&#xff0c;同时不看空行不看注释 [rootstatic-server ~]# grep -Ev "#|^$" /usr/local/nginx/conf/nginx.conf 2.备份文件 将原有…

ComfyUI插件:ComfyUI Impact 节点(四)

前言&#xff1a; 学习ComfyUI是一场持久战&#xff0c;而 ComfyUI Impact 是一个庞大的模块节点库&#xff0c;内置许多非常实用且强大的功能节点 &#xff0c;例如检测器、细节强化器、预览桥、通配符、Hook、图片发送器、图片接收器等等。通过这些节点的组合运用&#xff0…

mediawiki 启用 Minerva 皮肤后报错 哎呀!您在$wgDefaultSkin定义的wiki默认皮肤minervaneue不可用。

嗨喽大家好啊我是 kx 这是个常见的问题&#xff0c;废话不多说直接上解决方法 Minerva 皮肤在他的官网有说明怎么办 连接放到下面&#xff1a; https://www.mediawiki.org/wiki/Skin:Minerva_Neue 懒得看的话我把官网的话复制下来了&#xff0c;直接看就行了&#xff1a; 安…

JAVA通过debezium实时采集mysql数据

前期准备 需要提前安装mysql并且开启binlog,需要准备kafka和zookeeper环境 示例采用debezium1.9.0版本 Maven配置 <version.debezium>1.9.0.Final</version.debezium> <dependency> <groupId>io.debezium</groupId> <artifactId>debe…

【大模型系列篇】本地问答系统-部署Ollama、Open WebUI

部署本地大模型&#xff0c;结合Ollama、Open WebUI以及本地RAG&#xff08;Retrieval-Augmented Generation&#xff09;可以为用户提供一个强大的本地知识库和交互式对话系统。以下是详细的部署步骤和功能介绍&#xff1a; 一、部署Ollama 访问Ollama官网&#xff1a;首先&…

【3】Blazor链接数据库

【3】Blazor链接数据 一、引入Nuget包二、添加链接字符串三、创建DbContext四、注入SqlServer数据库五、执行数据库迁移六、创建用户信息页面七、结果展示 一、引入Nuget包 Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFramework…

Kafka的搭建及使用

Kafka搭建及使用 Kafka搭建 1、上传解压修改环境变量 # 解压 tar -zxvf kafka_2.11-1.0.0.tgz -C /usr/local/soft mv kafka_2.11-1.0.0 kafka-1.0.0tar -xvf 是一个在Unix和类Unix操作系统&#xff08;如Linux和macOS&#xff09;中用于解压缩或解包.tar文件的命令。 tar -…

java调用WebService接口

案例&#xff1a; 接口&#xff1a; http://xxxxx:8080/GetSPService.asmx 调用方法&#xff1a;GetSPByStnCodeToJsonStr 参数1&#xff1a;begin 开始时间 格式 yyyymmdd hh:mi &#xff08;日和小时之间有空格&#xff09; 例如&#xff1a;20230718 06:00 参数2: end …

IO模型思维导图

背景 &#xff1a; 并发服务器模型可以在同一时刻响应多个用户请求 多路复用IO&#xff1a; 4.多路复用IO 1.select 2.poll 3.epoll 1.select 缺点: 1.select监听文件描述符最大个数为1024 &#xff08;数组&#xff…

【CN】Argo 持续集成和交付(二)

7.25.通知 概述 Argo CD 通知持续监控 Argo CD 应用程序&#xff0c;并提供一种灵活的方式来通知用户应用程序状态的重要变化。使用灵活的触发器和模板机制&#xff0c;可以配置何时发送通知以及通知内容。Argo CD 通知包含有用的触发器和模板目录。因此&#xff0c;可以直接…

什么是住宅IP代理?有何用途?

在大数据时代&#xff0c;互联网成为我们生活与工作中不可或缺的一部分。然而&#xff0c;随着网络环境的日益复杂&#xff0c;隐私保护、网络访问限制等问题也逐渐凸显&#xff1b;以及跨境业务蓬勃发展。在这样的背景下&#xff0c;住宅IP代理作为一种技术解决方案&#xff0…