Java学习:今日成果,明日挑战

news2024/12/26 10:58:01

阅读指南:[题目] - 精选摘要

  • 题目
    • 1.面向对象编程意味着
    • 2.以下哪项不是 Java 关键字?
    • 3.基础数据类型在堆栈上分配?
    • 4.以下代码将导致:
    • 5.以下输出是什么 ?
    • 6.如果我们声明:
    • 7.Java 使用按值调用。 以下方法调用传递给程序的值是多少 ?
    • 8.以下代码的输出是什么 ?
    • 9.以下代码输出结果为:
    • 10.以下代码输出结果为:
      • 总结

题目

选自菜鸟教程

1.面向对象编程意味着

A. 根据分析问题时发现的对象设计应用程序
B. 在编写程序并制定测试计划之前编写算法
C. 编写由Java类组成的程序

面向对象编程(Object-Oriented Programming,简称OOP)确实意味着根据分析问题时发现的对象来设计应用程序。在面向对象的范式中,现实世界的问题和实体被抽象成“对象”,这些对象具有状态(属性)和行为(方法)。通过封装、继承和多态等特性,面向对象编程提供了一种结构化的方式来组织代码,使得软件开发更加模块化、可复用和易于维护。因此,选项A正确地描述了面向对象编程的核心理念。


2.以下哪项不是 Java 关键字?

A. static
B. try
C. Integer
D. new

选项C,“Integer”,不是Java关键字。在Java中,"Integer"是包装类的名字,它用于将基本类型int包装成对象。而static、try和new都是Java语言的关键字,分别用于声明静态成员、定义异常处理的try块和创建新对象。因此,正确答案是C。


3.基础数据类型在堆栈上分配?

A.是
B. 否

A基本类型类型以及对象的引用变量是存储在栈内存中 ;而对象本身的值或者说 new 创建的对象和数组是存储在堆内存中。


4.以下代码将导致:

int num = 6.7

A. 编译错误
B. 运行期错误
C. num 是 6.7
D. num 为 6

选项A正确。在Java中,将一个浮点数(如6.7)直接赋值给一个整数变量(如int类型)会导致编译错误。这是因为Java的类型检查系统会阻止这种可能造成数据丢失的隐式类型转换。如果想要将浮点数赋值给整数变量,需要进行显式的类型转换,代码应该写为:

double numDouble = 6.7;
 int num = (int) numDouble;

在这种情况下,6.7会被转换为整数6,小数部分会被舍弃,但这需要程序员显式地进行类型转换操作。因此,原代码int num = 6.7;会导致编译错误。


5.以下输出是什么 ?

class TestIt
{
    public static void main ( String[] args )
    {
        int[] myArray = {1, 2, 3, 4, 5};
        ChangeIt.doIt( myArray );
        for(int j=0; j<myArray.length; j++)
            System.out.print( myArray[j] + " " );
    }
}
class ChangeIt
{
    static void doIt( int[] z ) 
    {
        z = null ;
    }
}

A. 1 2 3 4 5
B. 什么都不会打印出来
C. 程序将因运行时错误而停止。
D. 0 0 0 0 0

选项A正确。在这个程序中,ChangeIt.doIt(myArray);调用不会改变myArray的内容。在doIt方法中,z= null;语句只会影响z变量本身,它不会影响到main方法中myArray的引用。这是因为参数传递在Java中是按值传递的,但对于对象引用来说,传递的是引用的值。
因此,当doIt方法内部将z设为null时,这只是改变了z的值,而myArray的引用保持不变。所以,myArray的内容在方法调用前后不会发生变化,输出仍然是1 2 3 4 5。因此,正确答案是A。

6.如果我们声明:

int [] ar = {1,2,3,4,5,6};
数组ar的大小是 :

A. 0
B. 5
C. 6
D. 7

选项C正确。在Java中,数组的大小等于数组中元素的数量。对于声明int [] ar = {1,2,3,4,5,6};,数组ar包含了6个元素。因此,数组ar的大小是6。所以,正确答案是C,6。

7.Java 使用按值调用。 以下方法调用传递给程序的值是多少 ?

double[] rats = {1.2, 3.4, 5.6};
routine( rats );

A. rats 的副本
B. rats 数组元素的值
C. rats 数组的引用
D. 1.2

C选项C正确。在Java中,当传递对象(如数组)作为方法参数时,实际上传递的是对象引用的值,而不是对象本身或其内容的副本。因此,当调用routine(rats);时,rats数组的引用被传递给routine方法。这意味着在routine方法内部可以访问和修改rats数组的内容,因为它们共享同一个数组对象。因此,正确答案是C,rats数组的引用。


8.以下代码的输出是什么 ?

int[] arr = new int[9];
System.out.println(arr[9]);

A. 0
B. 9
C. 错误,因为数组未初始化
D. 错误,因为索引超出范围

选项D正确。这段代码将导致错误,因为索引超出了数组的范围。在Java中,数组索引是从0开始的,所以对于int[9]类型的数组,有效的索引范围是0到8。尝试访问arr[9]将导致ArrayIndexOutOfBoundsException,这是一种运行时错误,表示尝试访问数组中不存在的元素。因此,正确答案是D,错误,因为索引超出范围。


