Java 小题 1

Java 小题 1

单选题

  1. 以下关于构造方法的描述错误的是 。

A. 构造方法的返回类型只能是void型。

B. 构造方法是类的一种特殊方法,它的方法名必须与类名相同。

C. 构造方法的主要作用是完成对类的对象的初始化工作。

D. 一个类可以定义多个构造方法。

正确答案:A

解析:构造方法没有返回类型,包括 void。因为构造方法的主要作用是完成对类的对象的初始化工作,所以不应该有返回类型。

单选题

  1. instanceof运算符能够用来判断一个对象是否为:

A. 一个类的实例

B. 一个实现指定接口的类的实例

C. 全部正确

D. 一个子类的实例

正确答案:C

单选题

  1. 内部类(也叫成员内部类)可以有4种访问权限。( )

A. 正确

B. 错误

正确答案:A

解析:

Java 内部类是定义在另一个类中的类,它们允许我们在一个类的内部创建另一个类。内部类具有访问外部类的成员变量和方法的权限,并且可以访问它们,甚至可以访问私有成员。

以下是 Java 内部类的一些重要知识点:

  1. 内部类的类型
    • 成员内部类(Member Inner Class):定义在另一个类的内部的普通类。
    • 静态内部类(Static Nested Class):被声明为 static 的内部类,可以直接使用外部类的静态成员。
    • 方法内部类(Local Inner Class):定义在方法中的类,只能在该方法的作用域内使用。
    • 匿名内部类(Anonymous Inner Class):没有类名的内部类,通常用于创建只需要一次使用的类实例。
  2. 访问权限
    • 内部类可以访问外部类的所有成员,包括私有成员。
    • 外部类可以访问内部类的所有成员,包括私有成员。
    • 在内部类中,可以使用外部类的引用来访问外部类的实例。
  3. 作用
    • 内部类提供了更好的封装性,可以将相关的类组织在一起。
    • 可以实现一些设计模式,如工厂模式、观察者模式等。
    • 可以更轻松地访问外部类的成员变量和方法,避免了暴露过多的公共接口。
  4. 内部类与外部类之间的关系
    • 内部类对象总是隐式地与其外部类对象相关联。因此,在创建内部类对象时,必须先创建外部类的对象。
  5. 局部变量的访问
    • 在 Java 8 之前,如果内部类访问方法中的局部变量,则这些变量必须声明为 final 或 effectively final。
    • 从 Java 8 开始,内部类可以访问方法中的 final 局部变量,以及实际上不会更改的局部变量。

内部类的访问权限

  • 成员内部类和静态内部类可以具有 public、protected、默认(package-private)和 private 四种访问权限。
  • 方法内部类和匿名内部类不能拥有访问修饰符,因为它们的作用域限制在定义它们的方法或代码块内部。

访问权限的含义

  • public:表示该内部类对任何类都是可见的。
  • protected:表示该内部类对同一个包内的其他类和该内部类的子类可见。
  • 默认(package-private):表示该内部类对同一个包内的其他类可见。
  • private:表示该内部类只对外部类可见,其他类无法访问该内部类。

访问外部类成员的限制

  • 内部类可以直接访问外部类的所有成员,包括私有成员,无需通过对象实例。
  • 外部类可以访问内部类的所有成员,包括私有成员,但需要通过内部类的对象实例来访问。

单选题

  1. 下列哪个说法是正确的()

A. ConcurrentHashMap使用synchronized关键字保证线程安全

B. HashMap实现了Collction接口

C. Array.asList方法返回java.util.ArrayList对象

D. SimpleDateFormat是线程不安全的

正确答案:D

解析:D. SimpleDateFormat 是线程不安全的。因为 SimpleDateFormat 类的实例在多线程环境下共享时会出现线程安全问题,因此在多线程环境下使用时需要采取额外的措施保证线程安全,比如使用 ThreadLocal。其他选项中,ConcurrentHashMap 使用了线程安全的算法,HashMap 没有实现 Collection 接口,Array.asList 返回的是 Arrays 内部类 ArrayList 而不是 java.util.ArrayList。

多选题

5.有关线程的叙述正确的是()

A. 可以获得对任何对象的互斥锁定

B. 通过继承Thread类或实现Runnable接口,可以获得对类中方法的互斥锁定

C. 线程通过使用synchronized关键字可获得对象的互斥锁定

D. 线程调度算法是平台独立的

正确答案:CD

解析:C. 线程通过使用 synchronized 关键字可获得对象的互斥锁定,D. 线程调度算法是平台独立的。因为 synchronized 关键字用于实现线程同步,确保多个线程访问共享资源时的互斥性;而线程调度算法的实现是由具体的操作系统决定的,与平台相关性较大,但 Java 中的线程调度 API 是与平台无关的。

