对于8个编程概念的理解(新建文件夹中)

来源于对码农翻身这篇文章的思考,希望能够一直记录自己学习的过程与收获,详见两年,我学会了所有的编程语言!_码农翻身的博客-CSDN博客

概念一、面向对象

比如说封装、继承、多态,Prototype,mixin,Traits,这些概念在每种语言都一样,仅仅是语法层面有所区分。

概念二、函数式编程

需要弄清楚高阶函数、闭包、惰性求值、递归、不可变状态、无副作用这些概念。

概念三、元编程

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

概念四、并发模型

Java中主要支持多线程,Python有协程,Go有Go routine,Erlang采用的是Actor。并发模型中,我们需要考虑同步与互斥、锁、死锁、软件事物内存等技术。

4.1 Go routine

对于go语言的go routine来说,可以基于操作系统的内核线程提供多个协程,下图的G就是一种go对协程的实现,可使用多种调度策略,包括:复用线程、利用并行、抢占、全局G队列。

协程之间可以通过通道channel来传递数据,比如将协程1的某个输出的变量传递给协程2进行处理。

概念五、虚拟机和垃圾回收

当代的编程语言很多通过虚拟机来执行,而且垃圾回收也成为了编程语言的标配,JVM垃圾回收则是1个集大成者。

概念六、静态类型、动态类型、类型推导

静态类型的语言在编译器就能确定类型,编译器可以提前发现错误,但是会增加代码量;

动态类型则是在运行期确定类型,非常灵活,发现问题的时机就等到了运行期。

概念七、抽象语法树(AST)

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

概念八、指针

指针是C语言的精华,我们仍需要了解指针从而对计算机的底层运行机制加深理解。

概念九、零碎的各种

错误处理

泛型

同步异步

序列化

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值