9.以下代码输出结果为:

class Main {
    public static void main(String args[]) { 
        System.out.println(fun());
    } 

    int fun()
    {
        return 20;
    }
}

A. 20
B. 0
C. 编译错误

选项C正确。这段代码会导致编译错误。问题出在fun()方法的声明和定义上。在main方法中调用的fun()方法被声明为int返回类型,但是在类Main中定义的fun()方法却没有指定返回类型,这会导致编译器无法识别fun()方法的正确签名,从而引发编译错误。正确的方法定义应该也包含返回类型,例如int fun() { return 20; }。因此,正确答案是C,编译错误。然而,为了使代码能够编译并正确运行,fun()方法应该被正确声明和定义,如下所示:

class Main {
    public static void main(String args[]) { 
        System.out.println(fun());
    } 

    static int fun()
    {
        return 20;
    }
}

在这种情况下,输出结果将会是20,即选项A。但根据原始代码,由于方法定义的错误,正确答案是C,编译错误。

10.以下代码输出结果为:

public class Main { 
    public static void main(String args[]) { 
       String x = null; 
       giveMeAString(x); 
       System.out.println(x); 
    } 
    static void giveMeAString(String y) 
    { 
       y = "RUNOOB"; 
    } 
}

A. RUNOOB
B. null
C. 编程错误
D. 发生异常

选项B正确。在这个程序中,giveMeAString(x);方法调用不会改变x的值。在giveMeAString方法内部,
y = "RUNOOB";只会改变方法内部的y变量,而不会影响到main方法中x的值。这是因为Java中方法参数的传递是值传递,对于引用类型,传递的是引用的值,而不是引用的对象本身。因此,当在方法内部修改局部变量时,这种修改不会反映到调用方法的参数上。在main方法中,x的值在调用giveMeAString前后都是null
因此,当执行System.out.println(x);时,输出结果为null。所以,正确答案是B。

总结

在这里插入图片描述

巩固了Java基础概念。选择题是检验学习成果的好方法,它们能帮助我识别并加强理解中的薄弱环节。明天见,期待带着新的问题和挑战回来。

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

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

相关文章

S7-1200PLC 和8块欧姆龙温控表MODBUS通信(完整SCL代码)

1、如何提升MODBUS-RTU通信数据的刷新速度 提升MODBUS-RTU通信数据刷新速度的常用方法_modbus rtu通讯慢-CSDN博客文章浏览阅读1.2k次。SMART PLC的MODBUS-RTU通信请参考下面文章链接:【精选】PLC MODBUS通信优化、提高通信效率避免权限冲突(程序+算法描述)-CSDN博客MODBU…

MATLAB预测模型(1)

一、前言 在MATLAB中&#xff0c;解决和预测微分方程通常涉及到使用数值方法&#xff0c;因为许多微分方程的解析解是难以找到的。MATLAB提供了多种函数和工具箱来处理这类问题&#xff0c;其中ode45是最常用的一个&#xff0c;用于求解非刚性微分方程的初值问题。 二、实现 以…

Linux中DHCP服务器配置和管理

文章目录 一、DHCP服务1.1、DHCP的工作流程1.2、DHCP的工作模式1.3、dhcp的主要配置文件 二、安装DHCP服务2.1、更新yum源2.2、安装DHCP服务软件包2.3、配置DHCP服务2.4、启用DHCP服务&#xff08;解决报错&#xff09;2.4.1、查看dhcpd服务的状态和最近的日志条目2.4.2、查看与…

代码随想录27天|贪心

455.分发饼干 代码随想录 第一想法 将孩子胃口值g[i] 按从小到达的顺序排列&#xff0c;饼干尺寸也按照从小到大的顺序去排列。 优先将大尺寸喂给大胃口孩子。如果满足不了胃口那么久试着分给下一个孩子。 要尽量满足更多的孩子&#xff0c;那么大尺寸的饼干就不能喂给小胃口…

PMP–知识卡片--燃起图

燃起图用两条曲线分别绘制随时间的推移、完成的工作量和总工作量的变化情况。它不仅能清晰地展示项目进度&#xff0c;还是对团队成员的一种激励形式。 使用燃起图可以更好地了解进度、范围变更和预期完成时间&#xff0c;它为所有相关方提供了更清晰的进度状态。 燃起图根据工…

抖音豆包大模型AI写作教程

简数采集器支持调用字节跳动抖音的豆包AI大模型API接口&#xff0c;用于对采集的数据进行研究分析&#xff0c;内容写作等。 抖音豆包大模型AI写作使用教程&#xff1a; 目录 1.启用豆包AI大模型API功能 2.设置豆包API处理规则 3.应用API规则处理数据 4.获取AI处理结果 1…

算法 一

时间复杂度 常数操作&#xff1a;和数量无关&#xff0c;每次都是固定时间内完成。 只要高阶项&#xff0c;也不要高阶项的系数。 选择排序、冒泡排序 选择排序&#xff1a;以第一位为起点&#xff0c;每次选择最小的数放在最前面&#xff0c;起点向后挪一位。 冒泡排序&…

