虚拟机概览

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虚拟机?

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容