java的选择题

题目

来自牛客网

1.下列哪个是合法的 Java 标识符?()


A.Tree&Glasses
B.FirstJavaApplet
C.FirstApplet
D.273.5

正确答案是 B. FirstJavaApplet 和 C. FirstApplet。

分析:

Java 标识符必须遵循以下规则:
1. 必须以字母(A-Z 或 a-z)、美元符号($)或下划线(_)开头。
2. 其余部分可以是字母(A-Z 或 a-z)、数字(0-9)、美元符号($)或下划线(_)的任意组合。
3. 标识符不能是 Java 的关键字(如 if、else、for 等)或保留字(如 goto、const 等)。
4. 标识符区分大小写。

根据以上规则,选项 B 和 C 是合法的 Java 标识符,而选项 A 中包含了一个非法字符 &,选项 D 中以数字开头,不符合标识符的规则,因此是不合法的。

2.对于构造方法,下列叙述正确的是()


A.构造方法的优先级一般比代码块低。
B.构造方法的返回类型只能是void型。
C.构造方法的主要作用是完成对类的对象的初始化工作。
D.一般在创建新对象时,系统会自动调用构造方法,

acd

//这证实了构造方法会先于代码块执行。

构造方法是在对象创建时被调用的特殊方法,用于完成对象的初始化工作,因此它的优先级比代码块高。

public class TestConstructor {// 静态代码块static {System.out.println("静态代码块被执行");}// 构造方法public TestConstructor() {System.out.println("构造方法被执行");}// 代码块{System.out.println("代码块被执行");}public static void main(String[] args) {// 创建对象TestConstructor obj = new TestConstructor();}
}
//静态代码块被执行
//代码块被执行
//构造方法被执行

代码块执行。

public class ConstructorVsCodeBlock {// 代码块{System.out.println("代码块被执行");}// 构造方法public ConstructorVsCodeBlock() {System.out.println("构造方法被执行");}public static void main(String[] args) {// 创建对象ConstructorVsCodeBlock obj = new ConstructorVsCodeBlock();System.out.println("对象创建完成");}
}
代码块被执行
构造方法被执行
对象创建完成

3.有如下一段代码,请选择其运行结果()

1

2

3

4

5

6

7

8

9

10

public class StringDemo{

  private static final String MESSAGE="taobao";

  public static void main(String [] args) {

    String a ="tao"+"bao";

    String b="tao";

    String c="bao";

    System.out.println(a==MESSAGE);

    System.out.println((b+c)==MESSAGE);

  }

}

A.true true
B.false false
C.true false
D.false true

c

解释:

在Java中,字符串常量池(String Constant Pool)是一个特殊的存储区域,用于存放字符串常量。当创建一个字符串常量时,JVM会首先检查字符串常量池中是否已经存在相同值的字符串。如果存在,就返回对该字符串常量的引用;如果不存在,就在池中创建一个新的字符串常量,并返回对它的引用。

在这段代码中:

  • 字符串常量的值是。当它首次被加载到字符串常量池中时,会创建一个新的字符串常量对象。MESSAGE"taobao"

  • 字符串变量的值是通过连接两个字符串字面量和得到的。由于这两个字面量在编译时都可以确定,所以它们也会被加载到字符串常量池中,并且因为它们的值相同,所以会引用同一个字符串常量对象。因此,的值实际上与的值相同,并且它们引用的是同一个对象。所以,第一行输出是。a"tao""bao"aMESSAGEtrue

  • 对于字符串变量和,它们各自引用的是字符串常量池中的和。当执行时,JVM会查找常量池中是否有这个值的字符串常量。如果找到,就会返回对它的引用;如果没有找到,就会创建一个新的字符串常量对象。在这个例子中,因为已经是一个指向的引用,所以应该会返回对的引用。但是,题目中的答案是,这表明并没有返回对的引用。这可能是由于JVM的具体实现细节导致的。在某些情况下,JVM可能会优化字符串的连接操作,而不是总是按照预期的方式返回对字符串常量池中已有对象的引用。因此,在这种情况下,即使的逻辑结果应该是,但它可能是返回了一个新创建的字符串常量对象的引用。bc"tao""bao"b+c"taobao"MESSAGE"taobao"b+cMESSAGEfalseb+cMESSAGEb+c"taobao"

  • 对于第三行的输出,我们知道返回的是一个新的字符串对象,而不是对的引用。因此,的比较结果是。b+cMESSAGE(b+c)==MESSAGEfalse

综上所述,根据Java的字符串常量池机制以及JVM的具体实现,这段代码的运行结果是第一行输出,第二行输出。truefalse

4.关于ThreadLocal类 以下说法正确的是


