选择题-java

题目来自牛客网

1.在 JAVA 编程中, Java 编译器会将 Java 程序转换为( )

A.字节码

B.可执行代码

C.机器代码

D.以上都不对

选 A

Java编译器会将Java程序转换为字节码,这是一种中间代码,它可以在Java虚拟机(JVM)上运行。字节码不是直接针对任何特定的计算机硬件平台的机器代码,而是一种跨平台的、可移植的代码形式。Java虚拟机负责将字节码解释或编译成本地机器代码,然后在相应的操作系统上执行。因此,选项A是正确的。

2.下面关于垃圾收集的说法正确的是

A.一旦一个对象成为垃圾,就立刻被收集掉。

B.对象空间被收集掉之后,会执行该对象的finalize方法

C.finalize方法和C++的析构函数是完全一回事情

D.一个对象成为垃圾是因为不再有引用指着它,但是线程并非如此

在Java编程中,垃圾收集(Garbage Collection, GC)是自动管理内存的过程。当一个对象不再被任何引用指向时,它成为垃圾收集器的候选对象进行回收。然而,对象不会立即被回收,而是在垃圾收集器运行时才可能被清理。

选项A说"一旦一个对象成为垃圾,就立刻被收集掉"是错误的。对象在成为垃圾后,可能会在很长时间内都不被回收,这取决于垃圾收集器的工作时机和垃圾回收策略。

选项B说"对象空间被收集掉之后,会执行该对象的finalize方法"也是错误的。在Java中,当对象成为垃圾收集的候选对象时,并不一定会执行其finalize方法。finalize方法是在垃圾收集过程中,在对象被回收之前可能被调用的方法,但它的调用是不确定的。

选项C说"finalize方法和C++的析构函数是完全一回事情"是错误的。虽然finalize方法和C++的析构函数在概念上有些相似,都是清理资源的机制,但它们在实现和行为上有所不同。finalize方法是Java中的一种特殊方法,而C++的析构函数是C++语言的一部分。

选项D说"一个对象成为垃圾是因为不再有引用指着它,但是线程并非如此"是正确的。当没有任何引用指向一个对象时,该对象就可能成为垃圾收集的目标。而线程的生命周期是由程序的控制流决定的,与垃圾收集机制无关。

因此,正确答案是D。

3.在java7中,下列不能做switch()的参数类型是?

A.int型

B.枚举类型

C.字符串

D.浮点型

在Java 7中,switch语句的参数类型被扩展了,除了支持基本数据类型如intchar,以及它们的包装类型之外,还支持String类型和枚举类型。因此,在Java 7及以后的版本中,你可以使用String类型和枚举类型作为switch语句的参数。

选项A(int型)和选项B(枚举类型)都是Java 7中支持的switch语句参数类型。选项C(字符串)同样是Java 7中支持的类型。

选项D(浮点型)是不能作为switch语句的参数类型的。在Java 7之前,switch语句只能接受整型常量表达式作为参数,包括byteshortcharint类型,以及它们的包装类型。从Java 7开始,虽然增加了对String和枚举类型的支持,但仍然不支持浮点数类型(floatdouble)作为switch语句的参数。

因此,正确答案是D(浮点型)。

4.语句:char foo='中',是否正确?(假设源文件以GB2312编码存储,并且以javac -- encoding GB2312命令编译)

A.正确

B.错误

A.正确

在Java中,char类型是用来存储单个16位Unicode字符的数据类型。当源文件以GB2312编码存储时,只要确保在编译时指定了正确的编码(如使用javac -encoding GB2312命令),那么使用中文字符(如'中')作为char类型的字面量是完全合法的。Java虚拟机(JVM)内部会将这些中文字符映射到相应的Unicode码点。因此,声明char foo = '中';是正确的,前提是编译时使用了正确的编码设置。

5.关于final说法正确的是? ( )

A.final类的方法肯定不能被同一个包的类访问

B.final类的方法能否被同一个包的类访问不是由final决定

C.final方法等同于private方法

D.final对象本身的引用和值都不能改变

选项B说"final类的方法能否被同一个包的类访问不是由final决定"是正确的。final类的方法可以被同一个包内的其他类访问,这与final关键字的定义无关。

相关推荐
Miraitowa_cheems19 分钟前
LeetCode算法日记 - Day 11: 寻找峰值、山脉数组的峰顶索引
java·算法·leetcode
海梨花25 分钟前
【从零开始学习Redis】项目实战-黑马点评D2
java·数据库·redis·后端·缓存
共享家952725 分钟前
linux-高级IO(上)
java·linux·服务器
Sammyyyyy32 分钟前
2025年,Javascript后端应该用 Bun、Node.js 还是 Deno?
开发语言·javascript·node.js
橘子郡12332 分钟前
观察者模式和发布订阅模式对比,Java示例
java
指针满天飞33 分钟前
Collections.synchronizedList是如何将List变为线程安全的
java·数据结构·list
Java技术小馆34 分钟前
重构 Controller 的 7 个黄金法则
java·后端·面试
金銀銅鐵1 小时前
[Java] 以 IntStream 为例,浅析 Stream 的实现
java·后端
William一直在路上1 小时前
Python数据类型转换详解:从基础到实践
开发语言·python
看到我,请让我去学习2 小时前
Qt— 布局综合项目(Splitter,Stacked,Dock)
开发语言·qt