通过继承 Thread 类或实现 Runnable 接口,可以创建多线程应用程序。然而,这种方式并不直接提供对类中方法的互斥锁定。在 Java 中,要实现对类中方法的互斥锁定,您需要使用关键字 synchronized 或者使用 Lock 接口及其实现类(如 ReentrantLock)来实现。

  1. 使用 synchronized 关键字:synchronized 关键字可以应用在方法上或代码块中,用来保证同一时间只有一个线程可以进入被 synchronized 修饰的方法或代码块,从而实现对类中方法的互斥锁定。例如:
public class MyClass {private int count = 0;// 使用 synchronized 修饰方法public synchronized void increment() {count++;}// 或者使用 synchronized 代码块public void incrementSyncBlock() {synchronized (this) {count++;}}
}
  1. 使用 Lock 接口及其实现类:Lock 接口提供了更灵活的锁定机制,可以实现更复杂的锁定逻辑。例如:
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;public class MyClass {private int count = 0;private final Lock lock = new ReentrantLock();public void increment() {lock.lock();try {count++;} finally {lock.unlock();}}
}

无论是使用 synchronized 关键字还是 Lock 接口,都可以实现对类中方法的互斥锁定,确保在多线程环境下的线程安全性。

知识点:Java

大家好,我是xwhking,一名技术爱好者,目前正在全力学习 Java,前端也会一点,如果你有任何疑问请你评论,或者可以加我QQ(2837468248)说明来意!希望能够与你共同进步

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

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

相关文章

09 网络ARP请求,响应,ICMP协议

arp协议_arp请求_arp回应 ICMP包构造ping搜狐服务器参考 #include <stdio.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <linux/if_packet.h> #include <linux/if_ether.h> #include <string.h> #includ…

基于Springboot Vue医院管理系统+数据库脚本+文档(万字)

项目效果视频: 基于Springboot Vue医院管理系统 一、 项目介绍 角色&#xff1a;管理员、患者、医生 基于springboot vue实现的医院管理系统&#xff0c;有管理员、医生和患者三种角色。系统拥有丰富的功能&#xff0c;能够满足各类用户的需求&#xff0c;系统提供了登录和注册…

Leetcode_27移除元素_26删除有序数组中的重复项_80删除有序数组中的重复项 II_169多数元素

文章目录 一、移除元素1.1 题目描述1.2 思路 二、删除有序数组中的重复项三、删除有序数组中的重复项 II四、多数元素 一、移除元素 1.1 题目描述 给你一个数组 nums 和一个值 val&#xff0c;你需要原地移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 …

PVE如何在CT中挂载目录

pct set 100 -mp1 /pveDir,mp/ctDir "pct set" pve命令 "100" ct编号 "-mp1" 挂载点1&#xff08;-mp2挂载点2&#xff09; "/pveDir" pve上的路径 "/ctDir" ct上的路径 若出现无权限写数据&#xff0c;参考下面的博客&…

2024年华为OD机试真题-文件缓存系统-Java-OD统一考试(C卷)

题目描述: 请设计一个文件缓存系统,该文件缓存系统可以指定缓存的最大值(单位为字节)。 文件缓存系统有两种操作:存储文件(put)和读取文件(get) 操作命令为put fileName fileSize或者get fileName 存储文件是把文件放入文件缓存系统中;读取文件是从文件缓存系统中访问已存…

ARM IHI0069F GIC architecture specification (1)

CH1.1 关于通用中断控制器 (GIC) GICv3 架构设计用于与 Armv8-A 和 Armv8-R 兼容的处理元件、PE 一起运行。 通用中断控制器 (GIC) 架构定义&#xff1a; • 处理连接到GIC 的任何PE 的所有中断源的架构要求。 • 适用于单处理器或多处理器系统的通用中断控制器编程接口。 GIC …

Day20 代码随想录(1刷) 二叉树

目录 654. 最大二叉树 617. 合并二叉树 700. 二叉搜索树中的搜索 98. 验证二叉搜索树 654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。递归地在最大值 左边 的 子数…

最长公共子序列、LCS算法模型

LCS问题就是给定两个序列A和B&#xff0c;求他们最长的公共子序列。 在求解时&#xff0c;我们会设dp[i][j]表示为A[1 ~ i]序列和B[1 ~ j]序列中&#xff08;不规定结尾&#xff09;的最长子序列的长度。 if(a[i]b[i]) dp[i][j]dp[i-1][j-1]1; else dp[i][j]max(dp[i-1][j],dp…

局部静态变量实现单例模式,线程安全(推荐使用)c++11

class Singleton{ public:~Singleton();static Singleton& getInstance(){static Singleton instance;return instance; } private:Singleton(); };原因是C 11标准中新增了一个特性叫Magic Static&#xff1a;如果变量在初始化时&#xff0c;并发线程同时进入到static声明语…

