[零] Java 语言运行原理 JVM原理浅析 入门了解简介 Java语言组成部分 javap命令使用
The Java Virtual Machine Java虚拟机是Java平台的基石。是java实现硬件和操作系统的独立性(也就是无关性),生成极小体积的编译代码,以及保护用户免受恶意程序攻击的的关键技术组成部分。 Java虚拟机是一种抽象计算机器。像真正的计算机一样,它有一个指令集以及在运行时各种内存区域。 Java虚拟机的第一个原型实现是在Sun Microsystems inc.完成的,它在手持设备上仿真实现了Java虚拟机指令集,该设备类似于现在的个人数字助理(PDA)。Oracle现在已经将许多java虚拟机实现应用于 移动设备 pc 服务器等领域,但是Java虚拟机不局限于任何特定的实现技术、主机硬件或主机操作系统。也不局限于特定的代码执行方式,虽然不强求使用解释器来执行程序,但是也可以通过将它的指令集编译成一个实际的CPU来实现。它也可以在微代码microcode实现,也可以直接在CPU中实现。 Java虚拟机对Java编程语言一无所知,只知道一种特定的二进制格式,class文件格式。一个class文件包含Java虚拟机指令集(或者称之为字节码bytecode)和符号表,以及其他辅助信息。 基于安全方面的考虑,Java虚拟机在class文件中施加了许多强制性的语法和结构化约束,凡是能用class文件正确表达出来的编程语言,都可以放在Java虚拟机里面执行。由于它是一个通用的、机器无关的执行平台,所以其他语言的实现者都可以考虑将Java虚拟机作为那些语言的交付媒介。
|
java的组成部分
- Java语言规范
- Java 应用程序编程接口 API
- Java class文件格式规范
- Java虚拟机
无关与相关的辩证关系

java语言实现与运行原理
使用javap查看编译后的文件






[零] Java 语言运行原理 JVM原理浅析 入门了解简介 Java语言组成部分 javap命令使用的更多相关文章
- Java虚拟机运行时栈帧结构--《深入理解Java虚拟机》学习笔记及个人理解(二)
Java虚拟机运行时栈帧结构(周志明书上P237页) 栈帧是什么? 栈帧是一种数据结构,用于虚拟机进行方法的调用和执行. 栈帧是虚拟机栈的栈元素,也就是入栈和出栈的一个单元. 2018.1.2更新(在 ...
- java使用jconsole查看java程序运行(jmx原理)
在JVM启动参数上加上 java -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.aut ...
- Java 程序运行过程中的内存分析
作为 java 程序员,都应该知道 Java 程序运行在 JVM(Java Virtual Machine,Java 虚拟机)上,可以把 JVM 理解成 Java 程序和操作系统之间的桥梁,JVM 实 ...
- java后端知识点梳理——JVM
可以先看看我的深入理解java虚拟机笔记 深入理解java虚拟机笔记Chapter2 深入理解java虚拟机笔记Chapter3-垃圾收集器 深入理解java虚拟机笔记Chapter3-内存分配策略 ...
- 谈谈java的运行机制
1.高级语言的运行机制 我们编程都是用的高级语言(写汇编和机器语言的大牛们除外),计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算机才能运行高级语言所编写的 ...
- java的运行机制(基础)
1:高级语言的运行机制: 我们编程都是用的高级语言(写汇编和机器语言的大牛们除外),计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算机才能运行高级语言所编写 ...
- java 程序运行过程 简介
这里的Java程序运行过程,是指我们编译好代码之后,在命令行开始执行java xxx命令,到java程序开始执行起来的这一过程,我们称其为运行时. 第一步,操作系统解析我们输入的java xxx命令, ...
- Java内存管理-初始JVM和JVM启动流程(二)
勿在流沙住高台,出来混迟早要还的. 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 上一篇分享了什么是程序,以及Java程序运行的三个阶段.也顺便提到了Java中比较重要 ...
- JVM笔记-Java技术体系与JVM概述
1. 简述 Java 不仅仅是一门编程语言,还是一个由一系列计算机软件和规范组成的技术体系. Java 的广告词为 "一次编写,到处运行",之所以能够做到"跨平台&quo ...
随机推荐
- 几个VB常见又内涵的错误
第一位内涵的就是:没有对象 找到对象,却发现是别人的对象 不能加载也不能卸载...这到底是什么对象 哈哈哈~
- MyBatis(九) 使用association定义单个对象的封装规则
(1)接口中编写方法 public Emp getEmpandDept(); (2)编写Mapper文件 <resultMap type="com.eu.bean.Emp" ...
- windows10计划任务启动bat执行jar打包的jar文件
今天公司要用bat文件执行jar打包的java文件,运行没项目的程序,并且用任务计划开机自启,今天记录下坑 系统:win10 一.编写.bat执行用jar打包的jar文件 @echo off java ...
- diy 滚动条 样式 ---- 核心代码
参考自 : https://blog.csdn.net/qq_38881495/article/details/83689721 .chapter_data position relative wid ...
- VIM批量缩进
方法一 1.按 ctrl + shif + ; 进入底行模式 2.将所要批量缩进的行号写上,按照格式:“行号1,行号2>”输入命令,如要将4至11行批量缩进一个tab值,则命令为“4,11&g ...
- 干货分享:Neutron的PPT,帮助你理解Neutron的各种细节
深入解析Neutron http://files.cnblogs.com/popsuper1982/Neutron.pptx 经典的三节点部署 架构 怎么理解? 更加深入:Tap Interface ...
- High Availability手册(2): 架构
最底层是通信层corosync/openais 负责cluster中node之间的通信 上一层是Resource Allocation Layer,包含下面的组件: CRM Cluster Resou ...
- ThreadLocal及InheritableThreadLocal的原理剖析
我们知道,线程的不安全问题,主要是由于多线程并发读取一个变量而引起的,那么有没有一种办法可以让一个变量是线程独有的呢,这样不就可以解决线程安全问题了么.其实JDK已经为我们提供了ThreadLocal ...
- [Swift]LeetCode10. 正则表达式匹配 | Regular Expression Matching
Given an input string (s) and a pattern (p), implement regular expression matching with support for ...
- tensorflow、cuda、cudnn之间的版本对应关系
原文链接 tensorflow-gpu v1.9.0 | cuda9.0 | cuDNN7.1.4可行 | 备注:7.0.4/ 7.0.5/ 7.1.2不明确 tensorflow-gpu v1. ...