java作为已经有30年历史的编程语言的确很不错了。当初在各种C语言及其拓展的影响下,为了解决跨平台的问题而开发出java运行时环境即JRE(java runtime environment)。其语法从C++中继承出来,又参考了C#的特性。
当年开发C的时期,人们需要做大量操作系统的判断去书写代码,进而调用系统接口实现功能。过程难度极大又极其容易出错。jre就是用来解决这个问题的。在linux系统下,jre文件夹中会有一个jvm.so文件,而windows系统就是jvm.dll。这个文件就是java虚拟机(java virtual machine)。为什么会叫做java虚拟机?因为你可以把他想象成一个操作系统的代理,java需要调用的操作系统的api是先通过各操作系统都一致的标准函数、接口来调用jvm,jvm再调用操作系统的api调用系统资源。看上去jvm就像是一个代理操作系统一般提供底层资源的操作,所以才叫java虚拟机。
java的开发过程:所谓一次编译,到处运行。开发者先编写出.java文件(人类能看懂的),然后通过javac将.java文件转变为.class文件(jvm能读取的二进制文件),该class文件也是跨平台的。执行java命令启动jvm,jvm读取class文件执行代码流程。理论上,我只要生成了class文件,在任何一个安装了jre的操作系统都能运行。
作为面向对象的编程语言,java也是一枝独秀,该特点会一直积极影响住java的生命历程。