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 基…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
