JVM前奏篇(大局观)】的更多相关文章

JVM(Java Virtual Machine) 前奏篇(看官网规范怎么说) 1.The relation of JDK/JRE/JVM 在下图中,我们所接触的,最熟悉,也是经常打交道的 最顶层 Java Language (.java 文件所写的内容),也就是java 语法层面.官方 划定出了 JDK(Java SE Development Kit (JDK) 8),JRE(Java SE Runtime Environment (JRE) 8) 所包含的Java components.官网…
话不多说直接上干货,先来看oracle官网中是怎么描述JDK的:https://docs.oracle.com/javase/8/docs/index.html 这是官网中JDK.JRE.JVM的一个关系图 看了这张图我们要学什么呢? 以前我们在用java开发代码的时候只知道把JDK下载下来然后进行写代码,其实这样我们只用到了JDK的一个Tools,也就是上图中的Tools,我们只站在了JDK的一个应用层,那么现在这篇博客的目的就是要我们站在Java Virtual Machine(JVM)层面…
javac编译原理 源文件----->类文件 词法分析------>语法分析------>语义分析----字节码生成器------.class 文件 javap  反编译 之所以能到处运行就是 因为 class文件   就是 通过 javaformat  规范 java 类加载机制: 类文件要运行在JVM中,装载.链接.初始化  装载: ① 就是查找和导入class 文件 将类文件转换为 二进制流  ClassLoader 类加载,不同的类加载器,加载不同区域的class文件 ② 讲二进…
一.前言 今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了: Android中使用静态方式破解Apk  主要采用的是静态方式,步骤也很简单,首先使用apktool来反编译apk,得到smail源码,然后分析smail代码,采用代码注入技术来跟踪代码,然后找到关键方法进行修改,进而破解,同时还可以使用一些开源的hook框架,比如:Xposed和Cydia Substrate,来进行关键方法的hook.所以这里我们可以看到我们破解的第一步是使用ap…
在一篇<初步了解JVM第一篇>中,我们已经了解了: 类加载器:负责加载*.class文件,将字节码内容加载到内存中.其中类加载器的类型有如下: 启动类加载器(Bootstrap) 扩展类加载器(Extension) 应用程序类加载器(AppClassLoader) 用户自定义加载器(User-Defined) 执行引擎:负责解释命令,提交给操作系统执行. 本地接口:目的是为了融合不同的编程语言提供给Java所用,但是企业中已经很少会用到了. 本地方法栈:将本地接口的方法在本地方法栈中登记,在执…
JVM学习篇-第一篇 JDK( Java Development Kit): ​ Java程序设计语言.Java虚拟机.Java类库三部分统称为JDK,JDK是用于支持Java程序开发的最小环境** JRE(Java Runtime Environment): ​ Java类库API中的JavaSE的API子集和Java虚拟机两部分统称为JRE,JRE是支持Java程序运行的标准环境 JVM(Java Virtual Machine): ​ Java虚拟机就是二进制字节码的运行环境,负责装载字节…
http://www.kuqin.com/java/20111031/314144.html 在<Java虚拟机规范>之中,详细描述了虚拟机指令集中每条指令的执行过程.执行前后对操作数栈.对局部变量表的影响等细节.这些细节描述与Sun的早期虚拟机(Sun Classic VM)高度吻合,但随着技术的发展,高性能虚拟机真正的细节实现方式已经渐渐与虚拟机规范所描述产生越来越大的差距,虚拟机规范中的描述逐渐成了虚拟机实现的“概念模型”——即实现只能保证规范描述等效. 基于上面的原因,我们分析程序的执…
大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制.编译过程和如何对Java程序进行调优相信都会有一个很好的认知. 废话不多说,直接带大家来初步认识一下JVM. 什么是JVM? JVM(Java Virtual Machine)是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域,它负责执行指令,还要管理数据.内存和寄存器. 看到这里,可能不懂JVM的人,已经蒙圈了.没关系,下面让我详细为大家介绍JVM的体系架构图,或许你会明白些. 简单来说,JVM就是…
本文内容过于硬核,建议有 Java 相关经验人士阅读. 0. 引言 一说到 JVM ,大多数人第一个想到的可能就是 GC ,今天我们就来聊一聊和 GC 关系最大的垃圾收集器以及垃圾收集算法,希望能通过本篇文章,让各位同学对 GC 有一个初步大体的认知. 1. 运行时数据区 JVM 在执行的时候会把它所管理的内存划分为几个不同的数据区域.这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁.根据<Java虚拟机规范>…
写在前面的话:本文是在观看尚硅谷JVM教程后,整理的学习笔记.其观看地址如下:尚硅谷2020最新版宋红康JVM教程 一.什么是类加载器 在类加载过程中,加载阶段有一个动作是"通过一个类的全限定名称获取定义此类的二进制字节流",虚拟机将这个动作交给应用程序,让其自行去决定怎么获取所需的类.而实现这个动作的代码就被称为类加载器.关于类加载过程,可以看我的上一篇博客<类加载过程>. 1.类与加载器 类加载器除了用于实现类的加载外,还用于确定一个类在虚拟机中的唯一性,也就是说类加载…