JVM内核
文章平均质量分 88
大数据面试宝典
这个作者很懒,什么都没留下…
展开
-
【无为】聊聊java中JVM的方法区
栈、堆、方法区的关系方法区在哪里?https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.5.4《Java虚拟机规范》中明确说明: “尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。” 但对于HotSpotJVM而言,方法区还有一个别名叫做Non-Heap(非堆),目的就是要和堆分开。所以,方法区看作是一块独立于Java 堆的内存空间。方法区的理解从原创 2021-12-17 11:25:42 · 399 阅读 · 2 评论 -
【无为原创】万字图文详解java的堆内存及OOM的解决方案,看完还不懂,从此绝笔不写了
此文阅读大约10分钟,目录如下: 什么是JVM的堆 是不是所有的Java对象都放在堆上? 线程和堆的关系堆的内部结构 面试题 新生代与老年代如何设置堆的大小? 新生代与老年代的比例 设置Eden、幸存者的比例 常用参数对象分配 金句: 分配过程 内存分配策略(或对象提升(promotion)规则): 对象分配原则Minor GC 、Major GC、Full GC Minor GC触发机制原创 2021-12-15 16:03:29 · 400 阅读 · 0 评论 -
一文带你快速了解大厂必问的JVM双亲委派机制
点击上方蓝字关注我们这个真的是大厂必备的,委派机制,我们来看一下都有哪些公司会问到:双亲委派好处有哪些?(亚信)类加载器双亲委派模型机制?(苏宁)双亲委派机制 (蚂蚁金服)双亲委派机制及使用原因 (蚂蚁金服)类加载器的双亲委派模型是什么?(蚂蚁金服)双亲委派模型介绍一下 (小米)讲一下双亲委派模型,以及其优点 (滴滴)类加载器的双亲委派模型是什么?(京东)双亲委派机制的定义 类加载器用来把类加载到Java虚拟机中。从JDK1.2版本开始,原创 2021-12-05 23:39:05 · 340 阅读 · 0 评论 -
4000字长文深度讲解JVM自定义类加载器
本文目录:1、面试题2、为什么使用自定义类加载器3、应用场景4、实现方式5、代码demo 先上一道面试题1、手写一个类加载器Demo (百度)为什么要自定义类加载器? 隔离加载类 在某些框架内进行中间件与应用的模块隔离,把类加载到不同的环境。比如:阿里内某容器框架通过自定义类加载器确保应用中依赖的jar包不会影响...原创 2021-12-03 14:10:03 · 227 阅读 · 0 评论 -
3分钟看懂JVM类加载器Classloader源码深度剖析
在看这篇文章之前,先找到Classloader.class这个类,然后对照下文:ClassLoader与现有类加载器的关系: ClassLoader是一个抽象类。如果我们给定了一个类的二进制名称,类加载器应尝试去定位或生成构成定义类的数据。一种典型的策略是将给定的二进制名称转换为文件名,然后去文件系统中读取这个文件名所对应的class文件。ClassLoader的主要方法抽象类ClassLoader的主要方法:(内部没有抽象方法) public fi...原创 2021-12-02 15:52:56 · 489 阅读 · 0 评论 -
图文详解JVM自带的各种类加载器
站在程序的角度看,引导类加载器与另外两种类加载器(系统类加载器和扩展类加载器)并不是同一个层次意义上的加载器,引导类加载器是使用C++语言编写而成的,而另外两种类加载器则是使用Java语言编写而成的。由于引导类加载器压根儿就不是一个Java类,因此在Java程序中只能打印出空值。原创 2021-11-30 10:30:19 · 383 阅读 · 0 评论 -
图文详解JVM类加载的第4、5个步骤,类的使用与卸载
往期推荐2000字带你学习JVM类加载的第一个步骤(Loading字节码)4分钟带你看懂JVM类加载的第二个过程之Linking(链接阶段)2200字带你学习JVM类加载的第三个阶段(初始化)类的使用(Using)任何一个类型在使用之前都必须经历过完整的加载、链接和初始化3个类加载步骤。一旦一个类型成功经历过这3个步骤之后,便“万事俱备,只欠东风”,就等着开发者使用了。开发人员可以在程序中访问和调用它的静态类成员信息(比如:静态字段、静态方法),或者使用n...原创 2021-11-29 15:51:09 · 320 阅读 · 0 评论 -
2200字带你学习JVM类加载的第三个阶段(初始化)
往期推荐2000字带你学习JVM类加载的第一个步骤(Loading字节码)4分钟带你看懂JVM类加载的第二个过程之Linking(链接阶段)子类加载前先加载父类?在加载一个类之前,虚拟机总是会试图加载该类的父类,因此父类的<clinit>总是在子类<clinit>之前被调用。也就是说,父类的static块优先级高于子类。口诀:由父及子,静态先行。哪些类不会生成<clinit>方法?Java编译器并不会为所有的类都产生&...原创 2021-11-29 15:48:35 · 1408 阅读 · 0 评论 -
4分钟带你看懂JVM类加载的第二个过程之Linking(链接阶段)
所谓解析就是将符号引用转为直接引用,也就是得到类、字段、方法在内存中的指针或者偏移量。因此,可以说,如果直接引用存在,那么可以肯定系统中存在该类、方法或者字段。但只存在符号引用,不能确定系统中一定存在该结构。原创 2021-11-29 15:45:54 · 2629 阅读 · 0 评论 -
2000字带你学习JVM类加载的第一个步骤(Loading字节码)
先来几道面试题,试试会不会·简述Java类加载机制?(百度)·JVM类加载机制(滴滴)·JVM中类加载机制,类加载过程,什么是双亲委派模型?(腾讯)·JVM的类加载机制是什么?(京东)ᡧ01-类的加载过程(生命周期)᪺01-说说类加载分几步?按照Java虚拟机规范,从class文件到加载到内存中的类,到类卸载出内存为止,它的整个生命周期包括如下7个阶段:其中:①第一过程的加载(loading)也称为装载②验证、准备、解析3个部...原创 2021-11-24 23:45:38 · 409 阅读 · 0 评论 -
一文带你读懂Java语言和JVM的发展历程
大家好,我是笔者无为,今天给大家分享一下Java和JVM的发展历程,如果你觉得我写的不错的话,请在文末给我点个大大的赞,谢谢~本文约2000字,阅读大约需要8分钟文章目录如何理解Java是跨平台的语言如何理解JVM是跨语言的平台Java的发展历程常见的JVMJVM的生命周期?重点说下HotSpot?如何理解Java是跨平台的语言“write once, run anywhere.” 一次写入,导出运行!当Java源代码成功编译成字节码后,如果想在不同的平台上面运行,则无须再次编译这个优势.原创 2021-11-11 20:09:14 · 1867 阅读 · 0 评论