`

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的基础上发布的,大部分原始码都相同,只有少部分原始码被替换掉。

分享到:
评论

相关推荐

    Resin服务器配置指南 详解.docx

    #### 一、Resin 服务器简介与应用场景 Resin 是一款高性能且功能丰富的 Java 应用服务器和 Web 服务器,由 Caucho Technology 开发。它支持 Java Servlets、JavaServer Pages (JSP) 以及 HTML、XML 等多种格式,并...

    深入理解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虚拟机中的...

    apache-tomcat-9.0.0.M10-windows-x86

    "M10"代表 Milestone 10,意味着这是一个开发阶段的里程碑版本,可能包含了新功能的测试和bug修复,但可能尚未达到正式稳定版的成熟度。 **3. Windows-x86** 这个版本是为32位Windows系统设计的。虽然现代计算机...

    openjdk-8u292-b10

    1. **OpenJDK简介**: OpenJDK(Open Java Development Kit)是Java SE(Standard Edition)平台的开源实现。它由甲骨文公司(Oracle)领导的全球社区开发人员共同维护,遵循GNU General Public License (GPL) v2许可...

    JVM内存—jstat分析

    #### 二、jstat简介 `jstat`是一种用于监控和故障排查基于HotSpot的JVM的应用程序。它能够提供关于JVM内部状态的实时视图,特别适用于了解堆内存使用情况、垃圾回收行为以及类加载机制等方面。通过简单的命令行接口...

    jVM之走进类加载dsaas

    #### 一、Java及JVM简介 Java自1995年由Sun Microsystems发布以来,便迅速成为了最受欢迎的编程语言之一。根据TIOBE语言热度排行榜,Java持续保持在前列,这证明了其在编程领域的持久影响力。 **1.1 Java发展的...

    [] - 2022-10-19 记一次 JVM CPU 使用率飙高问题的排查过程.pdf

    互联网资讯,技术简介,IT、AI技术,人工智能

    jdk-6u-rc-bin-b28-windows-i586-p-21_ju1_2008.exe

    2. **Java运行时环境**(JRE):包括Java虚拟机(JVM)和其他组件,用于执行Java程序。 3. **Java调试工具**(jdb):提供了一种交互式的方式来进行程序调试。 4. **Java文档生成工具**(javadoc):可以从源代码...

    深入java虚拟机pdf英文版

    - **第1章:Java体系结构简介** - 提供了一个概览,介绍Java平台的整体设计和关键特性。 - **第2章:平台独立性** - 解释了Java如何实现跨平台运行的能力。 - **第3章:安全性** - 探讨了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--...

    Java发展史_&_Java9、10新特性

    #### Java 10新特性简介 尽管题目主要聚焦于Java 9,Java 10也带来了一些值得关注的新特性: - **局部变量类型推断** Java 10引入了一个新的特性,允许开发者使用`var`关键字声明局部变量,而无需显式指定类型。...

    Java虚拟机简介.pdf

    标题中提到的“Java虚拟机简介”即为Java平台的核心组件之一的Java Virtual Machine(JVM)的介绍。JVM是运行Java字节码的虚拟机,能够跨平台运行Java程序。它负责解释Java程序中的字节码,将它们转换为在特定硬件...

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

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

    IBM-ETP-java培训02.Java 简介.ppt

    - 平台无关性:通过Java虚拟机(JVM),Java代码可以在任何支持JVM的平台上运行。 - 自动内存管理:Java提供了垃圾回收机制,自动管理内存,避免了内存泄漏问题。 - 安全性:Java有内置的安全模型,防止恶意代码...

    Java语言简介[文].pdf

    ### Java语言简介及发展历程 #### 一、Java语言的历史背景 Java 作为一种广泛使用的编程语言,在全球范围内拥有庞大的用户群。它的起源和发展历程对于理解其特性和应用领域至关重要。 ##### 1.5.1 Java语言的诞生...

Global site tag (gtag.js) - Google Analytics