Java每日一练,技术成长不间断
目录
- 题目
- 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
的修改。我们来逐步分析:
methodB
方法接收一个整数参数k
,将其加到静态变量j
上,并返回true
。每次调用methodB
都会增加j
的值。
methodA
方法中的第一个布尔表达式b = i < 10 | methodB(4);
使用了按位或|
操作符,但是Java中布尔运算通常使用逻辑运算符&&
和||
。这里按位或|
实际上会将布尔值转换为整数,然后进行位运算。不过,由于methodB
总是返回true
,在布尔上下文中会被解释为非零值,因此这个表达式总是为真,methodB(4)
会被调用,使得j
的值增加4。第二个布尔表达式
b = i < 10 || methodB(8);
使用了逻辑或||
操作符,这意味着如果i < 10
为真(在i
为0时确实为真),methodB(8)
不会被调用,因为左侧表达式已经确定了整个表达式的真值。因此,这里methodB(8)
不会被执行。最终,在
main
方法中调用methodA(0)
,methodB(4)
会被调用一次,使得j
的值从0变为4。打印语句
System.out.println(j);
将输出此时j
的值,也就是4。因此,正确答案是B,程序将打印"4"。
5.下面哪个流类不属于面向字符的流()
A.BufferedWriter
B.FileInputStream
C.ObjectInputStream
D.InputStreamReader
正确答案是B和C,
FileInputStream
和ObjectInputStream
。面向字符的流(即字符流)在Java中主要用于处理文本数据,它们操作的是字符,而不是字节。字符流类通常继承自
Reader
或Writer
。在提供的选项中:
BufferedWriter
是面向字符的流,它继承自Writer
类,用于提高写入字符数据的效率。
FileInputStream
不是面向字符的流,而是面向字节的流,它继承自InputStream
类,用于读取文件中的原始字节数据。
ObjectInputStream
也不是面向字符的流,它是面向对象的流,用于反序列化对象,即从流中读取对象。它继承自InputStream
类,处理的是字节数据,但其目的是读取和重建Java对象。
InputStreamReader
是面向字符的流,它继承自Reader
类,用于将字节流转换为字符流,通常用于读取使用特定字符集编码的文本数据。因此,
FileInputStream
和ObjectInputStream
不属于面向字符的流,而属于面向字节的流或面向对象的流。选项B和C是正确的。
总结
通过持续的实践来巩固知识和提升技术水平。加油!!!
相关文章:

Java每日一练,技术成长不间断
目录 题目1.下列关于继承的哪项叙述是正确的?2.Java的跨平台特性是指它的源代码可以在多个平台运行。()3.以下 _____ 不是 Object 类的方法4.以下代码:5.下面哪个流类不属于面向字符的流()总结 题目 选自牛…...

