标签:代码 技术 之一 嵌入式 href 参数 code 解释型 完全
Java介于编译型语言和解释型语言之间。编译型语言如C、C++,代码是直接编译成机器码执行,但是不同的平台(x86、ARM等)CPU的指令集不同,因此,需要编译出每一种平台的对应机器码。解释型语言如Python、Ruby没有这个问题,可以由解释器直接加载源码然后运行,代价是运行效率太低。而Java是将代码编译成一种“字节码”,它类似于抽象的CPU指令,然后,针对不同平台编写虚拟机即JVM,不同平台的虚拟机负责加载字节码并执行,这样就实现了“一次编写,到处运行”的效果。
当然,这是针对Java开发者而言。对于虚拟机,需要为每个平台分别开发。为了保证不同平台、不同公司开发的虚拟机都能正确执行Java字节码,SUN公司制定了一系列的Java虚拟机规范。从实践的角度看,JVM的兼容性做得非常好,低版本的Java字节码完全可以正常运行在高版本的JVM上。
从互联网到企业平台,Java是应用最广泛的编程语言,原因在于:
Java是基于JVM虚拟机的跨平台语言,一次编写,到处运行;
Java程序易于编写,而且有内置垃圾收集,不必考虑内存管理;
随着Java的发展,SUN给Java又分出了三个不同版本:
Java SE:Standard Edition
Java EE:Enterprise Edition
Java ME:Micro Edition
简单来说,Java SE就是标准版,包含标准的JVM和标准库,而Java EE是企业版,它只是在Java SE的基础上加上了大量的API和库,以便方便开发Web应用、数据库、消息服务等,Java EE的应用使用的虚拟机和Java SE完全相同。
Java ME就和Java SE不同,它是一个针对嵌入式设备的“瘦身版”,Java SE的标准库无法在Java ME上使用,Java ME的虚拟机也是“瘦身版”。
毫无疑问,Java SE是整个Java平台的核心,而Java EE是进一步学习Web应用所必须的。我们熟悉的Spring等框架都是Java EE开源生态系统的一部分。不幸的是,Java ME从来没有真正流行起来,反而是Android开发成为了移动平台的标准之一,因此,没有特殊需求,不建议学习Java ME。
简单地说,JRE就是运行Java字节码的虚拟机。但是,如果只有Java源码,要编译成Java字节码,就需要JDK,因为JDK除了包含JRE,还提供了编译器、调试器等开发工具。
二者关系如下:
而 JVM 又是什么呢?我们常说的虚拟机也可以指的是 JVM,在JDK下面的的 jre 目录里面有两个文件夹 bin 和 lib,在这里可以认为 bin 里的就是 jvm,lib 中则是 jvm 工作所需要的类库,而 jvm 和 lib 加起来就称为 jre,即 JVM+Lib =JRE。JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。
JDK的安装及配置可参考:https://www.cnblogs.com/wenxuehai/p/9492355.html
打开文本编辑器,输入以下代码:
public class Hello { public static void main(String[] args) { System.out.println("Hello, world!"); } }
class
用来定义一个类,public
表示这个类是公开的,public
、class
都是Java的关键字,必须小写,Hello
是类的名字,按照习惯,首字母 H 要大写。
这里有一个 main 方法,该方法有一个参数,参数类型是String[]
,参数名是args。
public
、static
用来修饰方法,这里表示它是一个公开的静态方法,void
是方法的返回类型。
Java规定,某个类定义的public static void main(String[] args)
是Java程序的固定入口方法,因此,Java程序总是从main
方法开始执行。
最后,当我们把代码保存为文件时,文件名必须是Hello.java
,而且文件名也要注意大小写。注意,文件名跟类名必须完全一致。
如何运行一个Java程序:
Java源码本质上是一个文本文件,我们需要先用javac
把Hello.java
编译成字节码文件Hello.class
,然后,用java
命令执行这个字节码文件即可得到输出。
$ javac Hello.java
$ java Hello
Hello, world!
标签:代码 技术 之一 嵌入式 href 参数 code 解释型 完全
原文地址:https://www.cnblogs.com/wenxuehai/p/11766193.html