JAVA期末复习2

2024-06-23 13:52
文章标签 java 复习 期末

本文主要是介绍JAVA期末复习2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、Java基础知识

1. 下面几个标识符中,哪些是命名正确的 (A)

2. 分析以下代码,哪些是合法的 (C)

3. 以下代码的执行结果是( B )

4. 下面哪个不是java中的关键字?( B )

5. 下面对数组 int[] a={1,7,8,9}; 的描述不正确的是( D )

6. 下列语句编译没有错误的是( C )

7. 数组a的第三个元素表示为(D)

8. Java中int数据类型在内存中表示为( B )

9. 下列程序段执行后t5的结果是( B )

10. 若有定义int a=2;则执行完语句(++a)+a结果为( A )

11. 下面正确的初始化语句是(C)

12. 请写出标识符的命名规则,哪个选项正确(A)

13. 以下代码执行后的输出结果是( B )

14. 当访问无效的数组下标时,会发生( B )

15. do while循环执行次数(D)

16. 若有定义 int a=1, b=2; 表达式 (a++)+(++b) 的值是( B )

17. double类型占几个字节?(D)

18. 下列哪一个不属于Java的基本数据类型(B)

八、变量与作用域

19. 判断引用中所存储的对象是否与某种类型兼容的关键字是 instanceof。

20. 静态属性(类属性)的关键字是 static。

21. 在 Java 中,类之间的继承的特点是单继承。

九、数组

22. 数组 a 的第三个元素表示为 (D)

23. 数组的索引从 0 开始,长度为 4,所以最大下标是 3。

十、编译与运行

24. Java 文件的编译扩展名是 .class,源文件扩展名是 .java。

25. 定义包的关键字为 package。

十一、其它

26. If 语句:

27. Java中的关键字:

28. float 数:

29. 标识符命名规则:


一、Java基础知识

1. 下面几个标识符中,哪些是命名正确的 (A)

  • 选项

    • A. ILoveJava
    • B. static
    • C. learn@java
    • D. 2tigers
  • 正确答案:A

  • 解析:

    • 标识符的命名规则:
      • 只能由字母、数字、下划线(_)和美元符号($)组成。
      • 第一个字符不能是数字。
      • 不能使用 Java 的关键字作为标识符。
    • 选项分析:
      • A. ILoveJava 符合命名规则。
      • B. static 是 Java 的关键字,不能作为标识符。
      • C. learn@java 包含非法字符 "@"。
      • D. 2tigers 第一个字符是数字,不符合规则。

2. 分析以下代码,哪些是合法的 (C)

  • 选项

    • A. while(int i=1;i<1;i++){}
    • B. for(int i=1;i++; i<10){}
    • C. int n=3;
    • D. int n=2;
      if(n%3==0){ if(n=2){}
      System.out.println("n="+n);
      }
  • 正确答案:C

  • 解析:

    • 选项分析:
      • A. while(int i=1;i<1;i++){} 错误,while循环的条件判断语句中不能进行变量的定义。
      • B. for(int i=1;i++; i<10){} 错误,for循环中的第二部分是更新变量,应该写成 "i++" 或 "i=i+1"。
      • C. int n=3; 合法,定义一个 int 型变量 n 并赋值为 3。
      • D. int n=2;
        if(n%3==0){
        System.out.println("n="+n);
        }
        错误,if(n=2){},if语句的判断条件应该是布尔值,而 "n=2" 是赋值语句,它返回值是 2,不是布尔值。

3. 以下代码的执行结果是( B )

  • 选项

boolean m = true;
if(m = false){System.out.println("false");
}else{System.out.println("true");
}

  • 正确答案:B(输出“true”)

  • 解析:

    • 代码中使用赋值语句 m = false 作为 if 语句的判断条件。在 Java 中,赋值运算符 "=" 的返回值是赋值的值,即 false。因此,if 语句判断条件为 false,所以进入 else 代码块,输出 "true"。

4. 下面哪个不是java中的关键字?( B )

  • 选项

    • A. public
    • B. STATIC
    • C. class
    • D. package
  • 正确答案:B

  • 解析:

    • Java 中的关键字是预留的词语,不能用作标识符。
    • 选项分析:
      • A. public 是 Java 的关键字,用来修饰类、方法和变量的访问权限。
      • B. STATIC 不是 Java 的关键字,应该写成 static。
      • C. class 是 Java 的关键字,用来定义类。
      • D. package 是 Java 的关键字,用来声明包。

