Atitit.编程语言新特性 通过类库框架模式增强 提升草案 v3 q27
来源:互联网 发布:表达无网络的图片大全 编辑:程序博客网 时间:2024/05/21 17:57
Atitit.编程语言新特性 通过类库框架模式增强 提升草案 v3 q27
1. 修改历史2
2. 适用语言::几乎所有编程语言。语言提升的三个渠道::语法,类库,框架,ide2
2.1. 单根继承 vs 多跟继承3
2.2. 默认参数3
2.3. 等号判断相等,儿不是equ3
2.4. 隐式类型,类型推导3
2.5. 匿名类型3
2.6. 初始化器 对象初始化器 与 集合初始化器 { }4
2.7. 委托4
2.8. 内置委托 Func / Action4
2.9. 标准查询运算符 Standard Query Operator4
2.10. 范型委托4
2.11. 匿名方法4
2.12. Lambda4
2.13. 扩展方法4
2.14. 面向过程与面向对象结合4
2.15. Linq5
2.16. 操作符重载5
2.17. Preprocess源码预处理,宏5
2.18. Pointer指针5
2.19. 智能指针5
2.20. 强类型 与弱类型同时支持5
2.21. 手动转转struct指针支持5
2.22. RAII(资源获取即是初始化5
2.23. 泛型5
2.24. 语法向前兼容6
2.25. 支持typedef.6
2.26. 支持单行和多行的注释之外,JAVA增加了第三种注释方法:文档注释。文档注释以结尾。6
2.27. Reflection支持反射6
2.28. 可选的自动边界检查6
2.29. 支持指针,引用,值传递(无论对象还是基本数值)7
2.30. 函数/方法的参数设置缺省值, . 但是方法重载(en:method overloading)可以达到同样的效果.7
2.31. 最小的编译单位是一个函数7
2.32. 允许基本类型之间的一些隐式的转换, 也允许程序员对于用户自定义类型相关的隐式转换规则7
2.33. 支持编译器检查与运行时检查。。可以显示警告代替except7
2.34. 异步api 代替大部分多线程api7
2.35. 方法缺省情况下是虚的7
2.36. 内存Gc 但是可以手动触发。。 支持析构函数.7
2.37. 网络资源,io资源,线程,窗口等其他的资源的gc8
2.38. 显式的覆盖8
2.39. 阻塞和非阻塞的I/O8
2.40. 大的标准库,但是模块化8
2.41. 多重继承8
2.42. Lambda函数指针支持8
2.43. 代码内嵌文档机制8
2.44. Anno,attr标记机制8
2.45. 支持 goto 语句8
2.46. 源码可以平台相关,也可以不相关,vm与native捷克8
2.47. C++ 可以申请任意的内存块.8
2.48. 可移植性9
2.49. 显式锁操作(java.util.concurent.locks)与影视的synchronized 9
2.50. 常用的C++预处理编辑9
2.51. 参考10
1. 修改历史
V1 增加了c++中的语法特性
V2 增加了c#中的语法特性 v3
V3 增加js 中的语法特性
V4 增加 oc swift的语法特性
V5 增加lisp 语法特性
V6 增加php python语法特性
V7 增加ruby语法特性
2. 适用语言::几乎所有编程语言。语言提升的三个渠道::语法,类库,框架,ide
不过主要特性来自于常用流行语言c++ java c# php js python ruby 。。另外参考参考 go rust list语言的好特性移植,过来
语法特性通过调整语法是最终的的,在语法未来得及提升的情况下,通过类库框架提升也是一个很好的方案
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
2.1. 单根继承 vs 多跟继承
貌似目前单身继承较多。Cplus是卫衣的多继承实现。。应该允许多继承比较方便
2.2. 默认参数
2.3. 等号判断相等,儿不是equ
Java是少数不能用双等号判断str的lang
2.4. 隐式类型,类型推导
Var O=1
2.5. 匿名类型
(1)源起
创建一个对象,一定要先定义这个对象的类型吗?
不一定的!
来看看这段代码
(2)使用
var obj = new {Guid.Empty, myTitle = "匿名类型", myOtherParam = new int[] { 1, 2, 3, 4 } };
如果你监视变量obj,你会发现,obj的类型是Anonymous Type类型的
这个特性在网站开发中,序列化和反序列化JSON对象时很有用
2.6. 初始化器 对象初始化器 与 集合初始化器 { }
var myObj1 = new MyObj ("allen") { id = Guid.NewGuid(), Title = "allen" };
2.7. 委托
2.8. 内置委托 Func / Action
2.9. 标准查询运算符 Standard Query Operator
2.10. 范型委托
2.11. 匿名方法
2.12. Lambda
2.13. 扩展方法
如果想给一个类型增加行为,一定要通过继承的方式实现吗?
4>第一个参数必须附加this关键字作为前缀
扩展方法的本质是在运行时调用扩展类的静态方法
2.14. 面向过程与面向对象结合
世界并不是全部是对象模式的
2.15. Linq
2.16. 操作符重载
2.17. Preprocess源码预处理,宏
· C++ 编译多了一个文本预处理过程, Java 是没有的. 因此一些使用者在他们的编译过程之前增加了一个预处理的过程,这样能更好的支持需要条件编译的情况.
预处理器为开发人员提供了方便,但增加丁编译的复杂性。JAVA虚拟机没有预处理器,但它提供的引入语句(import)与c十十预处理器的功能类似。
2.18. Pointer指针
完全取消指针是错误的,可以通过类库增加指针功能。。
2.19. 智能指针
2.20. 强类型 与弱类型同时支持
强类型检查和四种转型
2.21. 手动转转struct指针支持
2.22. RAII(资源获取即是初始化
Java 主要依赖垃圾搜集,which can only reclaim memory and may be a last shot at other resources(不知道咋翻译...), 而 C++ 主要依赖 RAII (资源的获取就是初始化
2.23. 泛型
其主要目的是提供类型安全的容器
2.24. 语法向前兼容
语言向前兼容,尽可能的兼容流行语言的语法
2.25. 支持typedef.
2.26. 支持单行和多行的注释之外,JAVA增加了第三种注释方法:文档注释。文档注释以结尾。
2.27. Reflection支持反射
2.28. 可选的自动边界检查
简单的说,就算检查你的索引是否在0~(len-1)之内
貌似是由字节码指令附带的功能,由虚拟机执行时进行检查。约见except
· 因为表达方式不受限制,低级的 C++ 语言特性(例如:不被检查的数组访问,原始指针,类型双关语(en:type punning))不能在编译期间或者运行期间可靠地被检查. 相关的编程错误会导致低级的缓存溢出和段错误(en:segmentation fault). 标准模板库 提供了高级的抽象(例如 vetor,list 和 map)来帮助避免这样的错误. 在 Java 里, 低级错误不会发生或者会被JVM检测到并以异常的形式报告给应用.
2.29. 支持指针,引用,值传递(无论对象还是基本数值)
2.30. 函数/方法的参数设置缺省值, . 但是方法重载(en:method overloading)可以达到同样的效果.
2.31. 最小的编译单位是一个函数
2.32. 允许基本类型之间的一些隐式的转换, 也允许程序员对于用户自定义类型相关的隐式转换规则
2.33. 支持编译器检查与运行时检查。。可以显示警告代替except
2.34. 异步api 代替大部分多线程api
2.35. 方法缺省情况下是虚的
这样方便覆盖
C++ 方法缺省情况下不是虚的. 在 Java 里, 方法缺省情况下是虚的, 但可以使用final关键字使之声明为非虚的.
2.36. 内存Gc 但是可以手动触发。。 支持析构函数.
强制使用自动垃圾搜集导致了在 Java 里编写实时软件(en:Real-time computing)是困难的.[3]
2.37. 网络资源,io资源,线程,窗口等其他的资源的gc
2.38. 显式的覆盖
2.39. 阻塞和非阻塞的I/O
2.40. 大的标准库,但是模块化
2.41. 多重继承
2.42. Lambda函数指针支持
2.43. 代码内嵌文档机制
2.44. Anno,attr标记机制
2.45. 支持 goto 语句
2.46. 源码可以平台相关,也可以不相关,vm与native捷克
2.47. C++ 可以申请任意的内存块.
· Java 只能通过对象实例化来申请内存. (注意:在 Java 里, 程序员可以通过创建一个字节数组模拟申请任意的内存块. 不过 Java 数组仍然是对象.)
2.48. 可移植性
2.49. 显式锁操作(java.util.concurent.locks)与影视的synchronized
显式锁,锁可以沿着代码块的方向释放,其中包括异常被抛出,从而消除错误的常见来源。
2.50. 常用的C++预处理编辑
1)常用的预处理:
#include 包含头文件
#if 条件
#else 否则
#elif 否则如果
#endif 结束条件
#ifdef 或 #if defined 如果定义了一个符号, 就执行操作
#ifndef 或 #if !defined 如果没有定义一个符号,就指执行操作
#define 定义一个符号
#undef 删除一个符号
#line 重新定义当前行号和文件名
#error 输出编译错误 消息, 停止编译
#pragma 提供 机器专用的特性,同时保证与C++的完全兼容
2.51. 参考
C++和java技术特性对比 - lile269的专栏 - 博客频道 - CSDN.NET.html
线程基础之JAVA和C++0x的特性 _ 并发编程网 - ifeve.com.html
(2 封私信 / 5 条消息) C++语言与Java语言的区别有哪些? - 知乎
- Atitit.编程语言新特性 通过类库框架模式增强 提升草案 v3 q27
- Atitit .c#的未来新特性计划草案
- Atitit.atijson 类库的新特性设计与实现 v3 q31
- Atitit. 提升存储过程与编程语言的可读性解决方案v3 qc25.docx
- Atitit.wrmi web rmi框架新特性
- Atitit.提升api兼容性的方法 v3 q326
- atitit.TokenService v3 qb1 token服务模块的设计 新特性.docx
- Atitit.android jsbridge v1新特性
- Atitit.跨语言 文件夹与文件的io操作集合 草案
- Atitit.go语言golang语言的新的特性 attilax总结
- atitit.跨语言执行cmd cli api的原理及兼容性设计草案
- Atitit hre框架v5 新特性 HREv5
- atitit.atiOrmStoreService 框架的原理与设计 part1 概述与新特性
- Atitit. Object-c语言 的新的特性 attilax总结
- atitit.jQuery Validate验证框架详解与ati Validate 设计新特性
- Atitit.atiDataStoreService v2 新特性
- Atitit.linux 内核 新特性 新功能
- Atitit. atiJavaExConverter4js 新的特性
- 收集的前端学习资源
- Java 基础总结--初始化顺序1
- thrift几种server模式的比较
- Linux安装配置php7+nginx
- FFmpeg的添加logo,去logo
- Atitit.编程语言新特性 通过类库框架模式增强 提升草案 v3 q27
- jQuery操作DOM元素
- 大数加法
- 安卓开发——如何让控件充满剩余父类容器
- 面试笔试杂项积累-leetcode 171-175
- 机器学习笔记(一)——环境安装
- HDU——1061Rightmost Digit(高次方,找规律)
- lasrevarTredronIeerTyraniB.94
- 1.1本地方法栈