嘛,关于找工作一直都是让我头疼的东西,要求一年比一年高,羡慕以前的程序员,写得一手烂代码依然能找到好工作。
心情郁闷同时,补一下基础
说到解释型语言,比较有名的就是python,编译型语言就是C,C++,半解释半编译就是Java啦!
你们会发现我们书写完一个程序的时候,在终端敲python xxx.py的时候,终端直接显示了结果,就算你觉得不服,再修改源文件,py文件也是直接运行了你修改之后的代码
但是java和C++就得你修改完后代码后,(对于Java)再输入javac 啊之类的编译命令,生成对应的.class字节码文件后你再使用java 源程序名 才能运行你修改之后的代码,那这是怎么回事呢?
首先,计算机是不能直接识别程序员敲出来的代码的,计算机只能识别计算机自己的二进制语言,我们可以打个比方:
windows操作系统:英国人
linux\Unix操作系统:德国人,一半英国血统
python:好比一个会说八国语言的同声传译大佬,国籍不明
Java(准确说是JVM):好比一个会说八国语言,但是不能同声传译的大佬,法国人
C++:一个只懂英语的,但是不会同声传译小白翻译,祖上是英国人
程序员写使用对应语言写的代码:中国人
这个过程就好像是:
中国人说了一句你好啊,然后python这个大佬直接解释告诉英国人,他在说你好
但是Java就先自己用法文笔译一遍你好啊,然后对着法语文章向英国人说英语hello
C++就牛逼了,笔译完中文后,拿给英国人看:"诺,这是那个中国人的意思!"
所以这里我们就能看到,Java其实本质上是解释型语言
那么三者的效率也能看得很清楚,python同声传译太他妈费脑子了,一边读代码,一边向操作系统解释执行代码,所以底层运行效率低
但C++索性让操作系统自己去执行代码,所以最快
Java就是一次性读完代码,然后一次性解释代码,所以介于两者之间
看官明白了?