OC、C#与JAVA语法特点一些异同(差集&交集)
C#对JAVA:
1.扩展方法
2.部分类
3.动态对象
4.匿名返回类型
5.表达式树
6.Linq
7.没有函数指针,委托,事件的直接提供方式
8.JAVA接口不规定以I开头,这个很烂的思想!
JAVA对C#:
1.匿名内部类,即可以直接new一个含方法实现的接口
(注意:1.是new 接口;2.不同于普通C#的匿名方法,当然也可以说是实现某接口方法的动态对象,但这样说就有点纠结了)
2.观察者接口,直接实现接口则可直接实用
3.线程接口,实现即可实用,但要继承线程类才有start。
4.java提供一大堆强大的数据结构类型以方便其在大性能优化,处理等提供支持,
C#里也有,只是很少用到,哪怕是架构级的,这里不做比较。或者说C#和JAVA在语言上比较意义其实不大!
而且JAVA&C#无论是语法还架构体系上都是N像是的,如spring.mvc<>asp.net mvc,RMI<>Remoting,JMS<>MQ,epoll<>iocp(系统平台相关)等等。。
可以说区别最大的就是:.NET封装很好,自成全套体系、可选择不多(要实现也不难),java各种各样的开源枝节的选择(多大型应用实践的)、显得其体系庞大而已
扯远了。。
OC与C#&Java类/近似的(其实还是有很大不同)
1.self&super,类似this,base
1.Category 分类,相等C#扩展方法
2.Protocol 协议,类似与C#接口,不过一般用于实现委托,如用属性实现接口等
3.Block 代码块,类似于C#委托代码块
4.可变参数,更类似java可变参数写法
5.反射,类似java&C#放射
6.KVC(path)&谓词,类似sql
7.NSUserDefault(plist、偏好设置、加密归档等),有点类似web的cookies
8.id<protocal> ,类似的泛型!
OC与C#&Java不同的
1.指针
2.内存管理(当然也可以ARC)
3.内置KVO,通知功能
4.不会自动拆装箱
5.泛型(OC木有啊!)
还有OC实现设计模式也是N麻烦。。
其他,线程、网络、文件操作基本也是必然类似的方式(不搭架构级的用法都差不多的简单)。。。
PS,
Xcode与Eclipse&VSTS基本结构差不多,但其界面开发、即内置IB的功能(xib/nib文件操作),输出口&操作等很有特点。
OC是弱语法,下次来个OC难点及常见错误发生情况小结。。。其实C&OC彻底搞懂,IOS就不是个事了!
------语言强大在于API,但 just a tool...
OC、C#与JAVA语法特点一些异同(差集&交集)的更多相关文章
- 【iOS系列】-oc中特有的语法
[iOS系列]-oc中特有的语法 oc数据类型: 1,基本类型 2,对象类型 3,id 4,BOOL 5,block 6,SEL 1:category 使用继承关系来扩充一个类,有一个弊病,高耦合性 ...
- Java语法
java语法: 一个java程序可以说是一系列对象的集合,而这些对象都要通过调用彼此的方法来协同工作. 对象: 对象是一个实例,例如:一只猫,它是一个对象,有状态和行为.它的状态状态有:颜色,名字,品 ...
- Java语法糖1:可变长度参数以及foreach循环原理
语法糖 接下来几篇文章要开启一个Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的 ...
- 程序员带你学习安卓开发,十天快速入-对比C#学习java语法
关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...
- Java语法基础(1)
Java语法基础(1) 1. Java是一门跨平台(也就是跨操作系统)语言,其跨平台的本质是借助java虚拟机 (也就是JVM(java virtual mechinal))进行跨平台使用. ...
- C++、Java语法差异对照表
C++.Java语法差异对照表 C++ and Java Syntax Differences Cheat Sheet First, two big things--the main function ...
- jsp页面执行java语法,获取的值在页面调用
首先在页面头引用用到类的包路径 写需要执行的java语法 页面转换引用 <!-- 引用包路径 --> <%@ page language="java" impor ...
- Java语法之反射
一.反射机制 在前面Java语法之注解自定义注解时我们也有提到反射,要获取类方法和字段的注解信息,必须通过Java的反射技术来获取 Annotation对象.那什么是反射呢?JAVA反射机制是在运行状 ...
- Java语法知识总结
一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名为Java: ...
随机推荐
- 关于http和rpc的区别(segmentfault上的回答)
问题最近用了谷歌的grpc,所以对rpc和http有一点疑惑,感觉这两个东西功能上是一样的,rpc某个服务监听某一个方法,客户端调用这个方法,返回相应的数据,和http监听某个方法的路由 返回相应的数 ...
- MySQL 汉字转拼音
一 . fristPinyin : 此函数是将一个中文字符串的第一个汉字转成拼音字母 (例如:"中国人"->Z) )) ) CHARSET utf8 BEGIN ); )), ...
- imx6 uboot启动流程分析
参考http://blog.csdn.net/skyflying2012/article/details/25804209 这里以imx6平台为例,分析uboot启动流程对于任何程序,入口函数是在链接 ...
- hdu2049 不容易系列之(4)——考新郎 错排+组合 一共有N对新婚夫妇,N个新娘随机坐成一排,每个新郎只能选一个, 其中有M个新郎找错了新娘,求发生这种情况一共有多少种可能.
不容易系列之(4)——考新郎 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- JavaScript中trim 方法实现
Java中的 String 类有个trim() 能够删除字符串前后的空格字符.jQuery中也有trim()方法能够删除字符变量前后的字符串. 可是JavaScript中却没有对应的trim() 方法 ...
- IDEA15入门常用设置
打开IDEA设置的快捷键:Ctrl + Alt + S 打开选中的项目属性快捷键:Shift + Ctrl + Alt + S 1.IDEA默认不会使用我们独立安装的Maven配置,需要手动设置,并且 ...
- 【OC学习-13】什么是组合,它和继承是什么关系?
继承有两缺点:(1)当层级越来越多时,假如每一个层级都有实例变量,那么最下层的子类继承的实例变量会超级多,沉重.(2)当消息传递自子类往上时.层级越多,效率越低下. 所以就有了组合.说实话区分继承和组 ...
- Shader 优化笔记
如果shader中采了深度图,但是实际上相机没开深度图的话,会严重降帧. 做uv动画时应该 o.uv1.xy = v.uv * _Layer1_ST.xy + frac(_Layer1_ST.zw * ...
- ChemDraw破解版真的不大好用
一直以来都有很多的用户朋友在网上找ChemDraw破解版使用,但是现在厂商清理的厉害,还有国家对知识产权的保护越来越严格,破解版ChemDraw越来越难找了.大家与其花那么多的时候找破解版的,不如买个 ...
- ios - UILabel_长按复制
1.添加长按的手势 UILongPressGestureRecognizer *longGesture = [[UILongPressGestureRecognizer alloc] initWith ...