每日一练,java07

目录

  • 题目
    • 1.请问运行主要的程序会打印出的是什么()
    • 2.下面论述正确的是()?
    • 3.下面哪些Java中的流对象是字节流?
    • 4.关于以下代码的说明,正确的是( )
    • 5.若需要定义一个类,下列哪些修饰符是允许被使用的?( )
  • 复习知识点
    • 将List和HashSet的区别整理成了以下表格:
    • equals

题目

选自牛客网

1.请问运行主要的程序会打印出的是什么()

public class Test{
public static void main(String [] args){
List list=new ArrayList();
list.add(“a”);
list.add(“b”);
list.add(“a”);
Set set=new HashSet();
set.add(“a”);
set.add(“b”);
set.add(“a”);
System.out.println(list.size()+“,”+set.size());
}
}

A.2,2
B.2,3
C.3,2
D.3,3

正确答案是 C. 3,2。 在 main 方法中,创建了一个 ArrayList 对象 list,并添加了元素 “a”、“b” 和 “a”。
然后,创建了一个 HashSet 对象 set,并添加了相同的元素 “a”、“b” 和 “a”。HashSet会自动去除重复的元素,因此 set 中只包含 “a” 和 “b” 两个元素。
最后,输出 list 和 set 的大小,即元素的个数。因此,输出结果为 3,2。 ArrayList 允许重复元素,而 HashSet 不允许重复元素。当向 HashSet中添加重复元素时,它会忽略该元素。因此,set 的大小为 2。而 list 的大小为 3,因为它包含了所有添加的元素。


2.下面论述正确的是()?

A.如果两个对象的hashcode相同,那么它们作为同一个HashMap的key时,必然返回同样的值
B.如果a,b的hashcode相同,那么a.equals(b)必须返回true
C.对于一个类,其所有对象的hashcode必须不同
D.如果a.equals(b)返回true,那么a,b两个对象的hashcode必须相同

正确答案是 D. 如果 a.equals(b) 返回 true,那么 a,b 两个对象的 hashcode 必须相同。 hashCode
方法返回对象的哈希码,它是对象在内存中的地址的逻辑表示。在 HashMap 中,如果两个对象的 hashcode
相同,它们可能会被放置在同一个桶(bucket)中。但是,这并不意味着它们必须返回同样的值。equals 方法用于比较两个对象是否相等。如果
a.equals(b) 返回 true,那么 a 和 b 应该具有相同的 hashcode。但是,如果两个对象的 hashcode
相同,它们并不一定相等。因此,A 和 B 选项是错误的。 C 选项是错误的,因为一个类的所有对象的 hashcode
并不必须不同。不同的对象可以具有相同的 hashcode。 D 选项是正确的,如果 a.equals(b) 返回 true,那么 a 和 b
必须具有相同的 hashcode。这是 equals 方法的定义所要求的。在 Java 中,equals
方法用于比较两个对象的值是否相等,而 hashcode 方法用于获取对象的哈希码。如果两个对象相等,它们的哈希码也必须相等。


3.下面哪些Java中的流对象是字节流?

A.FileInputStream
B.BufferedInputStream
C.PushbackInputStream
D.ByteArrayInputStream

正确答案是 A、B、C、D。所有列出的流对象都是字节流。 在 Java 中,字节流是用于处理二进制数据的流,它们以字节为单位读写数据。FileInputStream、BufferedInputStream、PushbackInputStream 和 ByteArrayInputStream 都是 InputStream 的子类,用于读取字节数据。FileInputStream
用于从文件中读取字节,BufferedInputStream 提供缓冲功能以提高读取效率,PushbackInputStream 允许将字节推回流中,ByteArrayInputStream 从字节数组中读取数据。因此,所有这些流对象都是字节流。


4.关于以下代码的说明,正确的是( )

class StaticStuff{
static int x=10;
static {
x+=5;
}
public static void main(String args[ ]){
System.out.println(“x=” + x);
}
static { x/=3;}
}

A.3行与9行不能通过编译,因为缺少方法名和返回类型
B.9行不能通过编译,因为只能有一个静态初始化器
C.编译通过,执行结果为:x=5
D.编译通过,执行结果为:x=3

正确答案:C
这段Java代码定义了一个名为StaticStuff的类,其中包含一个静态变量x和两个静态初始化块。静态初始化块在类加载时执行,用于初始化静态变量。

代码的第3行和第9行都是静态初始化块: java static { x+=5; } ``````java static { x/=3;}
每个初始化块都会按它们在代码中出现的顺序执行。首先,x被初始化为10,然后在第一个初始化块中,x的值增加5,变为15。在接下来的初始化块中,x的值被3整除,结果为5。

