Mainly used to record Java, DBMS, HDFS... related learning notes
主要是各个语言的运行和特性方面的比较 基于 书籍和网络资料 不准确的地方在所难免
欢迎交流
百科
编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如 C、C++、Delphi 等.
特点: 先编译 依赖编译器 因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。
解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执 行一次都要翻译一次。因此效率比较低。比如 Basic 语言,专门有一个解释器能够直接执行 Basic 程 序,每个语句都是执行的时候才翻译。(在运行程序的时候才翻译,专门有一个解释器去进行翻译,每个语句都是执行的时候才翻译。效率比较低,依赖解释器,跨 平台性好.)
特点:解释性语言必须 先解释再运行 执行效率较低 跨平台性好
思考
Java 既是编译型语言 又是解释型语言?
.java -> 编译 -> .class -> 解释 -> jvm -> run os
先编译 成 class 文件 jvm 中执行 class 边解释 边执行
JIT是帮助 Java 跳过 class 的技术
混合型语言
混合型语言也叫半编译型语言。比如 java、C#,
动态语言 / 脚本语言
脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本(如 ASCII)保存,只在被调用时进行解释或编译。
例如 PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell 等等。
静态语言
静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。
例如:C++、Java、Delphi、C#等
强类型语言
强类型语言也称为强类型定义语言。是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。
弱类型语言
编程语言中的变量类型不指定 想当做什么类型来用,就当做什么类型来用,语言的解析器会自动(隐式)转换