牛客java练习题

@ [toc]

1.依赖注入

  • 依赖注入是一种设计模式和编程思想,不依赖 具体的框架实现,可以通过多种方式和框架来实现
  • 可以通过Spring , Google Guice , PicoContainer 等都可以实现依赖注入,也可以通过手动编写实现
  • 目的:
    • 为了解耦合,将对象之间的依赖关系从代码中解耦出来, 使系统更加灵活,更易于维护和测试
  • 方法:
    • 构造方法注入: 通过构造函数传入依赖对象
    • Setter方法注入:通过Setter方法设置依赖对象
    • 接口注入

2.File类

  • File类是用来表示文件和目录路径名的抽象,主要功能是对文件和目录进行操作,如创建,删除,重命名,以及获取文件和目录的各种属性信息.如果要进行文件内容的读写,则需要使用java IO流相关的类
  • java中用于文件操作的基础类,主要用于获取文件和目录的属性,信息等,而不能直接进行文件的读写操作
  • File本身不能读写文件内容,需要使用FileInputStream,FileOutputStream,FIleReader,FileWriter等流类操作
  • 通过createNewFile()方法创建文件,通过mkdir()或者mkdirs()方法创建目录

3.多线程

  • run()方法是线程执行的入口点,也是新线程执行的起点.当一个类继承Thread类实现Runnable接口时,必须==重写run()==方法来定义线程要执行的任务
  • start()方法是用来启动线程的方法,是线程进入就绪状态,等待CPU调度

4.HashMap

  • java中常用的集合类
  • 使用键值对的形式存储数据,每个键都映射一个特定的值,这种结构让数据的存取非常高效
  • 不保证元素的顺序,有序存储需要使用LinkedHashMap或者ThreeMap
  • 允许使用null作为键,但是只能有一个null键
  • 允许使用null做值,并且可以有多个键映射到值
  • 键必须是唯一的,但是值可以重复
  • HashMap的实现基于哈希表,查找效率为O(1)
  • 不是线程安全,多线程环境下应使用ConcurrentHashMap

5.序列化

  • java实现序列化时,必须实现Serializable接口,这是一个标记接口,没有定义任何方法,仅用来标识某个类对象可以序列化.当一个类实现后,java虚拟机在序列化的过程中提供默认的序列化机制
  • 序列化时将对象转换为字节序列的过程
  • 反序列化是将字节序列恢复对象的过程
  • serialVersionUID是 序列化版本号,用于确保序列化与反序列化的类版本一致
  • 使用transient关键字可以标记不需要序列化的字段

6.Cloneable接口

  • 用于标记一个类的对象可以被克隆

7.Comparable接口

  • 用于定义对象之间自然排序规则,提供compareTo方法的实现

8.Writeable

  • 不是java标准库中的接口

9.executeUpdate()方法返回值的具体含义

  • 其返回值表示受影响的行数
  • 对于INSERT语句:返回新增的记录数
  • 对于UPDATE语句:返回更新的记录数
  • 对于DELETE语句:返回删除的记录数
  • 如果执行失败,则会抛出SQLException,恩施返回特殊值

10.volatile

  • 用于多线程环境下的同步控制,但是并不能完全保证线程安全
  • 能保证可见性 和 有序性 ,但是不能保证原子性
  • JVM的内存模型规定,volatile变量的值在使用前必须从主内存重新加载,保证获取到的是最新值
  • 轻量级的同步机制,保证内存可见性和机制指令重新排序,但是不保证原子性,所以不保证线程安全

11.线程安全的类

  • Hashtable:其所有方法都是同步的(synchronized),任一时刻只能有一个线程访问,所以是线程安全的,但是性能不如HashMap,在多线程环境下可以安全使用
  • Vector:与Hashtable类似,所有方法是同步的,可在多线程环境下安全使用,是ArrayList的线程安全版本
  • 现在更推荐使用java.util.concurrent包下的并发集合类,如ConcurrentHashMap,CopyOnWriteArrayList等

12.线程不安全的类

  • TreeSet:基于T热额Map实现的,不是线程安全的,可以使用Collections.synchronizedSet()实现线程安全
  • LinkkedList:是双向链表实现,本身不是线程安全的,在多线程环境下使用需要额外的同步措施

