`

10、jvm-简介

    博客分类:
  • java
 
阅读更多
java广泛用于嵌入式、移动、j2ee、大型机等各种场合;java语言的主要优点:摆脱硬件束缚;提供相对安全的内存管理和访问机制,避免大部分内存泄露和指针越界问题;常用代码索引使得程序运行越久效率越高;完善接口实现。

Groovy [英]'ɡru:vɪ[美]ˈɡruvi   
Groovy是一种基于JVM(Java虚拟机)的开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库,使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。
还有Clojure、JRuby等基于JVM的开发语言,称为广义的java语言,因为他们都是基于jvm实现的。

1.2、JDK、JRE、JVM的联系与区别:
        JVM 是 Java 平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行时操作不同的内存区域。 JVM 通过抽象操作系统和 CPU 结构,提供了一种与平台无关的代码执行方法,与主机硬件、主机操作系统无关。但是在一些小的方面, JVM 的实现也是互不相同的,比如垃圾回收算法,线程调度算法(可能不同 OS 有不同的实现)。
        JVM 的主要工作是解释自己的指令集(即字节码)到 CPU 的指令集或 OS 的系统调用,保护用户免被恶意程序骚扰。JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的字节码文件;类文件的 组成包括 JVM 指令集,符号表以及一些补助信息。
        JVM是解释.class文件向CPU或OS发出指令的机器。

        JRE是指java运行的标准环境。光有JVM还不能成class的 执行,因为在解释class的时候JVM需要调用    解释所需要的类库lib。 在JDK的安装目录中可以找到jre目录,里面有两个文件夹bin和lib,在 这里可以认为bin里的就是jvm,lib中则是jvm工 作所需要的类库,而jvm和 lib和起来就称为jre。(jre里有运行.class的java.exe、却没有javac.exe,说明JRE不能编译java文件)
PS:在运行eclipse时,任务管理器会有一个或两个javaw.exe进程,这个进程是做什么的呢?
      运行java命令时,会出现并保持一个DOS窗口,而运行javaw,不出现DOS窗口,可以将java.exe理解为jvm的启动程序。

JDK是java开发的最小环境。
       在JDK的安装目录下面有 一个src类库源码压缩包和几个声明文件、以及这文件夹:bin、include、lib、 jre;
       bin:最主要的是编译器(javac.exe)
       include:java和JVM交互用的头文件
       lib:类库
       jre:java运行环境
(注意:jdk里的bin、lib文件夹和jre里的bin、lib是 不同的)总的来说JDK是用于java程序开发,而jre 只能运行.class文件而没有编译的功能。在安装java时,要安装一个jdk和一个jre目录。
       eclipse、idea等 其他IDE都有自己的编译器而不是用JDK bin目录中自带的javac.exe,所以在安装时会发现只要求jre路径。

三者关系图:
JDK
     ++
      |-----jre
              ++
               |-------jvm(bin)
JRE自带的基础类库主要是JRE\lib\rt.jar这个文件,包括了J2SE标准版的所有类库。 

java技术平台:JAVA CRAD(如手机卡) 、 JAVA ME(手机、Pad) 、 JAVA  SE(桌面级)、JAVA EE(企业级);
java.xxx.xxx的包.类为j2se的api,但也包含了少量的javax.xxx.xxx;
javax.xxx.xxx的包.类为j2ee的api;

虚拟机的概念
所谓虚拟机,就是指一台虚拟的计算机。它的虚拟的含义,是相对于我们日常使用的真实计算机来讲的。真实的计算机我们摸得到,看得见,CPU、硬盘、内存等等,这些设备我们都可以实实在在地接触到。

而虚拟机,则是一种被虚拟化的技术,虚拟机中的CPU、内存等硬件设备我们都看不见,但是我们可以使用它们,可以使用虚拟机中的硬盘来存储数据,使用虚拟机中的网卡来连接网络,其实这些功能都是由程序模拟出来的,但是我们在使用过程中,并没有感觉到和真实的计算机有什么不同,这就是虚拟机技术。

而虚拟机技术最直接的应用,就是虚拟机软件。其最大的作用就是在一台普通计算机上模拟出另外一台乃至数台能够单独运行的操作系统,甚至还可以将这几个操作系统连成一个虚拟的局域网络。

openjdk与jdk的联系与区别
openjdk是jdk的开放原始码版本,以GPL协议的形式放出,而JDK则采用JRL协议放出。
在JDK7开发过程中,openjdk已经成为jdk7的主干开发,sun jdk7是在openjdk7的基础上发布的,大部分原始码都相同,只有少部分原始码被替换掉。

分享到:
评论

相关推荐

    深入理解JVM内存结构及运行原理全套视频加资料.txt

    2019最新深入理解JVM内存结构及运行原理(JVM调优)高级核心课程视频教程下载。JVM是Java知识体系中的重要部分,对JVM底层的了解是每一位Java程序员深入Java技术领域的重要因素。本课程试图通过简单易懂的方式,系统...

    深入理解Java虚拟机视频教程(jvm性能调优+内存模型+虚拟机原理)视频教程

    第5节jvm再体验-jvm可视化监控工具 [免费观看] 00:21:17分钟 | 第6节杂谈 [免费观看] 00:12:37分钟 | 第7节Java的发展历史00:27:24分钟 | 第8节Java的发展历史续00:02:27分钟 | 第9节Java技术体系00:08:46分钟 |...

    实战Java虚拟机——JVM故障诊断与性能优化 pdf

    《实战Java虚拟机——JVM故障诊断与性能优化》内容简介:随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为一个充满活力的生态圈。本书将通过200余示例详细介绍Java虚拟机中的...

    移动安全系列教学下载共43份.zip

    Android安全Hook--35--Hook技术简介.pdf Android安全Hook--36--Xposed源码分析(一).pdf Android安全Hook--37--Xposed源码分析(二).pdf Android安全Hook--38--Xposed源码分析(三).pdf Android安全Hook--39--...

    Color Hound:猎犬-纯Java颜色选择器-开源

    ColorHound纯Java颜色选择器------------------------------------简介:ColorHound是纯Java颜色使用Java-Swing开发的选择器应用程序。 由于编程语言是Java,因此该工具也是平台无关的。 它可以在安装了JVM的任何...

    深入Java虚拟机(原书第2版).pdf【附光盘内容】

    内容简介:  本书作者曾因本书荣获专业技术杂志《java report》评选的优秀作者奖。细心的读者可以从网上找到许多对本书第1版的赞誉。  作者以易于理解的方式深入揭示了java虚拟机的内部工作原理,深入理解这些内容...

    良好的Java API 中文翻译之JDK-API-1.6.0-CN

    具体可以参阅博主的系列Java文章:【2023,学点儿新Java-10】Java17 API 文档简介&获取 | 什么是API | 详解Java核心机制——JVM | Java优缺点总结 | 附:GPT3.5-turbo问答测试。

    第1章-Java语言概述-Java面向对象程序设计教程-微课视频版-程杰-清华大学出版社.pptx

    1.1 Java的诞生与发展 1.2 Java的特点 1.3 三种平台简介 1.4 Java JDK的安装和配置 1.5 Java 运行系统与开发流程 1.6 常用开发工具简介 1.7 注释 第1章 Java语言概述 第1章-Java语言概述-Java面向对象程序设计教程-...

    2017最新大数据架构师精英课程

    10_多线程-同步代码块-同步方法 11_多线程-生产消费问题 12_多线程-死锁问题 13_字符集问题' X4 e; v9 q' U2 W% f" l7 f$ F 14_String-StringBuffer-StringBuilder 15_集合-list-arrayList-linkedlist 16_集合-...

    《架构之美》--王海鹏,蔡黄辉

    2009.6 保护模式的危险 2039.7 从事一项毫无成功希望的斗争 2069.8 劫持JVM 2109.9 终极灵活性 2209.10 终极安全性 2229.11 第二次做会更好 223第10章 元循环虚拟机的力量:Jikes RVM 22510.1 背景 22510.2...

    java面试常见基础(深层次,高级研发)

    CyclicBarrier简介 51 23.2. 2. CyclicBarrier数据结构 52 23.3. 3. CyclicBarrier源码分析(基于JDK1.7.0_40) 52 23.3.1. 3.1 构造函数 52 23.3.2. 3.2 等待函数 53 23.4. 4. CyclicBarrier的使用示例 57 23.4.1. ...

    SpringBoot新手学习手册

    1.1、SpringBoot简介 1 1.2、系统要求: 1 1.3、SpringBoot和SpringMVC区别 1 1.4、SpringBoot和SpringCloud区别 2 1.5常见错误 2 二、快速入门 2 2.1、创建一个Maven工程 2 2.2、pom文件引入依赖 3 2.3、...

    java餐厅系统源码-jcrete2017:在JCrete2017非会议上收集的材料

    简介 佐巴斯博士的 OAC 介绍 第一天 (17.07.2017) 会议 # 时间/房间 主厅 打印机房 图书馆 烟囱 可怕的房间 隐藏房间 上网室 餐厅 在藤蔓下 1 10:15 - 11:15 React式编程 开发运营脚本 机器学习 詹金斯管道 Java EE...

    Jive资料集

    系统设计 1 jive设计思路 2 jive的工作内幕 3 Jive源代码研究 4 Jive中的设计模式 5 jive学习...2 RetroGuard的使用方法 <br> JVM 1 JVM之class文件结构 2 JVM 內的資料處理

    Java虚拟机

    这本书的内容是帮你全面了解java虚拟机,本书第1版两年内印刷近10次,98%以上的评论全部为5星级的好评,是整个Java图书领域公认的经典著作和超级畅销书,繁体版在台湾也十分受欢迎。第2版在第1版的基础上做了很大的...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

    chapter10 输入输出 299 10.1 inputstream与outputstream 300 10.1.1 串流设计的概念 300 10.1.2 串流继承架构 303 10.1.3 串流处理装饰器 306 10.2 字符处理类 311 10.2.1 reader与writer继承架构 311 ...

    jive.chm

    混淆 1 Sun公司的混淆器JADE 2 RetroGuard的使用方法 <br> JVM 1 JVM之class文件结构 2 JVM 內的資料處理 <br> MVC Framework 1 应用Struts的网站建设 <br> ...

    架构之美(中文清晰完整版)

    第10章 元循环虚拟机的力量:Jikes RVM 225 10.1 背景 225 10.2 与运行时环境相关的传言 227 10.3 Jikes RVM简史 229 10.4 一个自足执行的运行时自举 230 10.5 运行时组件 234 10.6 经验教训 246 参考文献 ...

Global site tag (gtag.js) - Google Analytics