第一次课程中的所有动手动脑的问题以及课后实验性的问题

news/2025/9/25 18:13:54/文章来源:https://www.cnblogs.com/LyYcx/p/19111713

第一次课程中的所有动手动脑的问题以及课后实验性的问题
(我将其以压缩包的形式上传到了博客的文件中)
https://files.cnblogs.com/files/blogs/848082/第一次课程.zip?t=1758794756&download=true
(一)枚举类型相关问题及结论

  1. 问题描述
    运行 EnumTest.java 程序,分析运行结果,总结枚举类型的基本特性及用法。

  2. 实验结论
    • 枚举类型属于引用类型,并非原始数据类型。其每个具体值都对应一个特定的对象,且相同的值引用同一个对象。
    • 对于枚举类型的变量,可直接使用 “==” 运算符和 equals () 方法进行值的比对,二者执行结果等价。
    • 枚举类型可通过 foreach 循环进行迭代遍历,也可在 switch 语句中使用。
    • 枚举类型的取值可通过valueOf(String name)方法从字符串转换得到,通过values()方法获取所有枚举值数组。
    (二)二进制编码相关问题及探究

  3. 问题描述
    明确原码、反码、补码的概念,编写示例程序对正数、负数进行位操作,验证 Java 中数值的二进制表示方式。

  4. 核心概念
    • 原码:符号位加数值的绝对值,正数符号位为 0,负数为 1,如 + 5 原码为 00000101,-5 原码为 10000101。
    • 反码:正数反码与原码相同;负数反码为原码符号位不变,其余位取反,如 - 5 反码为 11111010。
    • 补码:正数补码与原码相同;负数补码为反码加 1,如 - 5 补码为 11111011。

  5. 实验验证

  6. 结论
    Java 中整数采用补码形式存储。从运行结果可见,负数的二进制表示为其补码形式,位运算(如取反)均基于补码进行计算。
    (三)变量作用域与屏蔽原则问题

  7. 问题描述
    分析如下代码的输出结果,探究 Java 中同名变量的屏蔽原则。
    java
    运行
    public class Test {
    private static int value=1;
    public static void main(String[] args){
    int value=2;
    System.out.println(value);
    }
    }

  8. 运行结果
    输出结果为 2。

  9. 原理分析
    Java 中变量遵循 “同名变量的屏蔽原则”:当局部变量与成员变量同名时,在局部变量的作用域内,局部变量会屏蔽成员变量,此时访问的变量为局部变量。若需访问被屏蔽的成员变量,可通过 “类名。成员变量名”(静态成员变量)或 “this. 成员变量名”(非静态成员变量)实现
    (四)浮点数精度问题及解决方案

  10. 问题描述
    运行 TestDouble.java 程序,观察输出结果,分析 double 类型计算不精确的原因,并探究解决方案。

  11. 实验代码与结果

  12. 精度问题原因
    double 类型属于双精度浮点数,在计算机中以二进制形式存储。由于部分十进制小数(如 0.01)无法转换为有限长度的二进制小数,只能以近似值表示,因此在运算过程中会产生精度误差。

  13. 解决方案
    使用java.math.BigDecimal类进行高精度计算,且构建 BigDecimal 对象时需使用字符串作为参数,避免直接使用 double 值(会保留原始精度误差)。示例代码:
    (五)字符串拼接与运算符优先级问题

  14. 问题描述
    分析如下代码的输出结果,解释产生差异的原因。
    java
    运行
    public class StringConcatenation {
    public static void main(String[] args) {
    int X = 100;
    int Y = 200;
    System.out.println("X+Y=" + X + Y);
    System.out.println(X + Y + "=X+Y");
    }
    }

  15. 运行结果

  16. 原因分析
    Java 中 “+” 运算符兼具算术运算和字符串拼接功能,其执行顺序遵循从左到右的结合性:
    • 对于"X+Y=" + X + Y,先计算"X+Y=" + X,将 int 类型的 X 转换为字符串进行拼接,得到"X+Y=100",再与 Y 拼接,最终结果为"X+Y=100200"。
    • 对于X + Y + "=X+Y",先计算X + Y的算术结果 300,再将结果与字符串"=X+Y"拼接,最终结果为"300=X+Y"。

