精进日常:每日练习与明智取舍的艺术

目录

  • 题目
    • 1.对于非运行时异常,程序中一般可不做处理,由java虚拟机自动进行处理。
    • 2.下面哪个关键字可以用于Java的构造方法上?
    • 3.以下代码执行的结果显示是多少( )?
      • 注解
      • 总结

题目

选自牛客网

1.对于非运行时异常,程序中一般可不做处理,由java虚拟机自动进行处理。

A.正确
B.错误
正确答案:B

在Java中,非运行时异常(也称为编译时异常或checked
exceptions)是通过java.lang.Exception类及其子类来定义的,但不包括java.lang.RuntimeException及其子类。非运行时异常通常表示应用程序的外部错误,如输入/输出错误或网络错误,这些错误是应用程序可以预见并应该处理的。

对于非运行时异常,程序必须显式处理它们。这意味着,要么在方法中捕获并处理这些异常,要么在方法签名中通过throws关键字声明这些异常,表明调用者需要处理它们。这是Java的编译时检查机制的一部分,目的是强制程序员在编写代码时就考虑到可能发生的异常情况,并提供相应的处理逻辑,以增强代码的健壮性和可维护性。

因此,选项B“错误”是正确的。程序中对于非运行时异常不能不做处理,而应该由开发者通过异常处理机制来管理,而不是依赖于Java虚拟机(JVM)自动处理。JVM会自动处理的是运行时异常(unchecked exceptions),这些异常通常是编程错误,如空指针异常、数组越界异常等,它们在编译时不需要声明,但在运行时由JVM捕获并处理。

2.下面哪个关键字可以用于Java的构造方法上?

A.final
B.static
C.synchronized
D.native
E.None of these.

正确答案:E
构造方法不能被子类继承,所以用final修饰没有意义。构造方法用于创建一个新的对象,不能作为类的静态方法,所以用static修饰没有意义。此外,Java语言不支持native或synchronized的构造方法。

3.以下代码执行的结果显示是多少( )?

在这里插入图片描述

A.true,false,true
B.false,true,false
C.true,true,false
D.false,false,true

正确答案:D
在 Java中,当我们使用基本数据类型和它们对应的包装类时,会涉及到自动装箱和自动拆箱的过程。自动装箱是指将基本数据类型自动转换为它们对应的包装类类型,而自动拆箱则是相反的过程。

在上述代码中,当我们将两个 Integer 对象进行比较时,使用了 “" 运算符。如果两个对象的引用地址相同,"” 运算符将返回 true,否则返回 false。
在 Java 中,对于 -128 到 127 之间的整数,JVM 会自动缓存这些整数的 Integer对象,以便于节省内存和提高性能。这意味着,当我们在代码中使用自动装箱将一个整数转换为 Integer 对象时,如果这个整数在 -128 到127 之间,JVM 将返回缓存中的同一个 Integer 对象的引用,而不是创建一个新的 Integer 对象。因此,当我们比较两个这样的Integer 对象时,“==” 运算符将返回 true。

但是,如果我们将两个大于 127 的整数进行比较,JVM 将创建两个不同的 Integer
对象,即使它们的值相同。因此,当我们比较两个这样的 Integer 对象时,“==” 运算符将返回 false。例如,如果我们有以下代码:

System.out.println(i5 == i6); // 输出 false ```在这种情况下,我们使用 "new" 关键字显式创建了两个不同的 Integer 对象,因此它们的引用地址不同,"==" 运算符将返回
false。如果我们要比较两个 Integer 对象的值,而不是它们的引用地址,我们应该使用 equals() 方法,而不是 "=="
运算符。例如:```java Integer i5 = new Integer(100); Integer i6 = new Integer(100);
System.out.println(i5.equals(i6)); // 输出 true ```在这种情况下,我们将两个 Integer 对象的值进行比较,而不是它们的引用地址,因此 equals() 方法将返回 true

4.Which statement declares a variable a which is suitable for referring to an array of 50 string objects?
下面哪个Java语句声明了一个适合于创建50个字符串对象数组的变量?
A.char a[][];
B.String a[];
C.String[] a;
D.Object a[50];
E.String a[50];
F.Object a[];

