编程的概念
- 各个语言之间看起来差异大,其实用到的编程概念是一样的,一门语言用到了几个概念,另外一门语言用到了另外几个概念,还有可能共同使用了一些概念
- 异常,泛型,同步异步,序列化都要用语言作为载体体现
面向对象
封装,继承,多态,Prototype,Mixin,Traits,Duck Typing函数式编程
高阶函数,闭包,惰性求值,递归,不可变状态,无副作用元编程
Java动态代理,Cglib
Ruby,Python
Lisp宏,代码即数据并发模型
Python协程
Go routine
Erlang Actor
同步,互斥,死锁,事务虚拟机和垃圾回收
垃圾回收解放程序员
JVM垃圾回收是集大成者静态类型,动态类型,类型推导
静态类型语言在编译期就能确定类型,编译期帮忙优化
动态类型在运行时确定类型
动态一时爽,重构火葬场抽象语法树(AST)
几乎所有的编程语言都要转成AST指针
指针是C语言的精华,理解指针对理解计算机底层大有好处