Objective-c相比Java有哪些优点?
发布网友
发布时间:2022-05-18 23:16
我来回答
共1个回答
热心网友
时间:2023-11-19 06:49
本来从语言特性来说,
Objective-C
和Java比不合适,因为设计理念不同,Objective-C和C++可以比,Java和C#比。Java和C#编译出的代码都需要一个运行环境才能跑,类似
虚拟机
的方式执行代码,Objective-C和C++编译出的代码则可以直接给交给CPU运行。有运行环境的语言,执行效率低很多,优点是开发简单。
不过既然现在这两个是最流行的
移动开发
语言,硬把两者放一起比就相当于拿Google和Apple平台比,还是有意义的:
(1)执行效率:如上面所说,Objective-C效率高得多,所以
Android手机
的电池表现和性能表现很难均衡。Obj-C胜。
(2)开发效率:也如上面所说,Java开发更简便。不过在苹果的努力下,Objective-C开发MacOSX应用已经可以使用GC(自动垃圾回收),开发iOS应用有ARC(自动
引用计数
),反正都不再需要手动管理内存了,以前管理内存是Obj-C程序员的噩梦。Java胜。
(3)跨平台:除了苹果的系统,已经没什么系统应用能用
Objective-C
开发了,但Objective-C可以和C++混合编译,C++的跨平台威力可秒杀Java,所以很多软件都是用C++开发核心、在苹果的平台上用Obj-C做个壳。当然,Java也能调用C++开发的代码,但两种语言格格不入(效率差距、类型差异),开发出的代码一点都不优雅,无法与Obj-C
/
C++的融合媲美。平手。
(4)开源库:Objective-C的开源库丰富程度虽然比不上Java,但Objective-C可以和C++混合编译,C++开源库就可以和Java比了。不过考虑到跨语言开发还是比单语言开发麻烦一些,Java胜。
以上几点权重不一样的,例如移动开发时(1)最重要,所以个人认为Google选Java不是个好选择,C++好得多,可能他们考虑的是C++几乎是流行编程语言中最难学的。
如果Objective-C和C++比,个人认为Objective-C真是全方位都弱于C++。