正确答案:BCF 在 Java 中,声明数组变量的语法是在数据类型后面加上一对方括号。例如,声明一个 int
类型的数组变量,可以写为 “int[] arr” 或者 “int arr[]”,这两种写法是等价的。因此,选项 B 和 C
都可以正确声明一个字符串数组变量,其中选项 B 使用了后置方括号,选项 C 使用了前置方括号。 选项 F 也可以正确声明一个 Object
类型的数组变量,但是它没有指定数组的大小。如果要指定数组的大小,可以使用以下语法: Object[] arr = new Object[50];

这样就创建了一个长度为 50 的 Object 类型的数组。 选项 A、D 和 E 都不是正确的声明字符串数组变量的语法。选项 A
声明了一个二维字符数组变量,选项 D 声明了一个长度为 50 的 Object 类型数组变量,但是没有指定数组的类型,选项 E
声明了一个长度为 50 的 String 类型数组变量,但是没有使用方括号来表示数组。

5.Stack通常是指“先进先出”的容器。( )

A.正确
B.错误
正确答案:B

Stack(栈)实际上是一种遵循“后进先出”(Last In, First
Out,简称LIFO)原则的数据结构。这意味着最后进入栈的元素将是第一个被取出的。这种数据结构在计算机科学中非常常见,用于各种场景,如函数调用的管理、表达式求值、回溯算法等。


6.Java语言中,下面哪个语句是创建数组的正确语句?( )
A.float f[][] = new float[6][6];
B.float []f[] = new float[6][6];
C.float f[][] = new float[][6];
D.float [][]f = new float[6][6];
E.float [][]f = new float[6][];
正确答案:ABDE

在Java中,数组的声明和创建可以采用不同的语法,但是每种语法都有其特定的规则。下面是对每个给出选项的分析:

A. float f[][] = new float[6][6];

  • 这是二维数组的声明和创建。数组f是一个浮点数的二维数组,它有6行6列。

B. float []f[] = new float[6][6];

  • 这是另一种声明二维数组的方法。数组f同样是一个浮点数的二维数组,它有6行6列。

D. float [][]f = new float[6][6];

  • 这与A选项的语法相同,只是数组的声明和创建在不同的行。数组f是一个浮点数的二维数组,它有6行6列。

E. float [][]f = new float[6][];

  • 这种语法创建的是一个“数组的数组”。数组f是一个包含6个元素的一维数组,每个元素都是一个浮点数数组(即列数组)。这种情况下,列数组的长度可以是不同的。但是,如果所有列数组的长度都相同,例如在创建时就初始化,那么它等价于创建一个标准的二维数组。

C. float f[][] = new float[][6];

  • 这个语句是不合法的,因为Java中数组的大小必须在创建时指定。这里的语法尝试创建一个未知长度的数组,然后为每一行指定一个固定长度,这在Java中是不允许的。

因此,正确答案是ABDE,它们都是合法的创建二维数组的语句。C选项是不合法的,因为它尝试使用一个不被支持的语法来创建数组。


注解

在Java中,@Override, @Deprecated, 和 @SuppressWarnings 是三个非常重要的注解,它们分别用于不同的目的:

  1. @Override注解

    • 这个注解用于方法声明上,表示当前方法覆盖了超类中的一个方法。
    • 如果一个方法被错误地标注了@Override(例如,方法的签名与超类中的方法不匹配,或者超类中不存在该方法),那么编译器将抛出一个错误。
  2. @Deprecated注解

    • 用于标记类、方法、构造器或字段为过时,不鼓励使用。
    • 当代码中使用了@Deprecated标记的元素时,编译器会发出警告。
    • 这个注解通常用于表明某个API或功能在未来可能被移除,或者有更优的替代方案。
  3. @SuppressWarnings注解

    • 这个注解用于抑制编译器的警告信息。
    • 它可以接受一个或多个字符串参数,每个字符串参数对应一种警告类型。
    • 例如,@SuppressWarnings("unchecked")用于抑制与泛型类型检查相关的警告。
    • 虽然使用这个注解可以避免编译时的警告,但它也可能掩盖潜在的问题,因此应谨慎使用。

下面是这三个注解的使用示例:

