网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
深入理解Java虚拟机——关于虚拟机的简单介绍
1.前言
Java虚拟机,又称JVM。我们平常写java程序的时候几乎是感觉不到JVM的存在的,我们只需要根据Java规范去编写类,然后就可以运行程序了,只有程序出现bug了,我们才有可能在控制台上看到一些JVM报错的信息,比如内存溢出异常等问题,通过对Java虚拟机的学习,我相信我们都会明白产生这些问题的原因以及解决的办法。
2.JVM介绍
(1)JDK,JRE,JVM三者的联系
- JVM——java虚拟机,程序运行的地方,保证java语言跨平台;JVM 有自己完善的硬件架构,如处理器、堆栈等,还具有相应的指令系统,其本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。
- JRE——java运行环境,为 Java 的运行提供了所需环境,JRE=JVM+核心类库;
- JDK——Java 开发工具包,提供了 Java 的开发环境和运行环境, JDK=JRE+java开发工具(编译器 Javac);
- IDE——java集成开发环境,IDE=JDK+图形界面;
JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。
(2)JVM赋给Java的特性(Java语言的跨平台)
- Java程序能一次编译,到处运行,在不同的平台运行不需要重新编译,是因为JVM 屏蔽了字节码和底层操作系统之间的差异,对外提供一个一致的运行环境。JVM将java字节码解释为具体平台的具体指令,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改的运行。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**