【day01】每天三道 java后端面试题:JDK、JRE和JVM | 字节码 | ACID

文章目录

  • 1. JDK, JRE, JVM分别是什么?有什么区别?
  • 2. 什么是字节码?采用字节码的最大好处是什么?
  • 3. 什么是数据库事务?讲一下事务的ACID特性。

1. JDK, JRE, JVM分别是什么?有什么区别?

答题思路: 分别回答三者的概念。解释三者之间的关系。

  • JDK是 java 开发工具包,包含了编写、编译、调试和运行 java 程序的所有工具和组件。JDK包含 JRE,还包含编译器(javac),javaAPI,文档注释工具(javadoc)等一系列的开发工具。

  • JRE是 java 运行时环境,包含了 java 虚拟机(JVM)和基础类库。

  • JVM是 java 虚拟机,是 java 程序运行的环境,其作用是运行 java 字节码,将 字节码解释或编译为机器码。字节码和不同系统的 JVM 实现,是 java 实现【一次编译,随处运行】的关键。

  • 三者关系图:
    在这里插入图片描述

2. 什么是字节码?采用字节码的最大好处是什么?

答题思路:
解释字节码;
理解 java 程序变为机器代码的过程;
从 java 程序变为机器代码的过程出发,理解采用字节码的好处。

  • 字节码

    • 字节码是 java 程序通过编译器(javac)编译后的中间代码,是一种可移植的二进制代码(即扩展名为 .class 的文件),可以在任何支持 java 虚拟机 (JVM)的平台上运行。
    • 字节码不面向任何特定的处理器(CPU),只面向 java 虚拟机。
  • java 程序转变为机器代码的过程

    ① java 程序通过编译器 javac 编译生成 .class 字节码文件;

    ② .class 字节码文件转化为机器码是在 JVM 中完成的。JVM 类加载器加载字节码文件,通过解释器逐行解释执行,这种方式的执行速度较慢。

    ③ 有些方法和代码块是经常被调用的(即热点代码),引进 JIT(Just in time compilation)编译器,JIT 属于运行时编译。当 JIT 编译器完成首次编译后,会将字节码对应的机器码保存下来,下次可以直接使用。机器码的运行效率高于 java 解释器。

    ④ 因此,java 是解释和编译共存的语言。

在这里插入图片描述

  • 采用字节码的好处

    ① 可移植性:字节码是中间代码,可以在任何支持 JVM 的平台上运行,使 java 程序有很好的可移植性,这也是 java 跨平台的重要特性之一。

    ② 安全性:字节码在 JVM 中运行,所以 JVM 可以对字节码进行安全检查,以确保程序不会对系统造成威胁。

    ③ 性能:字节码是一种紧凑的二进制格式,相比于直接编译为机器码,可以更快地加载和传输,同时可以在运行时进行动态优化 (JIT),提高程序的执行效率。

    ④ 可读性:相比于直接编译为机器码,字节码作为中间代码具有更好的可读性,可以方便地进行反汇编和调试。

3. 什么是数据库事务?讲一下事务的ACID特性。

  • 数据库事务是指数据库管理系统(DBMS)中的一个操作序列,这些操作必须作为一个不可分割的单元执行,即要么全部执行成功,要么全部失败回滚。事务通常涉及到对数据库中的数据进行读写操作。
  • 事务的 ACID 特性指四个关键特征:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
    1. 原子性(Atomicity):事务是一个原子操作,要么全部提交,要么全部回滚。当一个事务执行期间发生故障,操作系统会自动将其回滚到事务执行之前的状态,保证数据的一致性。
    2. 一致性(Consistency):事务执行结束后,数据必须保持一致性状态。在事务执行期间,数据库中的数据可以处于中间状态,但在事务完成时必须保证数据的一致性。
    3. 隔离性(Isolation):数据库系统必须保证事务之间相互隔离,不会互相干扰。隔离级别不同,会影响到事务的并发性和数据一致性,比如出现脏读、不可重复读、幻读等问题。
    4. 持久性(Durability):一旦事务提交,其所做的修改必须永久保存到数据库中。即使系统发生故障或宕机,数据也能够保持不变。
  • ACID 特性是保证事务正确性和数据一致性的重要手段。在设计数据库应用程序时,应该根据具体的业务需求和数据安全性要求,选择合适的隔离级别和事务提交策略,保证事务的可靠性和数据的一致性。

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

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