// 使用 @Override 注解
class BaseClass {public void method() {// 方法实现}
}class DerivedClass extends BaseClass {@Overridepublic void method() {// 覆盖方法的实现}
}// 使用 @Deprecated 注解
class SomeClass {@Deprecatedpublic void deprecatedMethod() {// 已废弃的方法实现}
}// 使用 @SuppressWarnings 注解
class SuppressingWarnings {@SuppressWarnings("unchecked")public void method() {List<String> list = (List<String>) new ArrayList(); // 抑制类型检查警告}
}

这些注解的使用可以提高代码的可读性和可维护性,同时也能帮助开发者更好地管理代码中的API使用和潜在的编译时警告。

总结

在这里插入图片描述
坚持有所为,有所不为。

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

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

相关文章

[工具推荐]前端加解密之Burp插件Galaxy

如果觉得该文章有帮助的&#xff0c;麻烦师傅们可以搜索下微信公众号&#xff1a;良月安全。点个关注&#xff0c;感谢师傅们的支持。 免责声明 本号所发布的所有内容&#xff0c;包括但不限于信息、工具、项目以及文章&#xff0c;均旨在提供学习与研究之用。所有工具安全性…

前后端demo-WarehouseManagement

前端 数据库 其他 1.git下来&#xff0c;解决依赖问题&#xff0c;前端报错因为字体文件丢失&#xff0c;下载字体放到fonts文件夹字体.zip官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘 2.后端login验证&#xff0c;前端需要账号格式&#xff0c;linqq.com 3.自己…

国产麒麟操作系统下搞单机版

去年纪委单位的一个项目&#xff0c;因为单位保密性质&#xff0c;档案必须要保密&#xff0c;要求采用单机版&#xff0c; 要求跟EXE那样&#xff0c;双击打开&#xff0c;阿公单位信息人员电脑操作水平化滞后还是相当严重啊。 去年已经给他花了时间按他们的要求实现了。 上周…

嵌入式C++、ROS 、OpenCV、SLAM 算法和路径规划算法:自主导航的移动机器人流程设计(代码示例)

在当今科技迅速发展的背景下&#xff0c;嵌入式自主移动机器人以其广泛的应用前景和技术挑战吸引了越来越多的研究者和开发者。本文将详细介绍一个嵌入式自主移动机器人项目&#xff0c;涵盖其硬件与软件系统设计、代码实现及项目总结&#xff0c;并提供相关参考文献。 项目概…

Day14-Servlet后端验证码的实现

图片验证码的生成采用的是Kaptcha&#xff1b; Kaptcha是一个高度可配置的验证码生成工具&#xff0c;由Google开源。它通过一系列配置文件和插件&#xff0c;实现了将验证码字符串自动转换成图片流&#xff0c;并可以与session进行关联&#xff0c;从而在验证过程中使用&#…

unity2D游戏开发17战斗精灵

导入 将PlayerFight32x32.png拖Player文件夹进去 设置属性 创建动画剪辑 选中前四帧,右键Create|Animation,将动画命名为player-ire-east 其他几个动画也创建好后,将其拖到Animations|Animations文件夹 选中PlayerController,再点击Animator 创建新的Blend Tree Graph,并重…

mysql逻辑架构与sql执行过程

目录 1.背景 2.mysql逻辑架构图 3.逻辑架构解读 第一层:连接层 第二层:服务层 1.Management Serveices & Utilities 2.SQL Interface:SQL接口 3.Parser:解析器 4.Optimizer:查询优化器 5.Caches 和 Buffers:查询缓存组件 第三层:存储引擎层 第四层:数据存储层 …

后端笔记(2)--JDBC

1.JDBC简介 *JDBC(Java DataBase Connectivity)就是使用java语言操作关系型数据库的一套API *JDBC本质&#xff1a;&#xff08;可以使用同一套代码&#xff0c;操作不同的关系型数据库&#xff09; ​ *官方定义的一套操作所有关系型数据库的规则&#xff0c;即接口 ​ *各…

基于java的人居环境整治管理系统(源码+lw+部署文档+讲解等)

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝20W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…

“八股文”面试题:是招聘程序员的金科玉律?

引言 随着互联网的发展&#xff0c;现代企业对程序员的需求日益增加。在招聘过程中&#xff0c;许多公司采用了“八股文”式的面试题目来筛选候选人。这些题目往往涵盖了算法、数据结构、系统设计等方面的基础知识。然而&#xff0c;对于“八股文”在实际工作中的作用&#xf…

为什么越来越多的IT青年转行网络安全?

目前&#xff0c;我国互联网已经从爆发增长期进入平稳发展阶段&#xff0c;同时每年大量计算机相关专业的毕业生涌入就业市场&#xff0c;导致IT行业逐渐趋于饱和状态&#xff0c;甚至出现裁员现象&#xff0c;去年很多大厂都有裁员&#xff0c;不少程序员再就业成了难题。 面…

网络安全相关工作必须要有证书吗?

在当今数字化时代&#xff0c;网络安全已成为至关重要的领域。然而&#xff0c;对于从事网络安全相关工作的人员来说&#xff0c;证书是否是必不可少的呢? 一、网络安全证书的重要性 网络安全证书在一定程度上能够证明从业者具备相关的知识和技能。例如&#xff0c;CISP 作为国…

昇思25天学习打卡营第XX天|RNN实现情感分类

希望代码能维持开源维护状态hhh&#xff0c;要是再文件整理下就更好了&#xff0c;现在好乱&#xff0c;不能好fork tutorials/application/source_zh_cn/nlp/sentiment_analysis.ipynb MindSpore/docs - Gitee.com

python:plotly 网页交互式数据可视化工具

pip install plotly plotly-5.22.0-py3-none-any.whl pip install plotly_express 包含&#xff1a;GDP数据、餐厅的订单流水数据、鸢尾花 Iris数据集 等等 pip show plotly Name: plotly Version: 5.22.0 Summary: An open-source, interactive data visualization librar…

使用 Elasticsearch 和 LlamaIndex 保护 RAG 中的敏感信息和 PII 信息

作者&#xff1a;来自 Elastic Srikanth Manvi 在这篇文章中&#xff0c;我们将研究在 RAG&#xff08;检索增强生成&#xff09;流程中使用公共 LLMs 时保护个人身份信息 (personal identifiable information - PII) 和敏感数据的方法。我们将探索使用开源库和正则表达式屏蔽 …

【Linux】文件描述符 fd

目录 一、C语言文件操作 1.1 fopen和fclose 1.2 fwrite和fread 1.3 C语言中的输入输出流 二、Linux的文件系统调用 2.1 open和文件描述符 2.2 close 2.3 read 2.4 write 三、Linux内核数据结构与文件描述符 一、C语言文件操作 在C语言中我们想要打开一个文件并对其进…

【达梦数据库】通过线程pid定位会话SQL

【达梦数据库】通过线程pid定位会话SQL 1、查找数据库进程 ps -ef|grep dmserver2、通过进程pid去找对应的线程 top -H -p $pid -------------------- top命令经常用来监控linux的系统状况&#xff0c;是常用的性能分析工具&#xff0c;能够实时显示系统中各个进程的资源占用…

大学新生如何高效入门编程?全面指南来助力

引言 在当今数字化时代&#xff0c;编程已经成为一项必备技能。无论你未来从事什么职业&#xff0c;编程能力都能为你的职业生涯增添光彩。对于即将步入大学的新生来说&#xff0c;如何高效入门编程是一道关键课题。本文将从如何选择编程语言、制定学习计划、找到顶尖学习资源…

公布一批神马爬虫IP地址,真实采集数据

一、数据来源&#xff1a; 1、这批神马爬虫IP来源于尚贤达猎头公司网站采集数据&#xff1b; 2、数据采集时间段&#xff1a;2023年10月-2024年1月&#xff1b; 3、判断标准&#xff1a;主要根据用户代理是否包含“YisouSpider”&#xff0c;具体IP没做核实。 二、神马爬虫主…

Mysql的事务隔离级别实现原理

一、事务隔离级别 mysql支持四种事务隔离级别&#xff1a; 读未提交&#xff1a;一个事务可以读取到另一个事务还未提交的数据&#xff1b;读已提交&#xff1a;一个事务可以读取到另一个事务已经提交的数据&#xff1b;可重复读&#xff1a;同一个事务中&#xff0c;无论读取…