Java面经--JVM篇

news/2024/10/15 21:46:06/

前言:资料由本人从网上寻找加上本人的个人理解进行编写总结,为的就是帮助自己快速掌握知识点,如有疑问或错误的点,欢迎评论区留言或者私信。


1.什么是JVM?

JVM即Java虚拟机(Java Virtual Machine),是Java运行的程序环境,负责将Java代码转换成计算机能运行的机器码,提供运行的必要环境。

2.JVM有什么优秀的特性?

跨平台运行(Once Write, Run Everywhere:一次编写,到处运行)。因为JVM会将Java编译器编译后的字节码转换成不论是在x86,arm,Windows或者是Linux平台上都能运行的机器码(二进制码)

ps:哪有什么风平浪静,都是JVM在替我们负重前行

3.Java代码的运行过程是怎样的?

首先,Java编译器将Java代码(.java)编译成字节码(.class),经过JVM解释或即时编译(JIT)为计算机能运行的机器码。

4.深入浅出理解字节码

Java字节码是Java编译器将Java源代码编译后生成的中间表示形式,位于Java源代码与JVM执行的机器码之间。

4.1.字节码的结构

字节码是平台无关的指令集,存储在.class文件中,每个.class文件包含类的定义信息、字段、方法,以及方法对应的字节码指令。

4.2.字节码的指令集

字节码包含一系列的指令,如加载、存储、算术运算、类型转换、对象操作、控制流等。常见的指令包括aload、iload、astore、iadd、if_icmpgt等。

4.3.字节码的执行过程

JVM通过解释器逐条执行字节码,或通过JIT编译器将热点字节码片段即时编译成机器码,提高执行效率。

4.4.反射和动态代理

通过Java反射API,可以在修改代码时动态生成或修改字节码,从而创建代理对象或实现动态方法调用

4.5.字节码增强技术

许多Java框架(如Hibernate, Spring AOP)使用字节码增强技术,通过修改类的字节码来实现功能增强。常用工具包括ASM、Javassist、CGLIB等。

未完待续~~


http://www.ppmy.cn/news/1539628.html

相关文章

Flash Attention:高效注意力机制的突破

近年来,注意力机制(Attention)已成为自然语言处理和深度学习领域的重要工具。然而,传统的注意力实现在处理长序列时存在计算和内存效率低下的问题。为了解决这一挑战,研究者们提出了Flash Attention,一种快速、内存高效的注意力算…

使用 `fork()` 和 `waitpid()` 进行进程管理的详解

使用 fork() 和 waitpid() 进行进程管理的详解 在 C/C 编程中,fork() 和 waitpid() 是处理进程创建和管理的关键函数。本文将深入探讨 fork() 的用法、参数解析、wait() 和 waitpid() 的区别,以及如何正确获取子进程的退出状态。 1. fork() 函数概述 …

单链表算法题(一)(超详细版)

前言 : 通过算法题 , 学习解决问题的思路 , 再面对类似的算法题时 , 能快速定位解决方案 一 . 移除链表元素 移除链表元素 : . - 力扣(LeetCode) 思路一 : 通过遍历链表找到值为val 的结点 , …

应急响应:DHCP$DNS劫持实战

目录 DHCP DHCP安全性: DHCP常见的攻击手段: DNS DNS常见的攻击方式: DNS&DHCP攻击实战演练: 环境配置: 利用: 排查: 防御: DHCP 介绍: DHCP(…

【代码随想录Day43】动态规划Part11

1143.最长公共子序列 题目链接/文章讲解:代码随想录 视频讲解:动态规划子序列问题经典题目 | LeetCode:1143.最长公共子序列_哔哩哔哩_bilibili class Solution {public int longestCommonSubsequence(String text1, String text2) {// 将输…

使用three.js 实现蜡烛效果

使用three.js 实现蜡烛效果 import * as THREE from "three" import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js"var scene new THREE.Scene(); var camera new THREE.PerspectiveCamera(60, window.innerWidth / window.in…

香港大学神作 LightRAG 横空出世!AI 检索生成系统革命,秒懂复杂信息,动态数据无所遁形!

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦! 微信订阅号|搜一搜&…

Python基础知识9

Python推导式 1.Python 推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。 2.Python 支持各种数据结构的推导式: 列表(list)推导式字典(dict)推导式集合(set)推导式元组(tuple)推导式 列表推导式 1.列表推导式格…