美文网首页
虚拟机概览

虚拟机概览

作者: 杨殿生 | 来源:发表于2019-05-30 11:39 被阅读0次

java是什么?

一种编程跨平台面向对象的编程语言

如何实现跨平台:与C/C++不同它可以移至到任何机器上执行,C/C++在不同机器上运行需要重新编译连接,并且基本类型所占字节数在各个机器都不一样,导致程序很难移植。
java基于class字节码,运行在一个套模拟机器的环境中运行,这个虚拟机是java能跨平台的核心,对下层屏蔽了机器间的差异,对上层实现了统一的规则(比如基本数据类型在机器中所占字节数)。

如何实现面向对象:只需要回答虚拟机如何实现,封装,继承,多态即可。具体内容后序会有详解

java虚拟机是什么?

虚拟机是给java运行提供的一个模拟机器的环境,它执行class字节码,甚至语言都不要是java语言,只需要符合class字节码规范就可以执行代码

为什么要了解java虚拟机?

了解java虚拟机很有助于我们理解java这门语言。java语言的实现都是基于虚拟机的,所以理解了虚拟机运行原理对于解bug是很有帮助的,对于基于java的程序优化就更要学习虚拟机了,不了解虚拟机谈优化都是耍流氓

了解java虚拟机虚拟机又能做什么?

举一个面试的小例子

        String str1 = new String("abc");
        String str2 = new String("abc");
        String str3 = "abc";
        System.out.println(str1 == str2);
        System.out.println(str1 == str2.intern());
        System.out.println(str1.intern() == str2.intern());
        System.out.println(str3 == str2.intern());

输出结果


image.png

那如何解释这段输出呢,如果不了解虚拟机是一定回答不出来的,下面我们分析一下


image.png
知其然知其所以然

该如何学java虚拟机?

看书,看规范,多思考,多和同事交流

相关文章

  • 虚拟机概览

    java是什么? 一种编程跨平台面向对象的编程语言 如何实现跨平台:与C/C++不同它可以移至到任何机器上执行,C...

  • JVM深入理解

    Java虚拟机概览https://www.cnblogs.com/2014asm/p/7999049.htmlht...

  • JVM内存模型

    github上的地址:DevelopBlog 概览 java虚拟机(以下简称JVM)多种多样,其中都必须遵循《ja...

  • Datapane 006 - 报告 - 嵌入报告

    概览 报告发布到 Datapane 虚拟机后,可以嵌入到其它平台。 Datapane 报告可以嵌入到任何支持 if...

  • JVM内存模型

    概览 Java程序内存的分配是在JVM虚拟机内存分配机制下完成,Java内存模型(Java Memory Mode...

  • 3.5 垃圾收集器

    参考 《深入理解Java虚拟机 JVM高级特性与最佳实践》 3.5节 1.垃圾收集器概览 2.Serial收集器 ...

  • java工具系列-jstat

    概览 JDK本身提供了很多工具,用于监控JVM和java程序的运行状况;Jstat可以查看虚拟机的GC,类加载等信...

  • 性能测试概览目录

    性能测试概览Ⅰ 性能测试概览Ⅱ 性能测试概览Ⅲ 性能测试概览Ⅳ

  • JVM运行时数据区

    总体概览 Java虚拟机在运行java程序的时候会把它所管理的内存分为若干个不同的数据区域。这些区域有各自的用途,...

  • 虚拟机类加载机制

    [toc] 类加载过程概览 类从被加载到虚拟机内存中开始,到卸载出内存为止,他的整个生命周期包括以下7个阶段: 加...

网友评论

      本文标题:虚拟机概览

      本文链接:https://www.haomeiwen.com/subject/rwjmtctx.html