尚硅谷宋红康JVM资料笔记1 --- JVM与Java体系结构

以下内容为根据宋红康JVM视频整理出来的笔记,配合视频使用效果更佳哦 ~ (对应视频1-4)


1.概述

JVM所处位置
在这里插入图片描述
计算机系统体系对我们来说越来越远,在不了解底层实现方式的前提下,通过高级语言很容易编写程序代码,但事实上计算机并不认识高级语言。

jvm为我们提供了很多配置参数,用于满足在不同场景下为程序性能调优的一个需求。
JIT及时编译器,JIT和编译器并行的一种执行方式。
当你把技术提高了, 你会发现钱也好,社会地位也好,自然而然的就提升上来了。

在这里插入图片描述
垃圾收集机制为我们打理了很多繁琐的工作,大大提高了开发效率,但是,垃圾收集也不是万能的,懂得JVM内部的内存结构,工作机制,是设计高扩展性应用和诊断运行时问题的基础,也是java工程师进阶的必备能力。

在接下来的学习中,我们可以试着思考如下问题:
栈管运行,堆管存储。
java堆一定是多个线程共享么?
java中的对象一定要创建在堆上么?
方法区,永久带,元空间到底是什么关系呢?
java为什么叫半解释型,半编译型语言呢?

问:具体有很多虚拟机,我们应该学什么呢?
答:我们应该学官方正统的,oracle发布的hotspot虚拟机。


2.java以及jvm简介

Java是一种跨平台的语言,具体体现如下:
在这里插入图片描述
如果我们把java语言叫做跨平台的语言的话,那么jvm就是跨语言的平台。
JVM是一种跨语言的平台:
在这里插入图片描述
随着Java7的正式发布,Java虚拟机的设计者们基本实现在Java虚拟机平台上运行非Java语言编写的程序。

Java虚拟机根本不关心运行在其内部的程序是使用何种语言编写的,它只关心“字节码文件。也就是说java虚拟机拥有语言无关性,并不会单纯的与java语言终身绑定,只要其他编译语言的编译结果满足并包含Java虚拟机的内部指令集,符号表以及其他的辅助信息,它就是一个有效的字节码问题,就能够被虚拟机识别并装载运行。

因此可见,java不是最强大的语言,但jvm是最强大的虚拟机。

jvm虚拟机是一个比java本身更成功更优秀的产品。
任何可以被表达为一个有效的字节码文件的编程语言,都可以被java虚拟机所承载。
任何一个编程语言,只要是能按照class文件的规范去写的话,java虚拟机都可以去解释运行。

字节码:
我们平时所说的java字节码,指的是用java语言编译成的字节码。
准确的说,任何能在jvm平台上执行的字节码格式都是一样的。所以应该统称为,jvm字节码。
不同的编译器,可以编译出相同的字节码文件,字节码文件也可以在不同的jvm上运行。

java虚拟机与java语言并没有必然的联系,它只与特定的二进制文件格式—class文件格式关联,class文件包含了java虚拟机指令集(或者称为字节码,Bytecodes)和符号表,还有一些其他辅助信息。

多语言混合编程:
Java平台上的多语言混合编程正成为主流,通过特定领域的语言去解决特定领域的问题是当前软件开发应对日趋复杂的项目需求的一个方向。
试想一下,在一个项目中,并行处理,展示层,中间层,每个应用层都将使用不同的编程语言来完成,而且,接口对每一层的开发者都是透明的,各种语音之间的交互不存在任何困难,就像使用自己语言的原生api一样方便,因为它们最终都运行在一个虚拟机之上。
因此我们看到一个趋势,越来越多的编程语言,都选择jvm作为它的一个解释运行的平台。


3.Java发展的重大事件

在这里插入图片描述
在这里插入图片描述

open JDK 和 Oracle JDK
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值