Jvm概述

/ Jvm / 没有评论 / 317浏览

我们知道Java这门语言有一个最大的优势就是它脱离了平台的限制,可以一次编写,到处运行。原因就是有Java虚拟机的存在。也就是Jvm它为我们做了很多我们没有做的事。如果开发人员能够在掌握Java语言的同时并理解和掌握Jvm底层的实现原理,那么对我们处理今后遇到的种种问题就可以提供强有力的理论基础。

Jvm的内容主要包括以下几部分:

我们知道在开发Java程序时,我们几乎不用管理对内存的处理这是因为Java有自动内存管理机制。但这不意味着在编写Java程序时,不会出现内存溢出等问题。如果不了解底层Jvm对内存的处理,在遇到这样问题时,排查问题是很困难的。

我们知道在运行Java程序时,必须要将源码文件(.java)编译成字节码文件也就是.class文件。那Jvm在处理class文件时都要进行哪些必要的操作。每一步操作都要执行哪些逻辑,Jvm又怎么保证运行的class文件是安全(不是病毒等恶意文件)的。

我们知道Java中有自动装箱和拆箱功能、实例变量有自动初始化功能、静态类有可以不创建对象就可直接使用等功能,那上述这些特性Jvm底层是怎么处理的。

我们知道Java是支持多线程开发的语言之一,在开发多线程时为了解决线程安全问题,我们常常会通过添加锁来处理,那Jvm底层是怎么处理锁的,这个锁在底层到底是一个什么东东,并且底层是怎么支持线程的原子性、可见性和有序性的。

由此可见掌握并理解Jvm是多么的重要,要想技术有所提高,就只能不断的学习,在通往技术大牛的道路上,是一本本书铺就而来的。所以接下来本人将详细阅读《深入理解Java虚拟机:JVM高级特性与最佳实践》这本书,并不定期的分享本人对这本书的理解和感悟,如本人有理解或书写错误欢迎指出,谢谢。