java运行环境和运行机制

先来介绍三个概念:

JVM----JAVA virtual machine

       java虚拟机:对字节码提供相同的接口,对操作系统提供不同的接口,以适应各个OS

JRE----JAVA runtime environment

          java运行时环境

JDK----java SE Development kit

           java 标准版开发包

这是学习java最基础的三个概念,他们的关系如下

    JDK(开发必备) -|-----JAVA 类库    
   |-----JAVA编译器    
   |-----JRE(运行Java必装) JVM  
    类加载器 -|
    字节码校验器  |---运行java程序的其它环境支持
    基础类库 _|
       

 如图,平常跑跑java 程序 安装对应的JRE即可,如果需要开发 则需要jkd,单纯的jvm是没意义的(官方也没有对应的下载)

 java从代码到运行:

            java源文件(.java 文件)----->java编译器(使用javac编译)----->字节码文件(.class文件)---|

             特定平台的机器码(OS可以运行的)<--  java虚拟机运行(使用java解释执行)<---|

java编译器生成的是与各个平台无关的字节码,这些字节码不面向任何的平台,他们只面向JVM,与此同时不同平台的JVM都是不同的,但是他们都提供了相同的接口来处理字节码,于此同时产生不同的接口对应不同的平台(linux/win)JVM可以说就是一个转换器。

 

   另外jar包:

    我们还会遇到.jar包。  jar (Java Archive File 译为java 存档文件)。直白点说就是一个压缩.class的zip包,但是由于他里边包含一个文件

META-INF/MANIFEST.MF(生成jar包时就有),使得里边的.class文件之间具有一定的结构。我们的程序就可以直接引用这些jar包(这里有点像C#中的dll文件),或者直接运行这个jar包

 

      此处要注意

       (1).java文件的名字是随意起的,但是倘若java 文件中有public 类,则.java文件的名字必须与这个类名保持一致,所以最多只能有一个public class。

       (2)1、命名时大小写是敏感的(同时请记住,所有的关键字都是小写)。

              2、默认的路径(jdk默认的路径)是 program files 中间有空格,最好选择无空格的路径(以及不要有中文字符,以免莫名其妙的错误)

 


 

环境变量:

    为什么要设置环境变量呢?

     在我们装好jdk后,如果不设置:在我们敲入java 或者javac命令时会提示:java、javac不是内部或外部命令,也不是可以运行的程序或批处理文件。这是因为:虽然我们已经在计算机上安装了JDK,而且JDK的路径下野有java和javac 这两个命令,但是计算机并不知道去哪里找这两个命令(换句话说计算机并不知道自己有这两个功能),所以我们需要设置一个指引(路径),告诉OS可以去这里看看。

   Path:java编译运行工具的目录

   ClassPath:java调用需要工具类所在的地址

   JAVA_Home java安装目录的公有名字(就是JDK的安装目录)


java的内存回收机制(GC)

这个与C#的大同小异,这里就不多加赘述。只简单提下

(1)不及时回收内存--->可以用内存的数量空间就会变小--->回收的频率就会变高--->性能下降

(2)java始终都无法强制回收内存,只能建议jvm回收。

 

 

 

 

 

 

 

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。