Java解释器的运行过程介绍

 更新时间:2019年04月11日 09:30:40   作者:yangyongUestc  
今天小编就为大家分享一篇关于Java解释器的运行过程介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

首先介绍一下Java解释器的概念,Java解释器:解释器是Java虚拟机非常重要的一部分,它的工作就是把字节码转化为机器码并在特定的平台进行运行。简单一点,java的解释器只是一个基于虚拟机JVM平台的程序 ,即jdk或jre目录下bin目录中的java.exe文件。 Java解释器相当于运行Java字节码的“CPU”,但该“CPU”不是通过硬件实现的,而是用软件实现的。

  • 步骤1:可以通过操作系统设置,也可不用设置,一般编译环境会为你设置,其中CLASSPATH包含一个或多个目录,用来查找.class文件的根目录。
  • 步骤2:需要从根目录进行查询,解释器获取包的名称,将点号替换为反斜杠,具体哪种反斜杠视操作系统而定。
  • 步骤3:将得到的路径与CLASSPATH中的各个不同的项相连接,解释器就在这些目录中查找与你创建的类名称相关的.class文件。

举例:假设根据java环境设置,CLASSPATH变量为下面几种:

  • C:\Program Files\Java\jre1.8.0_102\lib; 
  • C:\Program Files\Java\jre1.8.0_102\lib\tools.jar;
  • E:\JAVA学习\JavaProject\JavaStudy\bin

然后从这些目录中查找.class文件,比如说要找MyClass.class,此时,先获取包名net.mindview.util,将该包名替换成net\mindview\util,再将替换后的包名与CLASSPATH中的路径连接,形成一些查找路径,如下:

路径1:C:\Program Files\Java\jre1.8.0_102\lib\net\mindview\util

路径2:C:\Program Files\Java\jre1.8.0_102\lib\tools.jar\net\mindview\util

路径3:E:\JAVA学习\JavaProject\JavaStudy\bin\net\mindview\util

前两条路径不存在,第三条路径存在,成功找到MyClass.class,至此,解释器查找成功。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • SpringBoot自动配置特点与原理详细分析

    SpringBoot自动配置特点与原理详细分析

    这篇文章主要介绍了SpringBoot自动配置原理分析,SpringBoot是我们经常使用的框架,那么你能不能针对SpringBoot实现自动配置做一个详细的介绍。如果可以的话,能不能画一下实现自动配置的流程图。牵扯到哪些关键类,以及哪些关键点
    2022-08-08
  • 深入浅出重构Mybatis与Spring集成的SqlSessionFactoryBean(上)

    深入浅出重构Mybatis与Spring集成的SqlSessionFactoryBean(上)

    通常来讲,重构是指不改变功能的情况下优化代码,但本文所说的重构也包括了添加功能。这篇文章主要介绍了重构Mybatis与Spring集成的SqlSessionFactoryBean(上)的相关资料,需要的朋友可以参考下
    2016-11-11
  • java实现邮件发送

    java实现邮件发送

    这篇文章主要为大家详细介绍了java实现邮件发送,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • IntelliJ IDEA 好用插件之analyze inspect code详解

    IntelliJ IDEA 好用插件之analyze inspect code详解

    这篇文章主要介绍了IntelliJ IDEA 好用插件之analyze inspect code的相关知识,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-12-12
  • Mybatis中通过generator生成mapper、Dao、mapper.xml的方法

    Mybatis中通过generator生成mapper、Dao、mapper.xml的方法

    这篇文章主要介绍了Mybatis中通过generator生成mapper、Dao、mapper.xml的方法,需要的朋友可以参考下
    2017-01-01
  • Java定时任务ScheduledThreadPoolExecutor示例详解

    Java定时任务ScheduledThreadPoolExecutor示例详解

    这篇文章主要介绍了Java定时任务ScheduledThreadPoolExecutor示例详解,这里使用scheduleAtFixedRate方法安排一个任务,该任务是一个 Runnable 匿名类,其run方法中调用了new LoginViewTimeTask().loginStatisticsHandle()方法,需要的朋友可以参考下
    2023-11-11
  • java 中clone()的使用方法

    java 中clone()的使用方法

    这篇文章主要介绍了java 中clone()的使用方法的相关资料,希望通过本文能帮助大家能掌握clone()的克隆方法,需要的朋友可以参考下
    2017-09-09
  • Java编写实现登陆窗口

    Java编写实现登陆窗口

    这篇文章主要为大家详细介绍了Java编写实现登陆窗口,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • springsecurity中http.permitall与web.ignoring的区别说明

    springsecurity中http.permitall与web.ignoring的区别说明

    这篇文章主要介绍了springsecurity中http.permitall与web.ignoring的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java实战之图书管理系统的实现

    Java实战之图书管理系统的实现

    这篇文章主要介绍了如何利用Java语言编写一个图书管理系统,文中采用的技术有Springboot、SpringMVC、MyBatis、ThymeLeaf 等,需要的可以参考一下
    2022-03-03

最新评论