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

如图

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