
java虚拟机
文章平均质量分 79
rowandjj
阿里巴巴资深移动开发工程师
展开
-
class文件结构浅析(2)
上一篇讲的都是理论,下面我们亲自实践一下。首先编写一个简单的java类:public class Test{ private int m; private String str; public int func(int m,String str) { str += "OK"; m = 10;原创 2014-05-02 13:06:48 · 1860 阅读 · 0 评论 -
GC入门指南(二)------GC工作原理
本系列博客旨在帮助大家理解java垃圾收集器及其工作原理,这是系列的第二篇。java垃圾回收其实是由一个可以进行自动内存管理的进程完成的,这使得程序员在写代码的时候不必过多考虑内存释放与回收的问题。垃圾收集器如何初始化:作为一个自动化的进程,程序员并不需要显式地在代码中初始化垃圾收集进程。所谓的System.gc()和Runtime.翻译 2014-10-28 22:41:50 · 1654 阅读 · 0 评论 -
GC入门指南(一)------基础
java中,对象内存空间的分配与回收都是通过JVM的gc进程自动进行的。java程序员并不需要像c程序员那样手动去管理内存空间。这也是java受欢迎的众多原因之一。接下来我将通过四篇文章介绍GC。1.GC简要介绍;2.GC工作原理;3.GC收集器种类;4.GC的监控与分析.这是本系列的第一篇,我将介绍一些基础知识例如JDK,JRE,JVM翻译 2014-10-28 22:37:12 · 2135 阅读 · 0 评论 -
全面解析Java的垃圾回收机制
写的不错,特转来java的堆是运行时数据区的一个组成部分,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new、newarray、anewarray和multianewarray等指令建立,但是它们不需要程序代码来显式地释放。一般来说,堆的是由垃圾回收来负责的,尽管JVM规范并不要求特殊的垃圾回收技术,甚至根本就不需要转载 2014-08-02 20:56:56 · 1496 阅读 · 0 评论 -
新生代垃圾回收
之前的两篇文章(java运行时数据区浅析、java垃圾收集器(GC)浅析)介绍了java运行时数据区以及GC垃圾回收算法的相关知识,大家可以先去看看这两篇文章。本篇文章将重点关注新生代的垃圾回收。大部分JVM都会采用所谓的分代收集方式去回收垃圾,什么是分代收集呢?根据对象的存活周期的不同将内存划分为好几块。一般是把java堆分为新生代和老年代,这样就可以根据各个年代的特点采原创 2014-06-16 09:24:27 · 4364 阅读 · 0 评论 -
java语言安全机制浅析
java通过所谓的沙箱安全模型保证了其安全性,下面我们就来看看java提供的安全沙箱机制。组成沙箱的基本组件如下:1.类装载器结构;2.class文件检验器;3.内置于java虚拟机(及语言)的安全特性;4.安全管理器及java API。一.类装载器体系结构 1.防止恶意代码去干涉善意的代码。 这是通过原创 2014-05-20 11:55:58 · 7034 阅读 · 0 评论 -
Class类文件结构浅析
前言 class文件时java虚拟机执行引擎的数据入口,也是java技术体系的基础支柱之一,了解class文件的结构对后面进一步了解虚拟机执行引擎有很重要的意义。概要: class文件是一组以八位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在class文件中,中间没有添加任何分隔符,这使得整个class文件中存储的内容几乎全部都是程序运行的必要数原创 2014-04-28 22:32:30 · 2157 阅读 · 0 评论 -
java虚拟机字节码执行引擎浅析
执行引擎是java虚拟机的核心组成部分之一。 我们知道,javac编译器完成了程序代码经过词法分析、语法分析到抽象语法树、再遍历语法树生成线性的字节码指令流的过程。而字节码文件再经过加载、验证、准备、解析、初始化等阶段才能被使用。字节码执行引擎正是执行了这样的过程:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。运行时栈帧结构:栈帧(原创 2014-04-11 19:30:46 · 3092 阅读 · 0 评论 -
java内存区域浅析
JVM在执行java程序时会将它所管理的内存划分成若干个不同的数据区域。如图所示:其中方法区和堆是所有线程共享的数据区,其他区域则是线程隔离的数据区。这些区域的功能各有不同:程序计数器:可以理解为当前线程所执行的字节码的行号知识器。字节码解释器工作时会通过改变这个计数器的值来选取下一条需要执行的字节码指令。分支,循环,判断,异常处理,线程回复等功能都依赖这个计数原创 2014-03-13 12:01:56 · 2390 阅读 · 0 评论 -
java垃圾收集器(GC)浅析
了解java的人必然对GC不陌生。GC即垃圾回收器,我们都知道,java语言有自动内存管理的功能,程序员不必手动释放内存。本文将简单介绍垃圾回收器。GC的任务:哪些内存需要回收?什么时候回收?如何回收?GC回收哪些内存?之前我们介绍过了java运行时的数据区的各个部分,包括程序计数器,java虚拟机栈,本地方法栈,堆,方法区。其中程序计数器,虚拟机栈,本地方原创 2014-03-14 22:39:14 · 3118 阅读 · 0 评论 -
深入理解JVM内幕
原文:http://www.cubrid.org/blog/dev-platform/understanding-jvm-internals/在这篇文件里,我会阐述JVM是如何运行的,包括它的结构,它如何去执行字节码,以及按照怎样的顺序去执行,同时我还会给出一些常见错误的示例以及对应的解决办法。虚拟机(Virtual Machine)JRE是由Java API和JVM组成的翻译 2014-04-21 12:56:58 · 3047 阅读 · 0 评论 -
Class文件的加载过程
在class文件中描述的各种信息,最终都需要被加载到虚拟机中之后,才能被运行和使用。虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换,解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。类加载的时机: 类从被加载到虚拟机内存开始,到卸载出内存为止,其生命周期包括:加载(loading),验证(veri原创 2014-03-31 12:29:56 · 2508 阅读 · 0 评论 -
java编译期优化与运行期优化技术浅析
java语言的“编译期”是一段不确定的过程,因为它可能指的是前端编译器把java文件转变成class字节码文件的过程,也可能指的是虚拟机后端运行期间编译器(JIT)把字节码转变成机器码的过程。下面讨论的编译期优化指的是javac编译器将java文件转化为字节码的过程,而运行期间优化指的是JIT编译器所做的优化。编译期优化虚拟机设计团队把对性能的优化集中到了后端的即时编译器(原创 2014-04-18 13:22:23 · 4038 阅读 · 0 评论 -
GC入门指南(三)----垃圾收集器类型
这篇文章我们来学习下所有可用的垃圾收集器类型。java目前有四种类型的垃圾收集器:1.串行垃圾收集器(Serial Garbage Collector);2.并行垃圾收集器(Parallel Garbage Collector);3.CMS垃圾收集器(CMS Garbage Collector);4.G1垃圾收集器(G1 Garbage Collector);翻译 2014-10-28 22:46:26 · 2183 阅读 · 0 评论