最近要测试jar包,发现自己除了基本的调用接口,出现错误后都是一顿狂百度,就算解决了也是懵圈的状态,回顾下以前学习的java基础知识(大学的时候学过全部还回去了)
c语言的程序编写好了.c文件后经过编译 预处理等步骤到最后的可执行文件;目前测试的so库有不同的平台需要不同的编译器进行编译;但是java不同,java可以写完就可以在多个平台进行运行比如windows linux(X86)
java 首先编写.java 文件然后编译器进行编译成.class文件 然后经过解释器进行运行
JVM(java虚拟机)也就是java可以跨平台的主要原因
运行 Java 程序时,首先会启动 JVM,然后由它来负责解释执行 Java 的字节码程序,并且 Java 字节码程序只能运行于 JVM 之上。这样利用 JVM 就可以把 Java 字节码程序和具体的硬件平台以及操作系统环境分隔开来,只要在不同的计算机上安装了针对特定平台的 JVM,Java 程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。
理解最基础的JDK JRE和JVM,
- JDK(Java Development Kid,Java 开发开源工具包),是针对 Java 开发人员的产品,是整个 Java 的核心,包括了 Java 运行环境 JRE、Java 工具和 Java 基础类库。
- JRE(Java Runtime Environment,Java 运行环境)是运行 JAVA 程序所必须的环境的集合,包含 JVM 标准实现及 Java 核心类库。
- JVM(Java Virtual Machine,Java 虚拟机)是整个 Java 实现跨平台的最核心的部分,能够运行以 Java 语言写作的软件程序。