![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
南风~~~
字节跳动校招内推码: 2XT6BMS
展开
-
一文看懂 JVM 内存布局及 GC 原理
“java 的内存布局以及 GC 原理”是 java 开发人员绕不开的话题,也是面试中常见的高频问题之一。java 发展历史上出现过很多垃圾回收器,各有各的适应场景,很多网上的旧文章已经跟不上最新的变化。本文详细介绍了 java 的内存布局以及各种垃圾回收器的原理(包括最新的 ZGC),希望阅读完后,大家对这方面的知识不再陌生,有所收获,同时也欢迎大家留言讨论。一、JVM 运行时内存布局按 java 8 虚拟机规范的原始表达:(jvm)Run-Time Data Areas, 暂时翻译为“jvm 运行转载 2020-06-19 17:25:58 · 559 阅读 · 0 评论 -
JIT即时编程-方法内联
什么是JITJIT的全称是Just in time compilation,中文称之为即时编译,能够加速 Java 程序的执行速度。在JVM刚启动的时候,java都是解释执行的,只有java程序运行足够时间后,jvm会挑选出来热点的方法和循环,将他编译成本地机器码。JIT 的编译过程:JIT是JVM最强大的武器之一,在运行时可以让java从屌丝到高富帅的飞跃,强大到很多人产生了java比C++快的幻觉,在google上搜索为什么java比c++快居然会有200W的结果。通常JIT的利用以下几种手段转载 2020-06-19 16:11:25 · 515 阅读 · 0 评论 -
谈谈Java的类加载过程
前言一个Java文件从编码完成到最终执行,一般主要包括两个过程编译运行编译,即把我们写好的java文件,通过javac命令编译成字节码,也就是我们常说的.class文件。运行,则是把编译生成的.class文件交给Java虚拟机(JVM)执行。而我们所说的类加载过程即是指JVM虚拟机把.class文件中类信息加载进内存,并进行解析生成对应的class对象的过程。举个通俗点的例子来说,JVM在执行某段代码时,遇到了class A, 然而此时内存中并没有class A的相关信息,于是JVM就会到转载 2020-06-19 15:23:49 · 382 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
volatile这个关键字在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分...转载 2020-01-14 19:56:47 · 100 阅读 · 0 评论 -
java堆,新生代,老年代,Eden Space,Survivor Space,Old Gen,Code Cache,Perm Gen
java堆,新生代,老年代,Eden Space,Survivor Space,Old Gen,Code Cache,Perm Gen关于java堆,新生代,老年代,Eden空间,From Survivor空间,To Survivor空间java进程运行过程中创建的对象存放在堆中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分...转载 2020-01-12 18:44:43 · 448 阅读 · 0 评论