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

JAVA开发面试题

目录

  • 1、进程与线程的区别
  • 2、Thread类的start()和run()方法之间的区别
  • 3、线程状态
  • 4、关于JMM的面试题:JMM的规定
  • 5、B+树与B树的区别/索引使用了什么数据结构/介绍一下B+树
  • 事物的ACID特性

1、进程与线程的区别

1、进程中包含线程,至少有一个主线程
2、进程是申请资源的最小单位
3、线程是CPU调度的最小单位
4、线程共享进程申请来的所有资源
5、一个线程如果崩溃了,会影响整个进程

2、Thread类的start()和run()方法之间的区别

1、start()方法,真正的申请系统线程PBC,从而启动一个线程,参与CPU调度
2、run()方法,定义线程时指定线程要执行的任务,如果调用只是Java对象的一个普通方法而已

3、线程状态

1、NEW:表示创建好了一个Java线程对象,安排好了任务,但是还没有启动没有调用start()方法之前是不会创建PCB的,和PCB没有任何关系。
2、RUNNABLE:运行+就绪的状态,在执行任务时最常见的状态之一,在系统中有对应PCB。
3、BLOCKED:等待锁的状态,阻塞中的一种。
4、WATING:没有等待时间,一直死等,直到被唤醒。
5、TIMED WATING:指定了等待时间的阻塞状态,过时不侯。
6、TERMINATED:结束,完成状态,PCB已经销毁,但是JAVA线程对象还在。

4、关于JMM的面试题:JMM的规定

1、所有的线程不可以直接修改内存中的共享变量
2、如果要修改共享变量,需要把这个变量从主内存中复制到自己的工作内存中,修改完成之后在刷回主内存
3、各个线程之间不能相互通信,做到了内存级别的线程隔离

5、B+树与B树的区别/索引使用了什么数据结构/介绍一下B+树

1、叶子节点之间有一个相互连接的引用(可以双向或单向,InnoDB中是双向),可以通过一个叶子节点找到它相邻的兄弟节点
MySQL在组织叶子节点的时候用的是双向链表
2、非叶子节点的值都包含在叶子节点中
MySQL非叶子节点只保存了对子节点的引用,没有保存真实的数据,所有的真实数据都在叶子节点中保存
3、对于B+树而言,在相同树高的情况下,查找任意元素的时间复杂度都一样,性能均衡。

事物的ACID特性

事物的ACID特性指的是Atomicity(原子性),Consistency(一致性),Isolation(隔离性)和Durability(持久性)。

1、Atomicity(原子性):一个事务中所有的操作,要么全部成功,要么全部失败,不会出现只执行了一半的情况,如果事务在执行过程中发生错误,会回滚到事务开始之前的状态,就像这个事务从来没有执行过一样;
2、Consistency(一致性):在事务开始之前和事务结束以后,数据库的完整性不会被破坏。这表示写入的数据必须完全符合所有的预设规则,包括数据的精度、关联性以及关于事务执行过程中服务器崩溃后如何恢复;
3、Isolation(隔离性):数据库允许多个并发事务同时对数据进行读写和修改,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务可以指定不同的隔离级别,以权衡在不同的应用场景下数据库性能和安全:
4、Durability(持久性):事务处理结束后,对数据的修改将永久的写入存储介质,即便系统故障也不会丢失。

http://www.dtcms.com/a/385464.html

相关文章:

  • 逆向国内外社媒电商爬虫算法思路
  • 中山AI搜索优化公司:AI时代GEO技术全解析
  • PostgreSQL GIN 索引揭秘
  • 老鸟对单片机全局变量常用用法(读写在2个独立函数中)
  • 大前端社交应用中 AI 驱动的内容审核与反垃圾信息机制
  • MP3的ID3信息简介及其如何解析
  • MyBatis-Plus 扩展全局方法
  • java中的泛型
  • 使用 AWS Comprehend 综合指南
  • 使用秩和比拟解决非独立同分布情况下的投毒攻击
  • 七、vue3后台项目系列——包装scss、全句变量scss与导入
  • 煤矿山井下绝绝缘监测故障定位
  • 海外分部人员OA请假申请时长为0
  • MySQL --JDBC
  • python使用pyodbc通过不同认证方式连接sqlserver数据源
  • java通过线程池加CompletableFuture实现批量异步处理
  • Coze源码分析-资源库-创建知识库-后端源码-详细流程梳理
  • 极简版 Nginx 反向代理实验步骤
  • python-86-基于Graphviz或Mermaid绘制流程图
  • 智能农机无人驾驶作业套圈路径规划
  • Rayon Rust中的数据并行库入门教程
  • NumPy数组与Python列表的赋值行为解析
  • 基于 AI 的大前端智能家居控制应用开发
  • RAGFlow集成SGLang部署的大模型:实现OpenAI API兼容的自定义LLM调用
  • sqlsever 内存配置错误无法连接,后面恢复连接
  • 51c大模型~合集182
  • 2025.9.15总结
  • 深入理解 Roo Code 的 Code Actions 功能
  • Java---线程池讲解
  • PEFT QLora Deepspeed Zero Stage 3 Offload Trainning