选择题-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关键字的定义无关。

相关推荐
古希腊掌管学习的神1 分钟前
[LeetCode-Python版]相向双指针——611. 有效三角形的个数
开发语言·python·leetcode
赵钰老师2 分钟前
【R语言遥感技术】“R+遥感”的水环境综合评价方法
开发语言·数据分析·r语言
V+zmm101347 分钟前
基于微信小程序的乡村政务服务系统springboot+论文源码调试讲解
java·微信小程序·小程序·毕业设计·ssm
就爱学编程10 分钟前
重生之我在异世界学编程之C语言小项目:通讯录
c语言·开发语言·数据结构·算法
Oneforlove_twoforjob33 分钟前
【Java基础面试题025】什么是Java的Integer缓存池?
java·开发语言·缓存
emoji11111133 分钟前
前端对页面数据进行缓存
开发语言·前端·javascript
xmh-sxh-131435 分钟前
常用的缓存技术都有哪些
java
每天都要学信号44 分钟前
Python(第一天)
开发语言·python
TENET信条44 分钟前
day53 第十一章:图论part04
开发语言·c#·图论
生信圆桌1 小时前
【生信圆桌x教程系列】如何安装 seurat V5版本R包,最详细安装手册
开发语言·r语言