[TOC] 字节码指令 Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)构成。Java虚拟机采用面向操作数栈而不是面向寄存器的架构,所以大多数指令都不包含操作数,只有一个操作码。 J ...
分类:
编程语言 时间:
2019-11-18 10:04:32
阅读次数:
111
11.JVM内存分哪几个区,每个区的作用是什么? java虚拟机主要分为以下一个区: 方法区:1. 有时候也成为永久代,在该区内很少发生垃圾回收,但是并不代表不发生GC,在这里进行的GC主要是对方法区里的常量池和对类型的卸载2. 方法区主要用来存储已被虚拟机加载的类的信息、常量、静态变量和即时编译器 ...
分类:
其他好文 时间:
2019-11-17 12:53:24
阅读次数:
86
良心制作,JVM原理速记复习Java虚拟机总结思维导图面试必备。
一、运行时数据区域
线程私有
程序计数器
记录正在执行的虚拟机字节码指令的地址(如果正在执行的是Native方法则为空),是唯一一个没有规定OOM(OutOfMemoryError)的区域。
Java虚拟机栈
每个Java方法在执... ...
分类:
编程语言 时间:
2019-11-16 23:46:01
阅读次数:
156
今天说下java的类加载器以及双亲委派模型 -- 简单介绍 我们先说类加载器:类加载器是通过一个类的全限定名来获取描述这个类的二进制字节流的代码模块。类加载器虽然只是实现类的加载动作,但它的实际作用并不是只在类的加载阶段。对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在java虚拟机 ...
分类:
其他好文 时间:
2019-11-16 17:31:31
阅读次数:
58
[TOC] 类文件结构 Class类文件的结构 任何一个Class文件都对应着唯一一个类或者接口的定义信息,但是类或者接口并不一定都要定义在文件里(例如类也可以通过类加载器直接生成)。Class文件是一组以8位字节为基础单位的二进制流,各项数据项目严格按照顺序紧凑地排列在Class文件中。Class ...
分类:
编程语言 时间:
2019-11-16 12:45:50
阅读次数:
74
0.前言 了解JVM虚拟机原理是每一个Java程序员修炼的必经之路。但是由于JVM虚拟机中有很多的东西讲述的比较宽泛,在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描述,很难给人以形象化的认知,看完之后感觉还是稀里糊涂的。 感于以上的种种,我打算把我在学习JVM虚拟机 ...
分类:
编程语言 时间:
2019-11-15 17:01:18
阅读次数:
94
0. 前言 了解JVM虚拟机原理是每一个Java程序员修炼的必经之路。但是由于JVM虚拟机中有很多的东西讲述的比较宽泛,在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描述,很难给人以形象化的认知,看完之后感觉还是稀里糊涂的。 感于以上的种种,我打算把我在学习JVM虚拟 ...
分类:
编程语言 时间:
2019-11-15 16:58:48
阅读次数:
91
1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚 ...
分类:
编程语言 时间:
2019-11-15 12:06:54
阅读次数:
64
前言 本来想着关于写JVM这个专栏,直接写知识点干货的,但是想着还是有必要开篇讲一下为什么要学习JVM,这样的话让一些学习者心里有点底的感觉比较好... 原因一:面试 不得不说,随着互联网门槛越来越高,JVM知识也是中高级程序员阶段必问的一个话题!现在不像以前了,以前会点 都好找工作,现在由于学习软 ...
分类:
编程语言 时间:
2019-11-13 15:54:44
阅读次数:
91
不知道大家有没有对.java文件进行编译之后生成的.class文件好奇过。 我们都知道Java中的class文件是经过Java编译器对Java类文件进行编译后的产物。我想有不在少数的C程序员在学习Java之后在认知上会粗略的认为C程序在经过编译后产生的.out文件与.class文件在各方面大概相同, ...
分类:
其他好文 时间:
2019-11-13 13:23:46
阅读次数:
83