- Java 越来越强大,覆盖领域也越来越多,变得无所不能的时候,和那些仅专注于一个领域的的编程语言相比,它反而显得不够专业;
1. 算符优先级
优先级意味着结合律;
- C/C++:位运算符(&|^)的优先级要低于比较运算符(==/!=)
- 对于 Python 语言来说,位运算符(&|^)的优先级却要高于比较运算符(==/!=)
- matlab:
:
(冒号这一切片符号)的优先级要低于四则运算的优先级;
1:2+1 ⇒ [1, 2, 3](也即 1:(2+1))
而对于 R 语言,:
的优先级则大于四则运算;
1:2+1 ⇒ 2, 3,也即 (1:2)+1
2. 编译型语言与解释型语言
解释型语言(Python)就是先编译成中间代码程序,在执行时靠翻译程序一起执行,边翻译边执行,当然是靠翻译程序才可以达到跨平台。
编译型就是编译的时候直接编译成机器可以执行的程序,同时也就决定了运行程序所要的平台。
3. 静态语言、动态语言
- 一些编程语言(静态语言),如 Ruby 和 Groovy,有开放类的概念。它们可以不用直接修改对象或类的定义便能为对象或类添加新的方法,
- Java 并非动态语言,一旦类编译完成了,就很难再为其添加新的功能了;