编程语言里的基本概念

面向对象

比如说封装、继承、多态、Prototype、MixinTraits、Duck Typing等。
这些概念每个语言都一样,只是在语法层面有所区别。

函数式编程

比如高阶函数、闭包、惰性求值、递归、不可变状态、无副作用这些概念。
可以去看看JVM上的Lisp:Clojure。

元编程

Java的动态代理,CgLib这些工具初步具备了元编程的能力,可以在运行时创建新的类;
而Ruby、Python的开放性让它们的元编程更强一些,但是想要真正地理解元编程,还得去看Lisp的宏,感受到代码即数据的强大力量!

并发编程

Java主要是对线程做支持,还要学习其他并发模型,比如:Python有协程,Go有Go routine,Erlang采用的是Actor。
在这些并发模型中,还得考虑同步与互斥、锁、死锁、软件事务内存等技术。

虚拟机和垃圾回收

现在很多编程语言都是通过虚拟机来执行的,理解了虚拟机的实现,就能非常透彻地理解编程语言。
为了解放程序员,垃圾回收几乎成为编程语言的标配。而JVM垃圾回收是个集大成者,可以它为突破口。

静态类型、动态类型和类型推导

静态类型的语言在编译期就能确定类型,编译器能帮忙发现错误,做些优化,但是会增加代码量;
动态类型是在运行期确定类型,非常灵活,但是在运行期才能发现错误。所谓“动态一时爽,重构‘火葬场’”。
而类型推导在Java10就引入了。

抽象语法树

几乎所有的主流编程语言,都要转换成AST这么一个形式。有些语言还可以对AST做一些操作。

指针

指针是C语言的精华,虽然现在的Java、Python、Ruby等编程语言已经把指针干掉了,但理解指针对你理解计算机的底层运作大有好处。

注:还有异常,泛型,同步异步,序列化等简单概念

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值