2运算符丰富。共有34种。C把括号、赋值、逗号等都作为运算符处理。从而使C的运算类型极为丰富,可以实现其他高级语言难以实现的运算。
3数据结构类型丰富。
4具有结构化的控制语句。
5语法限制不太严格,程序设计自由度大。
6C语言允许直接访问物理地址,能进行位(bit) *** 作,能实现汇编语言的大部分功能,可以直接对硬件进行 *** 作。因此有人把它称为中级语言。
7生成目标代码质量高,程序执行效率高。
8与汇编语言相比,用C语言写的程序可移植性好。
但是,C语言对程序员要求也高,程序员用C写程序会感到限制少、灵活性大,功能强,但较其他高级语言在学习上要困难一些。
15 面向对象的程序设计语言
NodeJS的特点:
它是一个Javascript运行环境
依赖于Chrome V8引擎进行代码解释
事件驱动
非阻塞I/O
轻量、可伸缩,适于实时数据交互应用
单进程,单线程
NodeJS的缺点:
1 不适合CPU密集型应用;CPU密集型应用给Node带来的挑战主要是:由于JavaScript单线程的原因,如果有长时间运行的计算(比如大循环),将会导致CPU时间片不能释放,使得后续I/O无法发起;
解决方案:分解大型运算任务为多个小任务,使得运算能够适时释放,不阻塞I/O调用的发起;
2 只支持单核CPU,不能充分利用CPU
3 可靠性低,一旦代码某个环节崩溃,整个系统都崩溃
原因:单进程,单线程
解决方案:
(1)Nnigx反向代理,负载均衡,开多个进程,绑定多个端口;
(2)开多个进程监听同一个端口,使用cluster模块;
4 开源组件库质量参差不齐,更新快,向下不兼容
5 Debug不方便,错误没有stack trace
NodeJS的应用场景:
实时应用:如在线聊天,实时通知推送等等(如socketio)
分布式应用:通过高效的并行I/O使用已有的数据
工具类应用:海量的工具,小到前端压缩部署(如grunt),大到桌面图形界面应用程序
游戏类应用:游戏领域对实时和并发有很高的要求(如网易的pomelo框架)
NodeJS不适合场景:
CPU使用率较重、IO使用率较轻的应用——如视频编码、人工智能等,Nodejs的优势无法发挥简单Web应用——此类应用的特点是,流量低、物理架构简单,Nodejs无法提供像Ruby的Rails或者Python的Django这样强大的框架
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)