import java.util.Random;
import java.util.Scanner;

public class RandomCodeGenerator {
// 验证码字符集:包含大写字母、小写字母、数字
private static final String CODE_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
// 验证码长度
private static final int CODE_LENGTH = 6;

/*** 生成随机验证码* @return 6位随机验证码字符串*/
public static String generateVerificationCode() {Random random = new Random();StringBuilder codeBuilder = new StringBuilder();for (int i = 0; i < CODE_LENGTH; i++) {// 随机获取字符集中的索引int index = random.nextInt(CODE_CHARACTERS.length());// 拼接字符codeBuilder.append(CODE_CHARACTERS.charAt(index));}return codeBuilder.toString();
}/*** 验证用户输入的验证码是否正确* @param generatedCode 系统生成的验证码* @param userInput 用户输入的验证码* @return 验证结果(true:正确,false:错误)*/
public static boolean verifyCode(String generatedCode, String userInput) {// 忽略大小写验证(可根据需求调整为严格区分)return generatedCode.equalsIgnoreCase(userInput);
}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 生成验证码String verificationCode = generateVerificationCode();System.out.println("【验证码】" + verificationCode);// 提示用户输入System.out.print("请输入上方验证码:");String userInput = scanner.nextLine();// 验证并输出结果if (verifyCode(verificationCode, userInput)) {System.out.println("验证码输入正确!");} else {System.out.println("验证码输入错误,请重试!");}scanner.close();
}

}
具体图片请点击链接到我的文档查看

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

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

相关文章

敏捷开发的几个阶段

目录阶段1:认知启蒙期(入门)——“知道敏捷是什么”阶段特征:阶段2:实践落地期(初级)——“能用敏捷做项目”阶段特征:阶段3:问题优化期(中级)——“能解决敏捷中的坑”阶段特征:阶段4:体系化期(高级)—…

公司网站开发怎么做账wordpress更新网站内容

python脚本查找文件是否存在的方法&#xff1a;1、使用os模块os模块中的os.path.exists()方法用于检验文件是否存在。判断文件是否存在import osos.path.exists(test_file.txt)#Trueos.path.exists(no_exist_file.txt)#False2、使用Try语句可以在程序中直接使用open()方法来检查…

网站建设一年600js做的网站

java微服务面试题 Q:为什么要用微服务&#xff1f;微服务有哪些优势&#xff1f; 单体应用把所有功能都堆放在一起&#xff0c;改动影响大&#xff0c;风险高。 微服务具有以下优势&#xff1a; 针对特定服务发布&#xff0c;影响小&#xff0c;风险小&#xff0c;成本低。 频…

青岛seo网站建设公司软件网页制作

面向对象编程特征&#xff1a;抽象化&#xff0c;讲究对象&#xff0c;集成&#xff0c;封装&#xff0c;多态。 类&#xff1a;一类事物&#xff0c;苹果&#xff0c;梨&#xff0c;香蕉都是水果&#xff0c;都是一类。 类的特征&#xff1a;构造函数&#xff0c;字段属性和方…

实战:基于 BRPC+Etcd 打造轻量级 RPC 服务 —— 从注册到调用的完整实现 - 教程

实战:基于 BRPC+Etcd 打造轻量级 RPC 服务 —— 从注册到调用的完整实现 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-…

【2025最新】ArcGIS 点聚合功能实现全教程(进阶版) - 实践

【2025最新】ArcGIS 点聚合功能实现全教程(进阶版) - 实践2025-09-25 18:04 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !importa…

隐藏在众目睽睽之下:从PEB中解除恶意DLL的链接