因此,当main方法被调用时,x的值已经是5,System.out.println("x=" + x);将会输出x=5

选项C正确,编译通过,执行结果为:x=5。选项A和B都是错误的,因为静态初始化块不需要方法名和返回类型,同时Java允许一个类有多个静态初始化块,只要它们的执行顺序是确定的。选项D也是错误的,因为最终的输出结果是5,而不是3。


5.若需要定义一个类,下列哪些修饰符是允许被使用的?( )

A.static
B.package
C.private
D.public

正确答案:ACD 在Java中,定义一个类时可以使用的修饰符确实依赖于这个类的类型,即它是一个顶级类、内部类还是成员类。

根据题目的描述,如果题目中没有特别指明是内部类还是外部类,通常默认讨论的是顶级类,因此在顶级类的情况下,合法的修饰符是publicabstractfinal。如果考虑内部类的情况,则staticprivate等修饰符也是合法的。

因此,如果题目没有特别说明类的类型,最安全的答案应该是D.public。然而,如果题目是在讨论内部类或成员类的上下文中,那么A.staticC.private也是合法的。在没有上下文的情况下,通常我们假设题目指的是顶级类。


复习知识点

将List和HashSet的区别整理成了以下表格:

集合类型描述
List有序、可重复,元素按插入顺序排列,允许null值,可通过索引访问,实现类包括ArrayList和LinkedList。
HashSet无序、不可重复,元素无固定顺序,不允许null值,使用hash table存储,快速查找。

这个表格总结了List和HashSet的主要特性及区别。


equals

equals()相等的两个对象hashCode()一定相等。

hashCode()相等的两个对象equal()不一定相等。


  • 顶级类(Top-Level Class):顶级类是定义在自己文件中的类,文件名与类名相同。顶级类的合法修饰符包括publicabstractfinalprotectedprivate不能用于顶级类,因为它们意味着某种访问控制,而顶级类的可见性是固定的(对于public类是全局可见,对于没有修饰符的类是在同一个包内可见)。

  • 成员类(Member Class):成员类是定义在另一个类(外部类)中的类。成员类可以使用staticpublicprotectedprivateabstractfinal等修饰符。static修饰符表示这个成员类是静态成员类,它不依赖于外部类的实例。

  • 局部类(Local Class):局部类是在方法、构造器或初始化块中定义的类。局部类可以使用publicabstractfinal修饰符。privateprotected不能用于局部类,因为它们的可见性是局部的,仅在定义它们的代码块内有效。

  • 匿名类(Anonymous Class):匿名类没有名字,通常用于实现接口或继承类。由于它们没有名字,因此不能使用任何修饰符。

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

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

相关文章

普元EOS学习笔记-EOS项目HTTP访问安全和权限控制

前言 对于企业应用系统,出于安全和权限控制的目的,需要对http请求做若干控制。 比如文件上传的时候要控制不允许上传的文件后缀。 又比如控制应用程序中的哪些资源不允许被访问。 EOS项目通过 xml配置文件来实现这一需求。 Http访问管理模块 在EOS项…

Keepalived、MyCAT 和 MHA这三者之间的区别

最近公司要做主备数据库备份和自动切换,先简单的了解了一下这三者的区别。 要做一个主库宕机之后自动切换备库的功能,但是上网搜索了一下发现有三个中间件都可以解决这个问题。 所以就来说一下这三个的业务场景和区别,以及哪一个更加轻量级 …

Spring JPA不生效

今天排查老半天发现数据源被排除装配了,把这个去掉就行了 SpringBootApplication(exclude DataSourceAutoConfiguration.class)

vue项目的路由如何传参,应用场景

路由传参方法一: params 1. 在路由的配置中 path: url:proid 先在配置中添加 2. 跳转页面的时候携带拼接参数 router.push(url proid) 3. 在进入的页面通过 useRoute 进行接收 4. const route useRoute() 5. console.log(route.params.proid); 路由传参方法二…

DBoW3相关优化脉络

1 DBow3 GitHub - rmsalinas/DBow3: Improved version of DBow2 2 优化后得到fbow GitHub - rmsalinas/fbow: FBOW (Fast Bag of Words) is an extremmely optimized version of the DBow2/DBow3 libraries. 其中fbow是ucoslam的一部分; ucoslam GitHub - la…

【C++版本】protobuf与gRPC

文章目录 一、Protobuf二、安装以及使用protoc参考 一、Protobuf Google Protocol Buffers(protobuf)是一种语言中立、平台中立的序列化协议,旨在高效地将结构化数据进行序列化和反序列化。它主要用于通信协议、数据存储和其他需要高效编码和…

封装和桥接Unity 协程体系

