zoukankan      html  css  js  c++  java
  • jVM学习过程1——jvm基础知识

    jvm 基础知识

    1、jdk是什么

    jdk  包含简单来说包含java工具包,jre (运行环境)

    jre 包含jvm(java虚拟机),运行时类库

    如图

     其中

    java 工具包(百度查询):

      javac – 编译器,将源程序转成字节码
      jar – 打包工具,将相关的类文件打包成一个文件
      javadoc – 文档生成器,从源码注释中提取文档
      jdb – debugger,查错工具
      java – 运行编译后的java程序(.class后缀的)
      appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
      Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
      Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
      Jconsole: Java进行系统调试和监控的工具
    运行时类库:
      java.lang: 这个是系统的基础类,比如String等都是这里面的,这个包是一个可以不用引入(import)就可以使用的包。
      java.io: 这里面是所有输入输出有关的类,比如文件操作等。
      java.nio:为了完善io包中的功能,提高io包中性能而写的一个新包 ,例如NIO非堵塞应用
      java.net: 这里面是与网络有关的类,比如URL,URLConnection等。
      java.util: 这个是系统辅助类,特别是集合类Collection,List,Map等。
      java.sql: 这个是数据库操作的类,Connection, Statement,ResultSet等。
      javax.servlet:这个是JSP,Servlet等使用到的类

    2、java  从编译到执行

     java类(helloWorld.java文件)通过javac 工具解析成helloWorld.class文件,

    然后jvm通过类加载器、字节码解释器等一些列过程将class文件解析成os可以识别的机器码

    如图

      

     3、jvm的跨平台和跨语言

    跨平台:java 针对不同的操作系统提供了对应的jdk版本,使得同样的java代码可以运行在不同的操作系统上,产生的结果是一致的

    跨语言:由于jvm解析的只是java字节码,所以无论上层语言是java还是scala、kotlin等只要其最终生成对应的java字节码,都可以在jvm上运行

    如图

  • 相关阅读:
    [转]vim 常用命令
    C语言运算符优先级顺序
    uboot
    linux 驱动开发 不定期更新
    [转]spdk 和nvme 预备知识1
    【转】聊聊 Linux IO
    [转]NVMe协议/ SSD控制器/ linux driver / open channel
    Ubuntu给应用程序创建一个启动图标
    Qt4.8.7+mingw4.8.2 环境搭建
    更改C编译器的缺省字节对齐方式__align(),__attribute((aligned (n))),#pragma pack(n)
  • 原文地址:https://www.cnblogs.com/yutf/p/13695483.html
Copyright © 2011-2022 走看看