13.类方法的特性和调用规则

  • 类方法中不能使用this关键字,因为this表示当前对象的引用,而类方法属于类本身,不依赖与具体对象,在类方法中使用this是语法错误
  • 可以直接调用本类的其他方法和类变量
  • 也可以调用实例方法,但需要先创建类的实例对象,然后通过对象引用来调用

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

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

相关文章

大模型应用开发自学笔记

理论学习地址: https://zh.d2l.ai/chapter_linear-networks/index.html autodl学术加速: source /etc/network_turboconda常见操作: 删除: conda remove --name myenv --all -y导出: conda env export > environment.yml…

鸿蒙ArkUI实战之TextArea组件、RichEditor组件、RichText组件、Search组件的使用

本文接上篇继续更新ArkUI中组件的使用,本文介绍的组件有TextArea组件、RichEditor组件、RichText组件、Search组件,这几个组件的使用对应特定场景,使用时更加需要注意根据需求去使用 TextArea组件 官方文档: TextArea-文本与输…

除了`String`、`StringBuffer` 和 `StringBuilder`之外,还有什么处理字符串的方法?

一、标准库中的字符串处理类 1. StringJoiner(Java 8) 用途:用于在拼接字符串时自动添加分隔符、前缀和后缀。示例:StringJoiner sj new StringJoiner(", ", "[", "]"); sj.add("A").…

Qt中读写结构体字节数据

在Qt中读写结构体字节数据通常涉及将结构体转换为字节数组(QByteArray)或直接从内存中读写。以下是几种常见方法&#xff1a; 方法1&#xff1a;使用QDataStream读写结构体 cpp #include <QFile> #include <QDataStream>// 定义结构体 #pragma pack(push, 1) //…

Windows 10 上安装 Spring Boot CLI详细步骤

在 Windows 10 上安装 Spring Boot CLI 可以通过以下几种方式完成。以下是详细的步骤说明&#xff1a; 1. 手动安装&#xff08;推荐&#xff09; 步骤 1&#xff1a;下载 Spring Boot CLI 访问 Spring Boot CLI 官方发布页面。下载最新版本的 .zip 文件&#xff08;例如 sp…

Unity3D仿星露谷物语开发37之浇水动画

1、目标 当点击水壶时&#xff0c;实现浇水的动画。同时有一个水从水壶中流出来的特效。 假如某个grid被浇过了&#xff0c;则不能再浇水了。。 如果某个grid没有被dug过&#xff0c;也不能被浇水。 2、优化Settings.cs脚本 增加如下内容&#xff1a; public static float…

【2】Kubernetes 架构总览

Kubernetes 架构总览 主节点与工作节点 主节点 Kubernetes 的主节点&#xff08;Master&#xff09;是组成集群控制平面的关键部分&#xff0c;负责整个集群的调度、状态管理和决策。控制平面由多个核心组件构成&#xff0c;包括&#xff1a; kube-apiserver&#xff1a;集…

如何对docker镜像存在的gosu安全漏洞进行修复——筑梦之路

这里以mysql的官方镜像为例进行说明&#xff0c;主要流程为&#xff1a; 1. 分析镜像存在的安全漏洞具体是什么 2. 根据分析结果有针对性地进行修复处理 3. 基于当前镜像进行修复安全漏洞并复核验证 # 镜像地址mysql:8.0.42 安全漏洞现状分析 dockerhub网站上获取该镜像的…

【Tauri2】026——Tauri+Webassembly

前言 不多废话 直言的说&#xff0c;笔者看到这篇文章大佬的文章 【04】Tauri 入门篇 - 集成 WebAssembly - 知乎https://zhuanlan.zhihu.com/p/533025312尝试集成一下WebAssembly&#xff0c;直接开始 正文 准备工作 新建一个项目 安装 vite的rsw插件和rsw pnpm instal…

OpenHarmony Camera开发指导(五):相机预览功能(ArkTS)

预览是在相机启动后实时显示场景画面&#xff0c;通常在拍照和录像前执行。 开发步骤 创建预览Surface 如果想在屏幕上显示预览画面&#xff0c;一般由XComponent组件为预览流提供Surface&#xff08;通过XComponent的getXcomponentSurfaceId方法获取surfaceid&#xff09;&…

