当前位置: 首页 > web >正文

牛客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.xdnf.cn/news/706.html

相关文章:

  • OpenCV 图像调整指南
  • CSS 预处理器:Sass 升级版本 浅学
  • Edge Impulse 训练openMV分类模型(字母+数字)
  • AnimateCC基础教学:制作一个打地鼠简化版
  • 第37讲|AI+农业气象建模:预测极端天气对农业的影响
  • Linux 动、静态库的实现
  • 【代码解读】开源模型 minimind之pretrain
  • Java29:Spring MVC
  • 认识MCP Function Calling AI Agent
  • Redis——内存策略
  • 对于网络资源二级缓存的简单学习
  • 第十章 继承与派生
  • C++ 构造函数调用顺序以及什么是虚析构函数?为什么需要它?
  • Ubuntu下安装和卸载MySQL
  • 简单使用MCP
  • PCA 降维实战:从原理到电信客户流失数据应用
  • 一键升级OpenSSH/OpenSSL修复安全漏洞
  • 【LINUX操作系统】线程基础与分页式存储管理
  • C++初阶-类和对象(中)
  • 【数据分析实战】使用 Matplotlib 绘制散点图
  • Android音视频开发
  • 【网络】通过Samba实现Window挂在Linux服务器路径
  • 【Windows10下PP-OCRv4部署指南‌】
  • 云点数据读写
  • 33-公交车司机管理系统
  • Kubernetes控制平面组件:调度器Scheduler(二)
  • MySQL:9.表的内连和外连
  • 字节头条golang二面
  • 基于Python的推荐算法的电影推荐系统的设计
  • 【深度学习入门_NLP自然语言处理】序章