Java虚拟机(JVM高级特性与最佳实践)
文章平均质量分 81
smile老师
余生,和小孩在一起,快快乐乐地体验科技。
展开
-
第三篇 Java类文件结构
Java类文件结构一、概述Java实现了跨平台,“一次编译,到处运行”。实现平台语言无关性的基础仍然是虚拟机的字节码存储格式。使用java、JRuby等其他语言的编译器都可以将程序编译成class文件,虚拟机并不关心class文件的来源是什么,只要它符合class文件的结构就可以在java虚拟机上运行了。二、class类文件的结构概述: 1、基本内容: Class文件是一组以字原创 2015-12-10 21:31:18 · 470 阅读 · 0 评论 -
第四篇 虚拟机类加载机制
概述: 在前几篇中我们了解了class文件存储格式的具体细节,而class文件(字节流文件)最终都会加载到虚拟机之后才能被运行和使用,而虚拟机是如何加载这些class类的,加载完之后class文件又会发生什么样的变化?这些就是本篇的内容。从编译原理的角度来说就是java原文件编译阶段完成后如何运行。 虚拟机把class文件加载到内存,并对数据进行 校验、转换解析 和原创 2015-12-10 18:25:58 · 355 阅读 · 0 评论 -
第五篇 虚拟机字节码执行引擎
概述: 执行引擎是java虚拟机最核心的组成部分之一,“虚拟机”是一个相对于“物理机”的概念,区别是:物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面的;而虚拟机的执行引擎则是自己实现的,因此可以自行制定指令集与引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。本篇主要从概念的角度来学习虚拟机的方法调用和字节码执行。第一节:运行时的栈帧结构原创 2015-12-14 21:55:06 · 489 阅读 · 0 评论 -
第六篇 Java编译器与C/C++编译器的比较
概述: 在Java虚拟机中,Java的“编译期”是个不确定的过程,它可以指一个前端编译器将.Java文件编译为.class文件;也有可能指将虚拟机的后端运行期将.class字节码文件编译为机器码的过程(JIT编译器);还可能指使用静态提前编译器(AOT编译器)直接把.java文件编译为本地机器代码的过程。 Java编译器原理我们在这儿就不复习了,按照编译原理课程上老原创 2015-12-15 19:49:54 · 2065 阅读 · 0 评论 -
java虚拟机初步了解与想法
有一天,看前辈写的博客,里边一句话令我影响深刻:“如果我不看java虚拟机,我都不知道开发这么多年到底在做啥?” 其实慢慢想来:真的一直在调用java API,却不知道为什么这么调,说白了,对Java还是基本不了解。作为一个本科三年级的学生(2015年,写这篇博客也是2015年),软件开发只是学习了两年;一直觉得自己不够学习Java虚拟机的级别,咦咦,怎么可以这么没有自信。找本好书,好好理解,慢慢原创 2015-11-28 20:01:12 · 474 阅读 · 0 评论 -
第二篇 虚拟机性能监控与故障处理工具(JDK的命令行工具/JDK的可视化工具)
概述:经常使用虚拟机监控和分析的工具可以加快我们分析数据和定位解决问题的速度。但我们应该知道,任何一个工具都是对知识的一层包装。1.1 JDK的命令行工具 1、JDK的bin目: 我们都知道,java和javac命令都是jdk的bin目录下的。当jdk版本更新时,bin目录会增加很多东西。 2、工具:原创 2015-12-07 16:17:26 · 658 阅读 · 0 评论 -
第一篇:自动内存管理机制
一、概述: 对于java程序员来说,在虚拟机的自动内存管理机制下,不再需要为每一个new操作去分配对应的delete/free操作,不再容易出现内存泄漏和内存溢出问题。不过,也正是因为java把内存管理交给了java虚拟机,一旦出现了内存泄漏和内存溢出的问题,问题就不是那么好解决了。二、运行时数据区域: java虚拟机在执行java程序的过程中会把它所管理的原创 2015-12-05 16:21:05 · 546 阅读 · 0 评论