puzzle(0531)脑力航迹

目录 脑力航迹 规则 解法 简单模式 中等模式 困难模式 专家模式 脑力航迹 规则 2条航迹会产生一个相对航迹&#xff1a; 根据相对航迹和其中一个航迹推导另外一个航迹。 解法 没有任何需要推理的地方&#xff0c;就是纯粹的2个矢量相加。 简单模式 中等模式 困难模…

在win上安装Ubuntu安装Anaconda(linx环境)

一&#xff0c;安装Ubuntu 1. 在 Microsoft 商城去下载Ubuntu(LTS:是长期维护的版本) 2.安装完之后启动程序&#xff0c;再重新打开一个黑窗口&#xff1a; wsl --list --verbose 3.关闭Ubuntu wsl --shutdown Ubuntu-22.04 WSL2 Ubuntu-20.04文件太占c盘空间&#xff0c;…

NEAT 算法解决 Lunar Lander 问题:从理论到实践

NEAT 算法解决 Lunar Lander 问题:从理论到实践 0. 前言1. 定义环境2. 配置 NEAT3. 解决 Lunar lander 问题小结系列链接0. 前言 在使用 NEAT 解决强化学习问题一节所用的方法只适用于较简单的强化学习 (reinforcement learning, RL) 环境。在更复杂的环境中使用同样的进化解…

【KWDB 创作者计划】_上位机知识篇---ESP32-S3Arduino

文章目录 前言1. ESP32-S3核心特性2. 开发环境搭建(1) 安装Arduino IDE(2) 添加ESP32-S3支持(3) 选择开发板(4) 关键配置3. 基础代码示例(1) 串口通信(USB/硬件串口)(2) Wi-Fi连接(3) 蓝牙LE广播4. 高级功能开发(1) USB OTG功能(2) AI加速(MicroTensorFlow)(3) 双核任务处理…

JavaScript学习教程,从入门到精通,DOM节点操作语法知识点及案例详解(21)

DOM节点操作语法知识点及案例详解 一、语法知识点 1. 获取节点 // 通过ID获取 const element document.getElementById(idName);// 通过类名获取&#xff08;返回HTMLCollection&#xff09; const elements document.getElementsByClassName(className);// 通过标签名获取…

PCA 降维实战:从原理到电信客户流失数据应用

一、简介 在机器学习领域&#xff0c;数据的特征维度往往较高&#xff0c;这不仅会增加计算的复杂度&#xff0c;还可能导致过拟合等问题。主成分分析&#xff08;Principal Component Analysis&#xff0c;简称 PCA&#xff09;作为一种经典的降维技术&#xff0c;能够在保留数…

信创时代编程开发语言选择指南:国产替代背景下的技术路径与实践建议

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开…

Arcgis10.1的汉化包及破解文件分享

Arcgis10.1的汉化包分享 网上有好多10.2的汉化包&#xff0c;但是10.1的汉化包很少&#xff0c;特在此分析出来给大家 Arcgis10.1破解文件及汉化包: (访问密码: 9784) license manager破解安装文件 另外也分享了license manager破解安装文件&#xff0c;也在相同的分享链接里…

CrewAI Community Version(一)——初步了解以及QuickStart样例

目录 1. CrewAI简介1.1 CrewAI Crews1.2 CrewAI Flows1.3 Crews和Flows的使用情景 2. CrewAI安装2.1 安装uv2.2 安装CrewAI CLI 3. 官网QuickStart样例3.1 创建CrewAI Crews项目3.2 项目结构3.3 .env3.4 智能体角色及其任务3.4.1 agents.yaml3.4.2 tasks.yaml 3.5 crew.py3.6 m…

word选中所有的表格——宏

Sub 选中所有表格()Dim aTable As TableApplication.ScreenUpdating FalseActiveDocument.DeleteAllEditableRanges wdEditorEveryoneFor Each aTable In ActiveDocument.TablesaTable.Range.Editors.Add wdEditorEveryoneNextActiveDocument.SelectAllEditableRanges wdEdito…