欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 牛客java练习题

牛客java练习题

2025/5/13 14:57:17 来源:https://blog.csdn.net/pound127/article/details/147374962  浏览:    关键词:牛客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是语法错误
  • 可以直接调用本类的其他方法和类变量
  • 也可以调用实例方法,但需要先创建类的实例对象,然后通过对象引用来调用

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词