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 基…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...