冰山的崛起:数据架构的转变

像 Apache Iceberg、Apache Hudi 和 Delta Lake 这样的开放表格式已成为查询处理器的事实标准。然而&#xff0c;最近有消息称 Snowflake 和 Databricks 等查询引擎采用了 Iceberg 的 REST 目录 API&#xff0c;这改变了竞争环境&#xff0c;有利于 Iceberg。 Iceberg的成功不仅…

国内自闭症学校:寻找最适合您孩子的选择

当您的孩子被诊断为自闭症&#xff0c;为他们寻找一所合适的学校就成为了您至关重要的任务。在国内&#xff0c;有各种各样的自闭症学校&#xff0c;每所学校都有其独特的特点和优势。然而&#xff0c;如何在众多的选择中找到最适合您孩子的那一所&#xff0c;并非易事。 您需要…

【数据结构算法经典题目刨析(c语言)】顺序表和链表的区别(图文详解)

&#x1f493; 博客主页&#xff1a;C-SDN花园GGbond ⏩ 文章专栏&#xff1a;数据结构经典题目刨析(c语言) 目录 顺序表和链表的区别 一、底层存储空间 二、插入和删除操作 三、随机访问 四、空间利用率 五、应用场景 六、高速缓存 为什么顺序表的缓存利用率高于链表呢…

windows 文件夹下的文件名称全部输入到txt文件中(已解决)

打开cmd 命令行&#xff0c;记住一定是cmd命令行 进入cmd 目前在C盘&#xff0c;跳转D盘&#xff0c;输入d:。 d: 回车&#xff1b; 在输入或者粘贴你的目的路径 我的是 D:\opencv****\build\x64\vc14\lib&#xff0c;回车进入目的路径。 然后 再输入&#xff1a;dir /b &…

windows环境下安装docker与jenkins进行单机简易安装

CI/CD流水线简易实战 技术工具: Git Jenkins Docker Git Git是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何规模的项目。 GitHub是在线的基于Git的代码托管服务。GitHub于2008年由Ruby on Rails编写而成。GitHub同时提供付费账户和免费账户。这两种账户都…

包装类(String、StringBuffer、StringBuilder) 重点

包装类&#xff08;Wrapper Class&#xff09;是Java中的一个重要概念&#xff0c;它们是用于将基本数据类型&#xff08;如int, char, double等&#xff09;封装成对象的类。使用包装类的主要目的是为了能够更好地与Java的集合框架&#xff08;如ArrayList、HashMap等&#xf…

Modelsim仿真之VCD文件详解

目录 一、前言 二、VCD文件格式 2.1 头部 2.2 变量定义 ​ 2.3 值打印 2.4 值变化部分 2.5 VCD文件示例 三、VCD文件生成 3.1 工程代码 3.2 modelsim操作 3.3 VCD结果查看 3.4 VCD类型2 四、参考资料 一、前言 ​VCD&#xff08;Value change dump&#xff09;…

mv:自动对焦代码

try:# The camera will now focus on whatever is in front of it.sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS) except:raise (Exception("Auto focus is not supported by your sensor/board combination."))

说说ip地址和mac地址的区别

随着互联网的飞速发展&#xff0c;网络连接已成为我们日常生活中不可或缺的一部分。然而&#xff0c;在享受网络带来的便利时&#xff0c;你是否曾好奇过那些让设备能够相互通信的关键技术&#xff1f;IP地址与MAC地址&#xff0c;作为网络通信中的两大基石&#xff0c;它们各自…

2023华为od机试C卷【API集群负载统计】Python实现

思路 统计第二层级上computing出现的次数的时候&#xff0c;只需要for循环寻找computing是否在字典的键中。 如果找到&#xff0c;计数的时候是加上computing对应的值 def main():import collectionslength_char int(input())node_info {}for i in range(length_char):char…

### 微软的传奇与未来:从车库到云端的飞跃

今天我要和大家聊聊科技界的超级明星——微软。这家公司几乎每个人都听过&#xff0c;从90年Windows全家桶&#xff0c;到现在的云端革命&#xff0c;微软的故事简直有点儿像科技界的“美国梦”。 #### **车库里的梦想** 一切都得从1975年说起。当时&#xff0c;比尔盖茨和保…

【博客22】缤果Android_USB串口调试助手V1.0(高级篇)

超级好用的Android_USB调试助手 ( Android Studio Java) 开发工具: android-studio-2022.2.1.20-windows.exe usb-serial-for-android 目录 一、软件概要&#xff1a; 二、软件界面&#xff1a; 1.App演示 2.其他扩展展示 2.1 USB枚举 2.2 波特率 2.3 自定义指令集 2.…

一种别样的Unicode Python编码方式,完美转换表情和阿拉伯语

我们可能有时候在处理字符时需要处理到非ASCII的字符&#xff0c;比如将表情、阿拉伯语转换为Unicode字符&#xff0c;从而避免在传输时会出现乱码的情况。 Unicode验证网站&#xff1a; unicode转换网站 目的&#xff1a;转换下面除ASCII字符外的字符为Unicode字符&#x1f…