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上运行

如图

 

posted @ 2020-09-19 11:25  青春的暗潮憧憬与追忆  阅读(117)  评论(0编辑  收藏  举报