5. 下面对数组 int[] a={1,7,8,9}; 的描述不正确的是( D )

  • 选项

    • A. 数组的下标是 从 0 开始
    • B. 数组的内存空间是连续的
    • C. 通过 a[2] 访问的结果 为 8
    • D. 数组 a 中的最大下标是 4
  • 正确答案:D

  • 解析:

    • 数组的索引从 0 开始,长度为 4,所以最大下标是 3。

6. 下列语句编译没有错误的是( C )

  • 选项

    • A. float a=1.5;
    • B. byte b=129;
    • C. byte c=5;
    • D. byte d=-200;
  • 正确答案:C

  • 解析:

    • 选项分析:
      • A. float a=1.5; 错误,float 类型不能直接赋值 double 类型的值,需要强转。
      • B. byte b=129; 错误,byte 类型只能存储 -128 ~ 127 之间的整数,129 超出了范围。
      • C. byte c=5; 正确,5 在 byte 类型范围内。
      • D. byte d=-200; 错误,-200 超出了 byte 类型范围。

7. 数组a的第三个元素表示为(D)

  • 选项

    • A. a(3)
    • B. a[3]
    • C. a(2)
    • D. a[2]
  • 正确答案:D

  • 解析:

    • 数组的元素访问使用方括号 [],例如 a[2] 表示数组 a 的第三个元素。

8. Java中int数据类型在内存中表示为( B )

  • 选项

    • A. 2个字节
    • B. 4个字节
    • C. 由程序员确定
    • D. 以上都不正确
  • 正确答案:B

  • 解析:

    • int 类型在 Java 中占 4 个字节。

9. 下列程序段执行后t5的结果是( B )

  • 选项

int t1=9,t2=11,t3=8;
int t4,t5;
t4=t1>t2?t1:t2+t1;
t5=t4>t3?t4:t3;

  • 正确答案:B

  • 解析:

    • 首先执行 t4 = t1 > t2 ? t1 : t2 + t1t1 > t2 为 false,所以 t4 的值为 t2 + t1,即 11 + 9 = 20
    • 接着执行 t5 = t4 > t3 ? t4 : t3t4 > t3 为 true,所以 t5 的值为 t4,即 20

10. 若有定义int a=2;则执行完语句(++a)+a结果为( A )

  • 选项

    • A. 6
    • B. 5
    • C. 3
    • D. 4
  • 正确答案:A

  • 解析:

    • 表达式 (++a) + a 的执行步骤:
      • ++a 先将 a 加 1, a 变成 3。
      • a 此时值为 3,所以 (++a) + a 的结果是 3 + 3 = 6

