欢迎您的访问
专注于分享最有价值的互联网技术干货

精选文章 第21页

深入JVM垃圾回收算法

管理员评论(0)赞(0)

1. 标记——清除算法(Mark-Sweep) 标记——清除算法是第一种使用和比较完善的垃圾回收算法,算法分为两个过程:1、标记正所有需要回收的对象2、标记完成后清除被标记的对象。其标记的过程就是判断对象有效性,执行可达性分析的过程。其执行...

深入JVM关闭与关闭钩子

管理员评论(0)赞(0)

1. 简述JVM关闭 通常而言,对于JVM的关闭我们很少去关注,但是了解JVM的关闭能帮我们在JVM关闭时做一些合理的事情。首先JVM的关闭方式可以分为三种: 正常关闭:当最后一个非守护线程结束或者调用了System.exit或者通过其他特...

深入JVM类加载机制

管理员评论(0)赞(0)

从ClassLoad开始说起 ClassLoader顾名思义就是我们所常见的类加载器,其作用就是将编译后的class文件加载内存当中.在应用启动时,JVM通过ClassLoader加载相关的类到JVM当中.在具体了解ClassLoader之...

深入JVM内存区域

管理员评论(0)赞(1)

JVM内存区域的划分 和C/C++开发不同,在从事JAVA的开发过程中,我们对内存区域的关注相对较轻,但是了解和掌握JAVA的内存结构会帮助我们做出合理的优化决策。首先,先大体的了解一下JAVA虚拟机运行时的内存结构: 从线程的角度来看,总...

深入JVM对象引用

管理员评论(0)赞(0)

在jdk 1.2以前,创建的对象只有处在可触及(reachaable)状态下,才能被程序所以使用,垃圾回收器一旦发现无用对象,便会对其进行回收。但是,在某些情况下,我们希望有些对象不需要立刻回收或者说从全局的角度来说并没有立刻回收的必要性。...

深入JVM字节码执行引擎

管理员评论(0)赞(0)

我们都知道,在当前的Java中(1.0)之后,编译器讲源代码转成字节码,那么字节码如何被执行的呢?这就涉及到了JVM的字节码执行引擎,执行引擎负责具体的代码调用及执行过程。就目前而言,所有的执行引擎的基本一致: 输入:字节码文件 处理:字节...

编译器常用优化方法

管理员评论(0)赞(0)

常量传播 在编译优化时, 能够将计算出结果的变量直接替换为常量。 void main(){ int a=1; printf("%d",a); } 编译器在进行编译的时候,将a直接由1替换。因此优化后的代码为: void main(O{ pr...

不一样的视角:从JVM内存模型谈线程安全

管理员评论(0)赞(0)

作为一个三个多月没有去工作的独立开发者而言,今天去小米面试了一把.怎么说呢,无论你水平如何,请确保在面试之前要做准备,就像其中一位面试官说的一样,我知道你水平不错,但是无论如何也是要准备下的,不然你怎么会连这个方法也忘记了? 此刻,我突然觉...

谈乱序执行和内存屏障

管理员评论(0)赞(0)

10多年前的程序员对处理器乱序执行和内存屏障应该是很熟悉的,但随着计算机技术突飞猛进的发展,我们离底层原理越来越远,这并不是一件坏事,但在有些情况下了解一些底层原理有助于我们更好的工作,比如现代高级语言多提供了多线程并发技术,如果不深入下来...

深入浅出Java垃圾回收机制

管理员评论(0)赞(0)

JVM学习笔记 JVM内存管理和JVM垃圾回收 JVM内存组成结构 JVM内存结构由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示: 1)堆 所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分...