返回首页  设为首页  加入收藏  今天是:
网站首页电脑主板电脑cpu电脑内存电脑硬盘电脑显卡电脑电源显示器电脑配件电脑维修
相关文章
 为什么Android开发使用Java而…
 最新资讯_存储_DIY电脑硬件频…
 2304分区4K高刷HDMI21 全能电…
 群创首发无限拼接AMminiLED公…
 新技术突破!芝加哥大学开发…
 长信科技2023年第一季度营收…
 新技术突破!芝加哥大学开发…
 PC过冬厂商难熬CPU、GPU、SS…
 根号二笔记本电脑新款发布 性…
 碧蓝档案国际服电脑版哪个模…
 CPU为什么很少会坏?答案揭晓
 她走了一辈子“匍匐在地擦干…
 电脑配置-数码-PC区-虎扑社区
 公司电脑老哥们能帮忙看看这…
 华硕首款接口背插主板 B760M…
 老哥们请教一下这台电脑配置…
 黑苹果注入EDID让Intel 500系…
 在计算机存储器中存储英文字…
 boss内存条有几种英文表达?…
 人们通常购买或升级内存条来…
 在计算机存储器中存储英文字…
 内存英文缩写(手机文件夹全是…
 【Ai时刻】NVIDIA显卡Ai算力…
 AMD和NVIDIA的显卡哪个更好?
 国内啥时候跟进!部分英伟达…
 买显卡更难了:英伟达新显卡…
 AI显卡比游戏卡贵20倍 NVIDI…
 昂达――主板推荐三相供电=稳…
 8相供电够YY! 论06年INTEL五…
 AMD Ryzen7000系列烧毁原因确…
 主板BIOS超频选项
 CPU超频测试
 国产旗舰固态硬盘和国际一线…
 固态硬盘使用的一些注意事项…
 移动硬盘要想用的久这些事项…
 给华为供货被罚3亿美元硬盘公…
 国产固态硬盘白菜价内卷性价…
 翰林汇:着陆电脑三包
 能活着已经是大幸了!电脑瘫…
 电脑医院维修有礼
 修不好的办公设备
 肢体不便并不妨碍他上门服务
 销售渠道o2o(o2o销售什么意思…
 我的卧底传销见闻:人设、游…
 access to do还是doing
 月饼销售渠道的战略意义
 坚果品牌营销策划方案实战思…
 非专业人士显示器选购指南 高…
 中国质量认证中心等共同举办…
 主流显示器推荐→选购新品之…
专题栏目
网络
您现在的位置: 电脑评测网 >> 电脑内存 >> 正文
高级搜索
为什么Android开发使用Java而不是C++?
作者:佚名 文章来源:本站原创 点击数: 更新时间:2023/4/26 8:11:29 | 【字体:

  在线水质分析仪器安卓系统卡顿的根源估计很多人都比较清楚了,最根本最核心的原因就是因为其应用层采用的是Java语言。因为Java是一个跨平台的语言,为了保证跨平台的兼容性,它内置的有Java虚拟机,这个虚拟机的作用就是把应用层的指令解释为机器语言,然后推动硬件去处理,使用者只需要根据平台的不同配置相应的JDK即可,这也就保证了Java的跨平台特性。

  但是正所谓有得必有失,也正是由于虚拟机的存在,用户的指令无法直接经过编译后成为机器码,还需要经过虚拟机的解释才可以,这也就导致了其执行效率是比较低的。

  而反观C++,作为一个偏底层的开发语言,他的指令经过编译后可以直接转化为机器码和硬件进行交互,执行效率就要高很多了。

  使用Java语言,就像是两个语言不互通的人中间隔着一个翻译官在交流,哪怕这个翻译官的水平再高,翻译的速度再快,他也不可能做到实时的翻译,总需要一个处理的过程,交流成本就比较高,效率也比较低。而采用C++语言则就像两个语言相通的人在对话,一个人说的话可以直接被另外一个人听懂,交流效率大大提升。

  所以,虽然在安卓5.0时代,谷歌虽然给安卓系统做了一次大手术,更换了一个全新的效率更高的ART虚拟机,但是很可惜,就像上文所举得例子那样,谷歌只是换了一个翻译能力更强的翻译官而已,并没有解决最本质的问题。

  看到这,肯定会有人要问了,谷歌为什么要选择Java而不去选择执行效率更高的C++呢?难道谷歌的工程师不知道Java存在执行效率低的问题么?

  在2005年,谷歌将安卓团队一行人收入囊中之后(也就是安卓之父安迪·鲁宾团队),本来实际上也没有打算完全开源,而是闭门造车了很长时间,不过始终没有什么大的进展。

  然而在2007年1月,苹果公司率先发布了人类历史上第一款具备象征意义的新一代移动操作系统——iPhone runs OS X(也就是后来的IOS),并且还基于这个系统发布了第一代iPhone。

  这个时候,谷歌也嗅到了移动互联网时代即将来临的气息,但是谷歌同时也意识到,单靠自己是不足以和苹果对抗的,因为谷歌本身只是一个互联网企业并不具备像苹果那么强大的硬件基因(苹果本身就是一家硬件公司),他不具备制造硬件设备并且大规模向外推广的能力(没有渠道)。于是,谷歌想了一个方法——“开源共建”,把已经开发的基本可用的安卓系统完全开源,供其他有兴趣进入智能手机市场的企业进行二次开发。

  这个操作也吸引了世界上绝大多数除了苹果之外的硬件厂商,毕竟这可是当时第一款完全开源的系统,而且谷歌还邀请了众多业界大拿站台(开放手机联盟)。

  系统有了,那么怎么才能吸引开发者去开发安卓应用呢?谷歌的办法很简单——“尽可能地降低开发安卓应用的门槛”,于是,谷歌最终选择了Java作为安卓应用层的开发语言,至于原因主要有两个:

  Java由于其具备良好的跨平台特性,使得其一直以来都是开发行业最炙手可热的一门语言之一,如下图所示,这是目前开发语言的热度排行榜,Java毫无疑问的排在第一位。

  开发人数众多,这也就意味着很多原本做Java的开发者可以几乎毫不费力地转行成为安卓应用的开发者,原本只能开发一些后台程序的Java工程师,突然发现自己也可以利用自己的能力面向C端开发应用程序挣钱了,这确实是一个很好的出路,因为软件工程师本身就是一个对新平台,新事物保持比较高关注度的群体。就这样,安卓的应用体系就在这样的环境下迅速发扬光大。

  而反观C++,C++是一门基于C语言构建而来的语言,而C语言是一门非常古老的语言,更偏向于底层,其整体的开发难度较高,从业者相对比较少,不如Java那么具备活力。

  Java是一个面向数据结构的语言,能操作的都是设计好的数据结构,每一个都是安全的,在内存和程序员之间,还隔着一个JVM虚拟机,程序员可以肆意地发挥,容错率比较高,对于程序员素质的要求也比较低,所以大家可以看到,很多Java工程师只需要培训两三个月就能自己写东西了,而且就算编程思想再怎么差也无所谓,Java本身就是一个没那么低,上线也没那么高的语言。

  而C++不一样,C++是一个面向内存的编程,它就要求开发者拥有比较扎实的计算机基础,并且还需要拥有比较强大的逻辑设计能力,需要考虑到方方面面的细节,如果一个C++工程师的能力太差,他所编出的程序的执行效率还不一定比用Java开发出得更好,这也就在一定程度上限制了C++这门语言的发展,毕竟想要学好C++,上两三个月培训班可是不行的,所以C++实际上是一个下线非常低,上线非常高的开发语言,上手难度更高。

  另外,Java由于编译器的存在,其开发效率更高,开发者无需关注内存布局,对齐,字节序等细节,只需要写好自己的逻辑代码即可,其他的都可以交给虚拟机来执行,在开发速度上也要更快,而C++的开发效率则比较慢。

电脑内存录入:admin    责任编辑:admin 
  • 上一个电脑内存:

  • 下一个电脑内存: 没有了
  •  
     栏目文章
    普通电脑内存 为什么Android开发使用Java而不是C++? (04-26)
    普通电脑内存 最新资讯_存储_DIY电脑硬件频道-YESKY天极网 (04-26)
    普通电脑内存 在计算机存储器中存储英文字母“J”时的是它的… (04-25)
    普通电脑内存 boss内存条有几种英文表达?比如system memor… (04-25)
    普通电脑内存 人们通常购买或升级内存条来提高计算机性能内… (04-25)
    普通电脑内存 在计算机存储器中存储英文字母A时的是它的()… (04-25)
    普通电脑内存 内存英文缩写(手机文件夹全是英文占内存不敢删… (04-25)
    普通电脑内存 内存written什么意思 其实内存出现问题的可能… (04-25)
    普通电脑内存 高带宽内存需求强劲海内外大厂加速布局算力产… (04-25)
    普通电脑内存 微星上架创造者Z17HX studio笔记本电脑 仅供3… (04-25)
    普通电脑内存 【视频】3699 一加Ace2原神定制礼盒发布 18GB… (04-25)
    普通电脑内存 广州海关发布知识产权保护案例涉侵权内存卡、… (04-25)
    普通电脑内存 如何彻底清理华为手机垃圾释放大量内存 华为手… (04-24)
    普通电脑内存 大佬帮我升级一下电脑配置 (04-23)
    普通电脑内存 【世界聚看点】KINGXCON金士刚内存:以其精湛… (04-23)
    普通电脑内存 夸克网盘电脑端备份功能太强大了 谁在说文件过… (04-23)
    普通电脑内存 三星稳居内存芯片市场领导地位但技术优势正在… (04-23)
    普通电脑内存 五一换手机看这三款!512GB大内存最低降到206… (04-23)
    普通电脑内存 原神35版本隐藏成就是什么 手机内存不够怎么玩… (04-22)
    普通电脑内存 电脑内存8g是什么意思?电脑8g内存和16g区别分… (04-22)