![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 82
一步步深入理解Java
小土郎
江科大21年硕士应届生
展开
-
jvm垃圾收集器和三色标记算法(大厂面试必备)
目前的垃圾收集算法都是基于垃圾分代收集理论,包括:标记-复制、标记清除、标记-整理算法。原创 2022-06-01 11:16:24 · 210 阅读 · 0 评论 -
JVM内存模型以及参数设置(二)
前言本文将从创建对象、对象内存分配、对象内存回收三个方面,详细介绍JVM的参数设置。一、创建对象以user.java这个类为例子,当new user()一个user对象时,JVM经历的流程为:1、类加载检查:JVM会检查user类是否已经被加载(具体参考之前写的从源码带你看jvm类加载机制)。2、分配内存:3:初始化:4、设置对象头:5、执行方法:二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport mat原创 2022-05-29 11:35:44 · 113 阅读 · 0 评论 -
JVM内存模型以及参数设置(一)
1、jvm内存模型JVM运行时内存主要有五个部分,分别是堆、栈(线程)、方法区、本地方法栈以及程序计数器。当程序运行一个线程时,其中的栈、本地方法栈和程序计数器是线程私有。换句话说,就是每一个线程都有一个自己的栈、本地方法栈和程序计数器,堆和方法区则是线程共享。下面以当程序运行一个user类或math类为例,当调用程序调用main方法时,生成一个线程1。jvm给这个线程分配了栈、本地方法栈和程序计数器。1)本地方法栈:这里主要存放的是一些native方法。2)栈:线程1调用的到的每个方法都会在原创 2022-05-26 22:55:01 · 147 阅读 · 0 评论 -
从源码带你看jvm类加载机制
1、loadClass类加载的步骤1)加载:顾名思义就是从硬盘上读取要加载的类,然后生成一个代表这个类的java.lang.Clas对象2)验证:确保字节码文件正确性。3)准备:分配内存4)解析:静态链接和动态链接5)初始化注意:类的加载是懒加载,不会一次性将所有的类加载完毕。先加载类的静态代码块才会初始化构造函数,这从上面的步骤也可以看出。2、类加载器类的加载是通过类加载器实现的,主要有以下几种:1)引导类加载器:加载JRE的lib目录下的核心类库,像通常的String类,Objec原创 2022-05-26 10:12:41 · 131 阅读 · 0 评论