历史
从0101机器语言开始,对人来说是难以理解的;于是有了汇编语言,作为机器语言与编程语言之间的中间层。编程语言最早从c开始,但是c存在内存和指针管理问题,经常在编译运行时候才报错,很不方便。c++作为类c的语言出现解决了这个问题,但是因为这个语言太难,后来有一群人为了反抗,发明了java,既解决了c原始的问题,也比c++更简单学。其中优良的特性有:一次编译,到处运行。这样的跨平台性使得java可以在windows、linux、mac等系统都可以运行。早期的Java可以开发桌面程序、手机程序,但是都淘汰了;现在最主要的用途是服务器开发,一骑绝尘。而C#是微软推出来的类java的语言,但是不能跨平台,导致与java相比就没有了优势,c#只能在微软自己的编译器:visual studio上开发,使用sql server数据库。而Java目前最主流的开发工具是idea。python的发明其实在java之前,每个语言都有其相应的优势,python虽然容易上手,但是其之后的开发也并没有那么简单,python用作数据分析使用是相当厉害的。而c++更多的用在游戏开发。三种语言,就市场占有量而言,java还是有非常明显的优势的。
其中java等一些高级语言都是用c来编写的。
JDK、JRE、JVM
- JDK:Java Development Kit(英文缩写)。
- JRE:Java Runtime Enviroment(英文缩写)。java程序可以在上面运行。
- JVM:Java Virtual Machine(英文缩写)。可以用硬件实现,也可以用软件实现。相当于在操作系统上模拟了一个小的CPU,去处理java相关的东西。屏蔽了底层差别,实现了一处编译,到处运行。
注意:尽管jdk已经更新迭代了很多,每一次更新都添加了一些新特性,但是企业中用的最多的还是jdk8。
Java程序运行机制
运行机制分为两种:
- 编译型:c/c++,用作操作系统。(可理解为将一本书整本翻译)
- 解释型:可用于网页,对速度要求不高。(可理解为说一句解释一句)
- Java既是编译型也是解释型(先编译后解释)。
- Java在真正执行之前,进行了一次预编译。
.javac源文件通过编译器编译为.class文件。将.class文件放到jvm虚拟机(类装载器),加载后用字节码校验器来检查代码写的对不对,写错了会在这里告诉你。写对了会通过解释器,将代码解释给操作系统。