白话模电:4.耦合、差分、无源滤波、反馈(考研面试常问问题)

一、介绍一下三极管多级放大电路的三种耦合方式及其特点&#xff1f;耦合的目的是什么&#xff1f; 多级放大电路中各放大级之间的连接方式称为耦合方式。常见的耦合方式有三种&#xff1a;阻容耦合&#xff08;RC耦合&#xff09;、直接耦合和变压器耦合。 耦合的目的是将信号…

Dubbo的服务降级

Dubbo的服务降级是一种容错机制&#xff0c;用于在分布式系统中处理在异常或故障情况下保障系统的可用性和稳定性。服务降级的核心思想是当调用远程服务失败或超时时&#xff0c;不会让整个业务流程崩溃&#xff0c;而是通过提供备用方案来保持部分功能的正常运行。 在Dubbo中&…

华南地区日用品电商综合服务商「广州麦和」积极推进数字化,企企通助力企业SRM系统上线

近期&#xff0c;由企企通携手华南地区线上最大的居家清洁&个人护理行业的电子商务综合服务商之一麦和&#xff08;广州&#xff09;实业有限公司&#xff08;以下简称“广州麦和”&#xff09;打造的SRM采购供应链协同系统上线&#xff0c;推进数字化采购管理体系建设&…

Xilinx缓存使用说明和测试

Xilinx缓存使用说明和测试 1 BRAM说明2 FIFO说明3 实例测试3.1 代码3.2 仿真本文主要介绍Xilinx FPGA芯片中BRAM和FIFO的使用方法和测试结果,主要针对流接口进行仿真。 1 BRAM说明 BRAM是Xilinx芯片中重要的存储资源,其可配置为单端口RAM/ROM或者双端口RAM/ROM,本文以最复杂…

el-select 下拉框点击某一禁选选项 按Esc关闭弹窗 下拉框无法收起问题

下面请看详细内容 会出现下图情况 弹窗能正常关闭 但是下拉框选项面板仍然存在 解决思路1&#xff1a; 本来想的是监听dialog的Esc关闭事件 关闭时修改el-select-dropdown的css样式 将display none 这个没实现 解决思路2&#xff1a; 看官网发现有个失焦事件 他手动触发失…

大词汇量高质量3D物体生成需要解决哪些问题?如何解决?

作者:Vallee | 来源:计算机视觉工坊 在公众号「计算机视觉工坊」后台,回复「原论文」可获取论文pdf和代码链接 DiffTF: 基于Transformer的大词汇量3D扩散模型 大词汇量3D物体生成 最近基于扩散模型的3D生成方法大火,但如何生成大量类别且高质量的3D模型还没得到很好地解决…

SpringBoot+Vue项目跨域问题

一、前言 问题 当我们遇到请求后台接口遇到 Access-Control-Allow-Origin 时&#xff0c;那说明跨域了。 跨域 跨域是因为浏览器的同源策略所导致&#xff0c;同源策略&#xff08;Same origin policy&#xff09;是一种约定&#xff0c;它是浏览器最核心也最基本的安全功能…

手写DNS服务器测速程序(工具分享)

手写DNS服务器测速程序&#xff08;工具分享&#xff09; 目的特性下载地址使用方法Golang代码 目的 为路由器设置dns时往往不知道如何设置dns为最佳&#xff0c;网上搜的脚本都不好用&#xff0c;于是手写了这个程序。 特性 多DNS服务器并发测试每个DNS服务器测试多次测试取…

python中的__dict__

类的__dict__返回的是&#xff1a;类的静态函数、类函数、普通函数、全局变量以及一些内置的属性都是放在类的__dict__里的&#xff0c; 而实例化对象的&#xff1a;__dict__中存储了一些类中__init__的一些属性值。 import的py文件 __dict__返回的是&#xff1a;__init__的…

DARTS-: ROBUSTLY STEPPING OUT OF PERFORMANCE COLLAPSE WITHOUT INDICATORS

DARTS-&#xff1a;增加辅助跳跃连接&#xff0c;鲁棒走出搜索性能崩溃 论文链接&#xff1a;https://arxiv.org/abs/2009.01027 项目链接&#xff1a;GitHub - Meituan-AutoML/DARTS-: Code for “DARTS-: Robustly Stepping out of Performance Collapse Without Indicators…

数据平台“国产替代”掣肘在迁移?奇点云的工业制造实践解读

系列导读 如《“数据要素”三年行动计划&#xff08;2024—2026年&#xff09;》指出&#xff0c;工业制造是“数据要素”的关键领域之一。如何发挥海量数据资源、丰富应用场景等多重优势&#xff0c;以数据流引领技术流、资金流、人才流、物资流&#xff0c;对于制造企业而言是…