相关文章

Unity之闪电侠大战蓝毒兽

目录 🎨一、创建地形 🎮二、创建角色 🏃2.1 动画 🏃2.2 拖尾 🏃2.3 角色控制 ​🏃2.4 技能释放 🏃2.5 准星 📱三、创建敌人 🐲3.1 选择模型 🐲3.…

网站管理新利器:免费在线生成 robots.txt 文件!

🤖 探索网站管理新利器:免费在线生成 robots.txt 文件! 你是否曾为搜索引擎爬虫而烦恼?现在,我们推出全新的在线 robots.txt 文件生成工具,让你轻松管理网站爬虫访问权限,提升网站的可搜索性和…

机器学习---规则学习(一阶规则学习、归纳逻辑程序设计)

1. 一阶规则学习 “一阶”的目的:描述一类物体的性质、相互关系,比如利用一阶关系来挑“ 更好的”瓜,但实际应用 中很难量化颜色、 …、敲声的属性值。一般情况下可以省略全称量词。 命题逻辑:属性-值数据 色泽程度&#xff1a…

什么是三防平板,三防指什么?

1、三防平板是一种特殊的电子设备,具有防水、防尘和防震功能,常用于户外探险、工业领域、军事行动等需要在恶劣环境中使用的场合。 三防是英文“三防”(IP rating)的缩写,全称为“国际防护等级”,是由国际…

使用openai-whisper实现语音转文字

使用openai-whisper实现语音转文字 1 安装依赖 1.1 Windows下安装ffmpeg FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。 # ffmpeg官网 https://ffm…

Python+Flask低代码数据融合引擎工具

我用了2年多时间开发了一个低代码数据融合引擎工具 1.整体界面 2.主要功能 1)通过excel文件生成mysql数据表结构及数据保存 说明:功能细节包括(excel文件上传,文件内容预览,建表导入数据),难点在于对excel数据类型判断,并与mysql数据类型对应 2)建立数据表结构并批量导入数据 …

三防平板丨平板终端丨三防平板电脑丨建筑工地应用

随着建筑工程越来越复杂和规模越来越大,工地管理和协调变得越来越复杂。在这个过程中,工业设备的作用越来越重要,而三防平板作为一种实用的工业设备,在工地上的应用越来越广泛。本文将介绍三防平板在工地使用中的优势和应用。 一…

找座位 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C++ 题目描述 在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。 现在给出一排观众座位分布图,座位中存在已落座的观众,请计算出,在不移动现有观众座位…

基于java的眼镜店仓库管理系统

源码获取,加V:qq2056908377 摘要: 随着电子商务的兴起,越来越多的商家选择在线销售他们的产品。眼镜店作为零售业的一种,也不例外。随着市场需求的不断增加,眼镜店需要更加高效的管理他们的仓库和库存&…

Rabbitmq入门与应用(三)-RabbitMQ开发流程

RabbitMQ开发流程 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency>配置MQ 最简配置 spring:rabbitmq:host: mq的安装机器ipport: 5672username: ad…

【HarmonyOS】鸿蒙开发之prompt组件——第3.3章

prompt组件简介 prompt组件一共有三种弹出框: showToast&#xff08;&#xff09;showDialog&#xff08;&#xff09;showActionMenu&#xff08;&#xff09; 一.显示一个Toast showToast函数内参数说明如下: message&#xff1a;提示文本&#xff0c;必填项。 duratio…

GWO优化kmeans

GWO&#xff08;灰狼优化器&#xff09;是一种群体智能优化算法&#xff0c;它模拟了灰狼的社会结构和狩猎行为。GWO算法通过模拟灰狼的等级制度、狩猎策略和搜索机制来寻找问题的最优解。而K-means是一种经典的聚类算法&#xff0c;用于将数据点划分为K个簇。将GWO优化算法应用…