本文深入探讨了一种恶意软件用于隐藏注入DLL的反取证技术。详细解析了Windows进程环境块(PEB)的结构,并展示了如何通过操作PEB中的三重双向链表来隐藏已加载的恶意DLL,包括具体的代码实现和检测方法。隐藏在众目睽睽…

详细介绍:Java 领域中 Java-EE 的异步编程实现

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

营销型网站公司名称手机wap网站模板 带后台

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 单点登录SSO&#xff08;Single Sign On&#xff09;说得简单点就是在一个多系统共存的环境下&#xff0c;用户在一处登录后&#xff0c;…

网站qq聊天代码深圳网站建设公司服务商

mqtt&#xff1a;轻量级物联网消息推送协议。 目录 一、介绍 1、官方文档 1&#xff09;npm网 2) 中文网 MQTT中文网_MQTT 物联网接入平台-MQTT.CN 2、官方示例 二、准备工作 1、安装依赖包 2、示例版本 三、使用步骤 1、在单页面引入 mqtt 四、完整示例 tips 一、介…

设计模式六大原则 - 实践

设计模式六大原则 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &q…

徐霞客的《青云志》

徐霞客的《青云志》明代著名的旅行家和地理学家徐霞客的《青云志》在网络上炒得火爆。全文是: “身处低谷不自弃,我命由我不由天。 无人扶我青云志,我自踏雪至山巅。 若是命中无此运,亦可孤身登昆仑。 红尘赠我三尺…

深入解析:豆包Seedream 4.0:全面测评、玩法探索与Prompt解读

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

运营商 API 安全最佳实践、案例与方案推荐(2025)|千万级接口的全链路实战

在 5G、云原生与边缘协同的现实架构里,运营商的 API 安全应遵循一条清晰主线:资产可视 → 行为基线 → 联动处置 → 可审计证据。落地层面需要可度量、可复核的硬指标作为抓手,例如 分钟级增量捕获、告警≤0.5s、MT…

HyperWorks许可与多用户支持

在工程项目中,软件许可管理和多用户支持是确保团队协作顺畅进行的核心要素。HyperWorks作为一款领先的工程仿真软件,不仅提供了灵活的许可管理方案,还具备卓越的多用户支持功能,助力团队高效协作,共创卓越成果。 …

免费素材库短视频素材网站如何做网站知乎

大家都知道光模块是影响整个网络性能的关键因素&#xff0c;特别是在工业以太网中&#xff0c;网络连接控制的多为大型工业设备&#xff0c;光模块的稳定性尤为重要&#xff0c;那么&#xff0c;我们该如何选购工业级光模块呢&#xff1f;接下来就由飞畅科技的小编来为大家详细…

破局与进化:火山引擎Data Agent从落地实践到架构未来

本文为火山引擎技术专家陈硕,在AICon全球人工智能与机器学习技术大会上的演讲分享。本文围绕以下五部分展开:Data Agent整体介绍 智能分析Agent产品演进 智能分析Agent技术架构演进 智能分析Agent落地新进展 Data Ag…

建立网站平台做ppt的软件怎么下载网站

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;链表转数组方法二&#xff1a;自顶向下归并排序方法三&#xff1a;自底向上的归并排序 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内…

使用trace进行排查网络瓶颈

func NewHTTPTraceLogger(ctx context.Context, fileUrl string, fragmentID, attempt int) context.Context {traceStart := time.Now()var dnsStart, connectStart, tlsStart, gotConnTime time.Timetrace := &h…

五项能力斩获满分!天翼云云WAF获IDC权威认可!

近日,国际数据公司(IDC)发布《协同大模型防火墙能力的中国WAAP厂商技术能力评估,2025》报告,围绕Web安全、Bot管理、威胁情报等核心现代应用防护需求,对厂商的产品技术与服务能力展开全面考察。天翼云云WAF产品在…