Objective-c相比Java有哪些优点?
展开全部
本来从语言特性来说,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++。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询