A.ThreadLocal继承自Thread
B.ThreadLocal实现了Runnable接
C.[hreadLocal重要作用在于多线程间的数据共享
D.ThreadLocal是采用哈希表的方式来为每个线程都提供一个变量的副本
E.ThreadLocal保证各个线程间数据安全,每个线程的数据不会被另外线程访问和破坏

DE

ThreadLocal的类声明: public class ThreadLocal<T> 可以看出ThreadLocal并没有继承自Thread,也没有实现Runnable接口。所以AB都不对。

ThreadLocal是Java中的一个类,主要用于为每个线程提供线程局部变量。它可以确保每个线程在访问和修改变量时不影响其他线程。这在多线程环境下非常有用,可以避免线程之间的数据共享和竞态条件。

核心概念:
- ThreadLocal为每个线程提供一个单独的变量副本,线程对其的访问是局部的,不会影响其他线程。
- 它不属于线程本身,而是在线程特定数据存储区中维护变量的副本。

主要用途:
- 线程隔离:允许每个线程拥有自己独立的数据,避免了多线程环境下的同步问题。
- 线程上下文传递:在某些框架和库中,ThreadLocal用于传递线程范围的上下文信息,如用户身份、事务ID等。

如何使用:
- 创建一个ThreadLocal实例,然后在每个线程中使用`set()`方法设置变量,使用`get()`方法获取变量。
- 这为每个线程维护了单独的数据副本,每个线程可以独立操作而不干扰其他线程。

典型案例:
- 线程安全的单例:可以通过ThreadLocal实现每个线程的单例,避免全局单例的线程安全问题。
- 用户上下文:在Web应用中,ThreadLocal用于存储用户上下文信息,使其在同一个线程的不同部分间共享。

注意事项:
- 内存泄漏:ThreadLocal可能导致内存泄漏,特别是在应用长时间运行并且线程重用的情况下。如果ThreadLocal不被及时清理,线程池中的线程可能会保持对旧数据的引用。
- 数据一致性:由于ThreadLocal为每个线程提供单独的数据副本,因此跨线程访问无法获取到其他线程的值,需要谨慎处理。

总结:
ThreadLocal在解决多线程环境中的数据隔离和线程安全问题方面非常有效,但需要谨慎使用,以避免潜在的内存泄漏和数据一致性问题。确保及时清理和正确使用可以最大化其优势。

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

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

相关文章

【八十二】【算法分析与设计】2421. 好路径的数目,928. 尽量减少恶意软件的传播 II,并查集的应用,元素信息绑定下标一起排序,元素通过下标进行绑定

2421. 好路径的数目 给你一棵 n 个节点的树&#xff08;连通无向无环的图&#xff09;&#xff0c;节点编号从 0 到 n - 1 且恰好有 n - 1 条边。 给你一个长度为 n 下标从 0 开始的整数数组 vals &#xff0c;分别表示每个节点的值。同时给你一个二维整数数组 edges &#xff…

【Vue】Vue packages version mismatch(vue 和 vue-template-compiler)

报错&#xff1a;Vue packages version mismatch 原因&#xff1a;vue和vue-template-compiler版本不一样解决&#xff1a;如上vue版本为 2.6.14&#xff0c;vue-template-comiler版本为2.7.16。将vue-template-comiler版本设置为和vue版本一致即可。 npm install vue-templat…

头歌-Java常用类

第一关String类 package step1;import java.util.Scanner;public class StringLearning {public static void main(String[] args) {Scanner scanner new Scanner(System.in);String stringExample scanner.next();String endStr " end";// --------------------…

【稳定检索|EI会议】✅2024年食品科学与生物医学国际会议(ICFSBS 2024)✅

2024 International Conference on Food Science and Biomedical Sciences 一、大会信息 会议名称&#xff1a;2024年食品科学与生物医学国际会议会议简称&#xff1a;ICFSBS 2024收录检索&#xff1a;提交Ei Compendex,CPCI,CNKI,Google Scholar等会议官网&#xff1a;http:/…

Windows安装RabbitMQ教程(附安装包)

需要两个安装包 Erlang 安装包: https://download.csdn.net/download/Brevity6/89274663 (自己从官网下载也可以) RabbitMQ Windows 安装包&#xff1a; https://download.csdn.net/download/Brevity6/89274667 (自己从官网下载也可以) Erlang安装 Erlang安装傻瓜式下一…

Linux 作业管理 (bg, fg, jobs, kill)

bg 和 fg 是用来管理作业&#xff08;在 Unix/Linux 命令行下运行的进程&#xff09;的命令。 1. bg 命令 bg 命令用于将作业&#xff08;job&#xff09;放到后台运行。当你在终端中运行一个命令或程序时&#xff0c;它会占用当前终端的控制&#xff0c;如果你想让这个任务在…

武汉星起航:亚马逊:跨境电商领军平台,中国卖家全球拓展的首选

2015年&#xff0c;亚马逊全球开店业务正式进入中国&#xff0c;为中国卖家带来了全新的跨境电商机遇。如今&#xff0c;亚马逊已在全球拥有包括美国、加拿大、墨西哥、英国、法国、德国等在内的17大海外站点&#xff0c;为中国卖家提供了广阔的销售市场。武汉星起航将详细探讨…

码的,竟然有人和我争辩java指针

一、c和java 《老板儿子》 今天同在上班的老板的儿子问我&#xff1a;“以前你们学java的好简单&#xff0c;不像我学c的指针难死了。” 顿时&#xff0c;我亚麻呆着了。 老板儿子接着说&#xff1a;“你们java没指针” 顿时&#xff0c;我想冲他说 &#xff1a;“dun” 二…

为什么汽车企业需要开展门店销售价格违规监测?

在当下竞争激烈的汽车市场中&#xff0c;品牌形象、消费者权益和销售管理流程的合规性对于汽车企业的长期成功至关重要。为此&#xff0c;实施门店销售价格违规监测成为了汽车企业不可或缺的一环。 群狼调研&#xff08;长沙渠道代购调查&#xff09;受多家汽车企业委托开展门店…

查看window电脑的凭据密码(netpass)

软件地址 根据自身的windows版本下载对应的版本&#xff0c;解压密码&#xff1a;ntps5291#

CodeMirror 自动换行配置

1、CodeMirror 是一个流行的代码编辑器&#xff0c;它提供了丰富的功能和易于使用的接口&#xff0c;使得我们可以轻松地在网页中实现代码编辑功能。 2、当我们编写一段足够长的代码时&#xff0c;如果不进行自动换行&#xff0c;代码行就会超出编辑器的可见范围&#xff0c;并…

虚拟环境安装+tmux+nvitop+conda activate无法激活环境的问题

虚拟环境的相关问题记录 安装anaconda创建虚拟环境conda create -n 的时候报错 安装tmuxtmux的使用 安装nvitop在AutoDL中使用nvitop步骤 1: 确保 Python 和 pip 已安装步骤 2: 安装 nvitop步骤 3: 验证安装注意事项 查看cpu/gpu资源使用情况查看进程conda activate无法激活虚拟…

光伏远动通讯屏的组成

光伏远动通讯屏的组成 远动通讯屏主要用于电力系统数据采集与转发&#xff0c;远动通讯屏能够采集站内的各种数据&#xff0c;如模拟量、开关量和数字量等&#xff0c;并通过远动通讯规约将必要的数据上传至集控站或调度系统。这包括但不限于主变和输电线路的功率、电流、电压等…

@Validate分组验证参数

public interface Group {/*** 新增操作*/interface ADD {}/*** 更新操作*/interface UPDATE {}/*** 更新操作*/interface DELETE {} }Data EqualsAndHashCode(callSuper false) public class StudentInfoDto implements Serializable {private static final long serialVers…

温暖家居新风尚,能率壁挂炉——设计新风尚,体验再升级

随着家居品质要求的提升&#xff0c;现代人对家居的舒适性和设计感有了更高的追求。壁挂炉&#xff0c;作为现代家居中不可或缺的一部分&#xff0c;其重要性日益凸显。中国国际供热通风空调、卫浴及舒适家居系统展览会&#xff08;ISH China & CIHE&#xff09;将于2024年…

轻松搞定!png格式图片怎么弄?详细方法一网打尽

在数字图像处理的日常应用中&#xff0c;PNG格式因其高质量的图像和支持透明背景的特性而备受青睐。然而&#xff0c;对于一些刚刚接触这一格式的用户&#xff0c;或者在处理PNG图片时遇到一些挑战的用户来说&#xff0c;如何轻松而有效地处理这种格式的图像可能是个问题。png格…

汽车灯罩使用聚碳酸酯(PC)和PMMA(亚克力)哪个更好?汽车车灯的灯罩如果破损破裂破洞了要怎么修复?

汽车灯罩使用聚碳酸酯&#xff08;PC&#xff09;和PMMA&#xff08;亚克力&#xff09;哪个更好&#xff1f; 聚碳酸酯&#xff08;PC&#xff09;和PMMA&#xff08;亚克力&#xff09;都是汽车灯罩常见的材质&#xff0c;它们各自具有独特的优点和特性&#xff0c;因此选择…

Seata之TCC 模式的使用

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能…

【Go——实现小堆顶】

1. 堆概念 堆是一种经过排序的完全二叉树&#xff0c;其中任一非终端节点的数据值均不大于&#xff08;或不小于&#xff09;其左孩子和右孩子节点的值。 最大堆和最小堆是二叉堆的两种形式。 最大堆&#xff1a;根结点的键值是所有堆结点键值中最大者。 最小堆&#xff1a…

如何保护数据安全?迅软DSE加密系统给信息撑把保护伞!

信息安全当然需要保护&#xff0c;不然企业的信息可以发给任何人&#xff0c;普通信息还好&#xff0c;如果是重要机密呢&#xff0c;企业重要信息被发出去后可能会造成一些麻烦&#xff0c;所以可以使用加密系统&#xff0c;对数据进行安全保护&#xff0c;防止泄密问题&#…