什么是java
java所涉及到的相关概念如下图。总体来说就是java语言、java API、jvm等构成。
jvm:java虚拟机,java的代码都是运行在jvm上,这是java语言跨平台的保证,针对不同的系统jvm也不同,这就实现了同一份代码,通过不同jvm的运行可以让对应的操作系统识别。
JRE(java running environment):就是提供给java代码一个运行环境,java代码运行在jvm上,但是开发程序的时候往往除本身代码外会有引入的api,当程序运行时,jvm会加载相关的类,所以一个能保证代码能正常运行的环境是jvm+api(java se api)。
JDK(java development kit):java开发环境,JDK=java语言+开发相关的API+JRE。开发环境除了要正常运行程序外(JRE环境),还需要进行开发相关的操作如打包、编译等这类工具。
JAVA API
平时API听多了,但是或许并不了解,这里做下简要解释。一个操作系统会提供很多API接口让程序员使用计算机的硬件资源,这是系统API,这里涉及到一个POSXI的概念,POSIX表示可移植操作系统接口(Portable Operating System Interface ,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。因为遵循POSXI标准的操作系统,所定义的操作系统API都相同,所以开发程序的时候,使用的API在名称参数上都可以兼容,所以换一个系统,不需要重新编写代码。POSIX是针对API的标准,即针对API的函数名,返回值,参数类型等。POSIX兼容也就指定这些接口函数兼容,但是并不管API具体如何实现。
Java api:就是用java语言编写的功能代码,为访问主机上的本地资源,Java api调用了本地方法(操作系统API),直接通过内核请求调用相关内核函数。而后将功能相似的这些代码归类,组成java api类库。
以linux编程为例:我们编写linux用户程序的时候,是不能直接调用内核里面的函数的&#x