简介 协程(Coroutine)在C#中是一种特殊的函数,它允许开发者编写可以暂停执行并在未来某个时刻恢复执行的代码块。协程通常用于实现异步操作,如延时执行、等待某个事件发生、或者分段执行复杂的任务。在Unity游戏引擎中&#xff0c…

(Arxiv-2023)MobileDiffusion:移动设备上即时文本到图像生成

MobileDiffusion:移动设备上即时文本到图像生成 Paper Title:MobileDiffusion: Instant Text-to-Image Generation on Mobile Devices Paper是谷歌出品 Paper地址 图 1:MobileDiffusion 用于 (a) 文本到图像的生成。(b) Canny 边缘到图像、风…

docker容器cuda不可用,怎么解决?

通过Docker 构建的镜像中,启动之后,发现容器内部读取不到显卡驱动nvidia-smi 1、设置 NVIDIA Docker 存储库 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add

Docker容器基础篇

一.Docker容器简要介绍 Docker 是一个开源项目,旨在提供轻量级的应用容器化解决方案。它允许开发者打包应用及其所有依赖项到一个标准化的单元中,称为容器。这些容器可以在开发人员的工作环境中构建,然后轻松地在不同的计算机、服务器或云平…

Linux更换pip下载镜像源

Windows中修改pip下载源-CSDN博客 本机Linux发行版本: Rocky_linux9.4 方法一: [rootlocalhost ~]# mkdir /root/.pip [rootlocalhost ~]# vim /root/./.pip/pip.conf [global] index-url http://mirrors.aliyun.com/pypi/simple/[install] trusted-hostmirror…

Laravel Mix与Webpack集成:打造现代化前端开发流程

Laravel Mix与Webpack集成:打造现代化前端开发流程 Laravel不仅仅是一个后端框架,它还为前端开发提供了强大的工具。Laravel Mix是一个强大的前端集成工具,它使用Webpack作为底层,为Laravel项目提供了一系列编译和热重载功能。本…

Redis的分布式锁

目录 一、定义与原理 基于Redis的分布式锁 获取锁 释放锁 锁误删问题:因为key值一样,将别人的锁删掉了 锁误判问题二:判断锁和释放锁不是原子性的 Lua脚本 分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁 分布式锁的优点…

Spring Cache常用注解

依赖代码如下&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency> 常用注解详解 1. Cacheable 作用&#xff1a;主要用于配置方法&#xff0c;使其…

Java编写SIP协议

1、编写Server代码 package com.genersoft.iot.vmp.sip; import javax.sip.*; import javax.sip.message.*; import javax.sip.header.*; import java.util.*;public class SimpleSipServer implements SipListener {private SipFactory sipFactory;private SipStack sipStack…

【前端】一文带你了解 CSS

文章目录 1. CSS 是什么2. CSS 引入方式2.1 内部样式2.2 外部样式2.3 内联样式 3. CSS 常见选择器3.1 基础选择器3.1.1 标签选择器3.1.2 类选择器3.1.3 id 选择器3.1.4 通配符选择器 3.2 复合选择器3.2.1 后代选择器 4. CSS 常用属性4.1 字体相关4.2 文本相关4.3 背景相关4.4 设…

前端必备基础【网络通信】(2024最新版)

Ajax Asynchronous Javascript and XML 的缩写&#xff0c;是使用 JS 发起网络通信的技术统称&#xff0c;具体步骤为&#xff1a; 创建 XMLHttpRequest 实例发出 HTTP 请求接收服务器传回的数据更新网页数据&#xff08;通常是部分内容&#xff0c;而不是整个网页&#xff09…

LLM - 理解 大模型 Batch 推理的 Padding Side (左填充或右填充)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/140697827 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 使用 Left Padding (左填充) 或者 Right Padding (右填充),HuggingFac…

DBeaver安装与使用教程 免费的连接mysql数据库软件

一、DBeaver安装 &#xff08;一&#xff09;Dbeaver下载 DBeaver 是一个通用的数据库管理工具和 SQL 客户端&#xff0c;免费&#xff0c;跨平台&#xff0c;支持 MySQL, PostgreSQL, Oracle, DB2, MSSQL, Sybase, Mimer, HSQLDB, Derby, 以及其他兼容 JDBC 的数据库。 官网…

通常指的是将数据存储在远程服务器上

云存储:通常指的是将数据存储在远程服务器上,而不是本地计算机上。对于AWS(Amazon Web Services),云存储服务主要由S3(Simple Storage Service)提供。boto3:这是AWS的官方Python SDK,它允许Python开发者与AWS服务进行交互。S3():在boto3中,S3()是一个客户端对象,用…