11. 下面正确的初始化语句是(C)

  • 选项

    • A. char str[]="hello"
    • B. char str[100]="hello"
    • C. char str[]={'h','e','l','l','o'};
    • D. char str={'\t’};
  • 正确答案:C

  • 解析:

    • 选项分析:
      • A. char str[]="hello" 错误,不能直接用字符串赋值给字符数组,需要将字符串拆分成字符。
      • B. char str[100]="hello" 错误, Java 中无法在定义数组时直接指定其大小。
      • C. char str[]={'h','e','l','l','o'}; 正确,用字符数组的方式初始化char数组。
      • D. char str={'\t’}; 错误,不能直接用一个字符赋值给字符数组,需要用 {} 包裹起来。

12. 请写出标识符的命名规则,哪个选项正确(A)

  • 选项

    • A. 由英文字母、数字、下划线(_)、$组成,不限长度
    • B. 标识符的第一个字符可以是数字
    • C. 标识符不区分大小写
    • D. 标识符可以包含空格
  • 正确答案:A

  • 解析:

    • 标识符的命名规则:
      • 只能由字母、数字、下划线(_)和美元符号($)组成。
      • 第一个字符不能是数字。
      • 不能使用 Java 的关键字作为标识符。
      • 区分大小写。
      • 不能包含空格。
13. 以下代码执行后的输出结果是( B )

  • 选项

int x = 3;
int y = 10;
System.out.println(y % x);

  • 正确答案:B

  • 解析:

    • 代码执行了模运算 y % x,即 10 除以 3 的余数,结果是 1。

14. 当访问无效的数组下标时,会发生( B )

  • 选项

    • A. 编译和运行不受任何影响
    • B. 抛出下标越界异常
    • C. 抛出内存溢出
    • D. 直接死机
  • 正确答案:B

  • 解析:

    • 当访问无效的数组下标时,会抛出 ArrayIndexOutOfBoundsException 异常。

15. do while循环执行次数(D)

  • 选项

    • A. 0
    • B. 1
    • C. 0 ~ n
    • D. 1 ~ n
  • 正确答案:D

  • 解析:

    • do-while 循环的特点是:先执行循环体,再判断条件。
    • 因此,无论条件是否满足,至少会执行一次循环体。
    • 所以执行次数在 1 到 n 之间。

16. 若有定义 int a=1, b=2; 表达式 (a++)+(++b) 的值是( B )

  • 选项

    • A. 3
    • B. 4
    • C. 5
    • D. 6
  • 正确答案:B

  • 解析:

    • 表达式 (a++) + (++b) 的执行步骤:
      • a++ 先使用 a 的值 (1),再将 a 加 1,a 变成 2。
      • ++b 先将 b 加 1,b 变成 3,再使用 b 的值 (3)。
      • 所以 (a++) + (++b) 的结果是 1 + 3 = 4。

17. double类型占几个字节?(D)

  • 选项

    • A. 1
    • B. 2
    • C. 4
    • D. 8
  • 正确答案:D

  • 解析:

    • double 类型在 Java 中占 8 个字节。

18. 下列哪一个不属于Java的基本数据类型(B)

  • 选项

    • A. int
    • B. string
    • C. float
    • D. byte
  • 正确答案:B

  • 解析:

    • Java 的基本数据类型是:byteshortintlongfloatdoublecharboolean
    • String 是一个类,不是基本数据类型。

八、变量与作用域

19. 判断引用中所存储的对象是否与某种类型兼容的关键字是 instanceof

  • 答案:instanceof
  • 解析:instanceof 关键字用于检查对象是否是特定类的实例,以避免类型转换错误。

20. 静态属性(类属性)的关键字是 static

  • 答案:static
  • 解析:static 修饰的成员变量属于类本身,而不是某个实例,称为静态属性或类属性。

21. 在 Java 中,类之间的继承的特点是单继承。

  • 答案:单继承
  • 解析:Java 中一个类只能继承一个直接父类,这种特性称为单继承。

九、数组

22. 数组 a 的第三个元素表示为 (D)

  • 选项

    • A. a(3)
    • B. a[3]
    • C. a(2)
    • D. a[2]
  • 正确答案:D

  • 解析:

    • 数组的元素访问使用方括号 [],例如 a[2] 表示数组 a 的第三个元素。

23. 数组的索引从 0 开始,长度为 4,所以最大下标是 3。

  • 答案:3
  • 解析:数组的索引从 0 开始,长度为 N 的数组最大下标为 N-1。

十、编译与运行

24. Java 文件的编译扩展名是 .class,源文件扩展名是 .java。

  • 答案:.class, .java
  • 解析:Java 源文件扩展名为 .java,编译后生成扩展名为 .class 的字节码文件。

25. 定义包的关键字为 package。

  • 答案:package
  • 解析:在 Java 中,可以使用 package 关键字对类进行分组管理。

十一、其它

26. If 语句:

  • 当访问无效的数组下标时,会抛出 ArrayIndexOutOfBoundsException 异常。

  • 答案:B

  • 解析:ArrayIndexOutOfBoundsException 是 Java 中的一个异常,用来表明数组访问越界。

27. Java中的关键字:

  • publicstaticclasspackage
  • 解析:static 是 Java 的关键字,但必须全部小写。

28. float 数:

  • float 类型在 Java 中占 4 个字节,而 double 类型在 Java 中占 8 个字节。

  • 答案:B, D

  • 解析:Java中 float 数据类型占用 4 字节,而 double 数据类型占用 8 字节。

29. 标识符命名规则:

  • 只能由字母、数字、下划线(_) 和美元符号($) 组成。

  • 第一个字符不能是数字。

  • 不允许使用关键字。

  • 区分大小写。

  • 答案:A

  • 解析:标识符的命名规则:只能由字母、数字、下划线(_) 和美元符号($) 组成,第一个字符不能是数字。

这篇关于JAVA期末复习2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1087340

相关文章

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

java中新生代和老生代的关系说明

《java中新生代和老生代的关系说明》:本文主要介绍java中新生代和老生代的关系说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、内存区域划分新生代老年代二、对象生命周期与晋升流程三、新生代与老年代的协作机制1. 跨代引用处理2. 动态年龄判定3. 空间分

Java设计模式---迭代器模式(Iterator)解读

《Java设计模式---迭代器模式(Iterator)解读》:本文主要介绍Java设计模式---迭代器模式(Iterator),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录1、迭代器(Iterator)1.1、结构1.2、常用方法1.3、本质1、解耦集合与遍历逻辑2、统一

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1