传知代码-上下位关系自动检测方法(论文复现)
代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 概述 本文复现论文 Hearst patterns revisited: Automatic hypernym detection from large text corpora[1] 提出的文本中上位词检测方法。 在自然语言处理中,上下位关系(Is-a Relations…...

从零开始的MicroPython(二) GPIO及代码应用
上一篇:http://t.csdnimg.cn/mg2Qt 文章目录 ESP32(NodeMCU-32S)简介引脚注意事项 类与对象的概念MicroPython的GPIO使用文档解释machine.PinPin.irq 点灯 ESP32(NodeMCU-32S) 简介 NodeMCU-32S 是安信可基于 ESP32-32S 模组所设计的核心开发板。该开发板延续了 N…...

嵌入式day15
数组指针 能够指向整个数组 一维数组: &a,考察a的数据类型 int(*p)[10]:表示一个指向长度为10的一维整型数组的指针 二维数组: 指向函数的指针 函数的函数名,即为函数的入口地址&#x…...

【电池管理系统(BMS)-01】 | 电池管理系统简介,动力电池和储能电池区别
🎩 欢迎来到技术探索的奇幻世界👨💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…...
C++ STL partial_sum 用法
一:功能 计算部分和,即遍历序列中每个元素,计算前 i 个元素的累加和,并将结果存在 i 的位置上。 二:用法 #include <iostream> #include <vector> #include <numeric>int main() {std::vector<…...

诚宜开张圣听不应妄自菲薄
拾人牙慧孜孜不倦 青山依旧在几度夕阳红朝闻道夕死可矣 青山依旧在几度夕阳红 安能以血补天我计不成乃天命也臣本布衣躬耕南阳大丈夫宁死不辱尔要试我宝剑是否锋利吗又待怎样休教天下人负我竖子不足与谋皇天不佑天下英雄唯使君与操尔青光殷殷其灿如炎备不量力欲申大义于天下我…...

Vue3 加载条(LoadingBar)
效果如下图:在线预览 APIs LoadingBar 参数说明类型默认值必传containerClass加载条容器的类名stringundefinedfalsecontainerStyle加载条容器的样式CSSProperties{}falseloadingBarSize加载条大小,单位 pxnumber2falsecolorLoading加载中颜色string‘…...

《CSS创意项目实战指南》:点亮网页,从实战中掌握CSS的无限创意
CSS创意项目实战指南 在数字时代,网页不仅是信息的载体,更是艺术与技术的融合体。通过CSS,你可以将平凡的网页转变为引人入胜的视觉盛宴,让用户体验跃升至全新高度。《CSS创意项目实战指南》正是这样一本引领你探索CSS无限可能的…...

[FBCTF2019]RCEService (PCRE回溯绕过和%a0换行绕过)
json格式输入ls出现index.php 这道题原本是给了源码的,BUUCTF没给 源码: <?phpputenv(PATH/home/rceservice/jail);if (isset($_REQUEST[cmd])) {$json $_REQUEST[cmd];if (!is_string($json)) {echo Hacking attempt detected<br/><br/…...

vue3后台管理系统 vue3+vite+pinia+element-plus+axios上
前言 项目安装与启动 使用vite作为项目脚手架 # pnpm pnpm create vite my-vue-app --template vue安装相应依赖 # sass pnpm i sass # vue-router pnpm i vue-router # element-plus pnpm i element-plus # element-plus/icon pnpm i element-plus/icons-vue安装element-…...

Mysql的事务隔离级别实现原理
一、事务隔离级别 mysql支持四种事务隔离级别: 读未提交:一个事务可以读取到另一个事务还未提交的数据;读已提交:一个事务可以读取到另一个事务已经提交的数据;可重复读:同一个事务中,无论读取…...

计算机体系结构:缓存一致性ESI
集中式缓存处理器结构(SMP) 不同核访问存储器时间相同。 分布式缓存处理器结构(NUMA) 共享存储器按模块分散在各处理器附近,处理器访问本地存储器和远程存储器的延迟不同,共享数据可进入处理器私有高速缓存…...

log4j2漏洞练习(未完成)
log4j2 是Apache的一个java日志框架,我们借助它进行日志相关操作管理,然而在2021年末log4j2爆出了远程代码执行漏洞,属于严重等级的漏洞。apache log4j通过定义每一条日志信息的级别能够更加细致地控制日志生成地过程,受影响的版本…...
常见网络攻击方法原理、应用场景和防御方法(一)
目录 1、SQL注入(SQL Injection)原理应用场景防御方法 2、跨站脚本攻击(XSS,Cross-Site Scripting)原理应用场景防御方法 3、跨站请求伪造(CSRF,Cross-Site Request Forgery)原理应用场景防御方法 4、文件上传漏洞原理应用场景防御方法 5、远程代码执行(…...

【leetcode十分钟】覆盖所有点的最少矩形数目(C++思路详解)
思路详解: 0. 题目情境并未限制矩形高度,故矩形数目的判断只和点的横坐标有关 1. 为了不重不漏地考虑到所有点,故笔者选择首先将二维数组中的点按横坐标的大小排序 //说明:本来笔者以为需要自定义sort排序,后来发现…...

【Vue3】默认插槽
【Vue3】默认插槽 背景简介开发环境开发步骤及源码 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的日子。本文内…...

华清day4 24-7-31
1> 使用父子进程完成两个文件的拷贝 父进程拷贝前一半内容,子进程拷贝后一半内容 子进程结束后退出,父进程回收子进程的资源 /* 使用父子进程完成两个文件的拷贝父进程拷贝前一半内容,子进程拷贝后一半内容 子进程结束后退出ÿ…...

搜维尔科技:Manus VR数据手套-适用于机器人、人工智能和机器学习解决方案
在劳动力短缺和工作环境日益严峻的今天,机器人技术正成为解决这些复杂问题的关键。MANUS™ 手指捕捉技术,结合先进的量子追踪技术,为机器人的精确操作和远程控制提供了准确且先进的解决方案。 技术亮点 实时数据捕捉:通过Quantum…...

知识文库杂志知识文库杂志社知识文库编辑部2024年第12期目录
文艺理论 现代高校书院对中国传统书院学术精神的汲取与转化 李奥楠;时新洁; 1-4 个案工作介入高中美术艺考生及家长心理调适的应用研究 魏星; 5-8《知识文库》投稿:cn7kantougao163.com 中华优秀传统文化视角下高校美育课程实践教学 李丛丛; 9-12 基…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...

宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...

群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...