Android 为什么选择了Java

STM32迪文屏图标控件保姆级教程 本篇文章主要介绍了在DGBUS平台上使用图标变量的步骤。首先需要在DGBUS中添加一个图标变量控件,并设置图标的属性,包括大小和图标文件的引用。然后生成图标库ICL文件,选择要生成的图标文件并命名ICL文件,将生成的ICL文件引用到图标变量属性中。最后,在单片机程序中编写显示图标的函数,并在主循环中调用该函数即可实现图标的切换显示。文章还提到了一些容易踩到的坑,建议参考者注意避免。 阅读详情

2007年Android 刚刚出生的时候, 看到开发语言是Java , 我很高兴, 因为想在手机端编程的话不用去学Object-C这个看起来怪怪的语言了, 但另一方面我心里也是打了个大大的问号 :因为在很多人眼里, Java 是很慢的, 用Java 来开发手机端的应用, 尤其是游戏, 到底行不行? 


事实证明,用Java来开发应用完全没有问题, Android 这八九年的发展超出了所有的人预料, 在智能手机端的占有率高达80%。 


一个好玩的现象是:这些年大家似乎并不太关注应用程序的性能, 相反关注的是手机的性能, 小米倡导的跑分文化流行一时, 大家拼命的堆砌硬件, CPU从双核,4核 到8核 ,  RAM 从1G 到2G,3G, 4G, 6G...  , ROM从4G 到8G,16G,32G,64G, 甚至128G。


Google 在刚刚发布Android的时候绝对想不到现在的手机性能会过剩成这个样子, 那他们当时为什么选择了Java 作为应用开发语言呢?


想象一下,如果你是当时的负责人, 需要作出决断, 你会怎么选择? 


首先看看C语言, 简单灵活, 贴近硬件, 性能极佳, 指针异常灵活, 是开发系统软件的不二之选, 但是Android要讨好的是无数的应用程序开发者, 如果让他们用C语言去写界面程序, 非累得吐血不可。


那C++是不是好一点?   从C发展而来,面向对象, 性能好,类库也不少,在游戏领域也取得了成功。 

拜托,这个语言复杂到了令人发指的地步, 也没有摆脱C的指针和内存管理的陷阱, 就别去折腾程序员了。 


另外可移植性也是非常重要的考虑因素, 相比电脑,手机平台更加多样化,如果用C或者C++ , 把移植的工作交给程序员做, 一定会被骂死。


C# 怎么样?   看起来不错, 但这是微软平台的东西, 而微软是Google的死对头, 再说了Android 肯定是要开源的, 就不用考虑C#了吧。


Lisp ?   强大的令人发指, 学习曲线之陡峭也令人发指, 不改变编程思维是学不好的, 能用Lisp编程的人都是黑客, 为了吸引广大屌丝,  果断放弃!


Smalltalk ?   估计会的人也不多了。 


有人说Javascript ,  这们只是运行在浏览器中的语言,  而我们要的是能开发原生(Native)应用的语言!


Ruby 呢? 简洁优雅,  别的语言都是对机器友好, 要充分的压榨机器的性能, Ruby 可是号称对程序员最友好的语言啊。


其实Ruby 各个方面都很好, 除了致命的一个因素: 太慢 !  这一点就把Ruby 排除在外了。 


剩下的知名度较高的高级语言也就剩下Python 和 Java 了。 


Python 性能还行, 用的人不少, 也能跨平台。 


Java 语言非常成熟,性能也可以(当然得优化一下), 用的人超级多(全球号称有1000万) , 能把1/10的人拉进来做Android开发那就非常不得了,   社区更加成熟, 跨平台更是java 的招牌。 


所以, 还是选择Java 吧。 


声明:原创文章, 未经授权,禁止转载


热门文章:

我是一个线程

我是一个Java class

Javascript: 一个屌丝的逆袭

Java : 一个帝国的诞生

Basic : 一个老兵的自述

小王的架构师之路

程序员在工作中必备的能力

码农需要知道的潜规则

TCP/IP 之 大明王朝的邮差

CPU 阿甘

IE为什么把Chrome和火狐打伤了

Node.js :我只需要一个店小二

假如我是计算机系老师

假如时光倒流,我会这么学Java

学会编程,而不是学会Java

15年编程生涯,资深架构师总结的7条经验


0?wx_fmt=jpeg

公共号:码农翻身

“码农翻身”公众号由工作15年的前IBM架构师创建,分享编程和职场的经验教训。

MFC-控件-列表显示数据ListControl //首先给控件IDC_LIST1添加一个变量"m_list" BOOL Ctest3Dlg::OnInitDialog() { m_list.InsertColumn(0, _T("ID"), LVCFMT_LEFT, 50); m_list.InsertColumn(1, _T("Name"), LVCFMT_LEFT, 50); m_list.InsertColumn(2, _T... 阅读详情

相关推荐

MFC列表控件CListCtrl的四种视图模式,到底该怎么选?一个例子讲透图标、小图标、列表和报表的区别

本文深入解析MFC列表控件CListCtrl的四种视图模式(图标、小图标、列表和报表),通过学生管理系统案例详细对比各模式的适用场景与实战技巧。帮助开发者根据数据特性和交互需求选择最佳视图,提升Windows桌面应用开发效率。特别适合需要处理高级控件展示的MFC开发者参考。

weixin_42569429的博客 325

为什么Android开发使用Java而不是C++?

选择Java肯定是google经过深思熟虑的抉择,先说能确定的优势, Java有跨平台优势,手机的硬件可能千差万别,Java软件可以只出一套执行档。而C/C++需要针对机型出专用的编译版。 Java有大量人员优势,几乎不用重复学习就能做android。 Java天生是做应用的语言,和C/C++不同,Java的语言和类库都是多年积累的、应用最需要的常用功能。 关于性能,说些个...

weixin_34377919的博客 786

iOS小技能:控件右上角添加文字/icon

文章目录引言I、控件右上角添加文字(Frame)II、控件右上角添加icon(Masonry) 引言 应用场景: 1、因银行代发通道收费每笔1元,为减少代理商提现成本,支持各分佣的合并提现。 2、多张证明材料图片上传 I、控件右上角添加文字(Frame) 因银行代发通道收费每笔1元,为减少代理商提现成本,支持各分佣的合并提现。 UIButton *titBtn = [ControlManager getButtonWithFrame:CGRectMake(scrollView.widt

专注于计算机研发知识和资讯分享 3544

如何在24版本的Android Studio中创建java项目

最开始点击创建empty activity,然后就会出现以上情况,无法选择用Java作为编程语言。因为在新版的Android Studio中默认使用Kotlin作为编程语言。这样就会分别生成MainActivity和activity_main.xml这两个子文件,这种配置方式与旧版直接选定Empty Activity来创建项目是一样的效果!在这里就可以选择Java作为编程语言了。成功创建项目后,可以按如下方式进行文件配置。选定No Activity,点击Next,进入下一个页面。

2201_75400314的博客 5154

C#图标控件使用技巧与实例

本文还有配套的精品资源,点击获取 简介:在C#编程中,图标控件是Windows Forms界面不可或缺的一部分,用于增强用户交互体验。本文将介绍如何在Winform应用中使用 System.Drawing.Icon 类和 PictureBox 、 MenuStrip 等控件来展示图标。内容涵盖从资源文件、文件加载到位图转换的方法,并...

weixin_32324637的博客 926

科研党必备!用Requests+BeautifulSoup升级版Nature爬虫(含PDF下载功能)

本文介绍了一套基于Python Requests和BeautifulSoup的Nature期刊智能爬虫系统,专为科研人员设计,可自动抓取论文标题、摘要及开放获取的PDF文档。系统采用模块化设计,包含请求管理、PDF检测和邮件通知等功能,确保高效合规地获取学术资源,提升科研效率。

weixin_29041767的博客 257

Android为什么选择Java作为开发语言?

Android系统基于Linux,内核和驱动都是使用C/C++语言做开发,为什么又设计一个 Dalvik JVM,然后在SDK 层面选择Java作为开发语言? 首先我们需要选用一个语言来开发本地App。 那么,我们第一步干啥了。 在现有的语言中挑选语言。 那么首先考虑的条件是不火的语言和没前途的语言是不在选择范围的。 ---因为没人用,那么库就会少。因为库少就不会好用。因为不好用

天生爱赞美的博客 1万+

【Attention Is All You Need】Transformer模型精读

Attention Is All You Need》这篇论文奠定了Transformer模型的基础,为深度学习的发展提供了新的方向。Transformer通过自注意力机制和并行化处理显著提升了计算效率和模型性能。然而,Transformer的广泛应用也带来了新的挑战,如计算资源的消耗和对长序列的处理能力等。随着技术的不断发展,研究人员已经提出了诸如Efficient Transformer、Reformer等变种,旨在提升Transformer的效率和适应性。

Lewiz_124的博客 1499

Android为什么选择Java作为开发语言之我见

我们先来看一组数据: 根据调研机构Strategy Analytics的最新统计数据,2014第三季度,iOS和Android已经占据全球首能手机96%的市场份额。 其中,Android依然是绝对的霸主,豪取83.6%,而且相比去年同期又增长了3个百分点,iOS占比为12.3%,同比下降1.1个百分点,差距还是很明显的。接着就是Windows Phone,目前占比4.1%,小幅增长,而

Jack Zhu 1万+

LSCM最小二乘保角参数化

LSCM最小二乘保角参数化 最小二乘思想 已知一组点的数据(x,y) x x1x_1x1​ x2x_2x2​ x3x_3x3​ … xnx_nxn​ y y1y_1y1​ y2y_2y2​ y3y_3y3​ … yny_nyn​ 可以近似为线性关系 y=ax+by=ax+by=ax+b ,目标为确定常数 aaa , bbb ; 解法:找到 aaa , bbb ,使得所有 yiy_iyi​ 与 axi+bax_i+baxi​+b 偏差的平方和 Q=∑i=1n(yi−axi−b)2 Q=\s

weixin_49732532的博客 4254

青岛鼎信Java开发面试题及参考答案(3万字长文,多张原理图)

MySQL 的事务特性有哪些? MySQL 事务具有四个重要特性,被称为 ACID 特性。 原子性(Atomicity):事务是一个不可分割的工作单位,事务中的操作要么全部执行,要么全部不执行。例如,在银行转账场景中,从账户 A 转账到账户 B,包括扣减账户 A 的金额和增加账户 B 的金额这两个操作必须作为一个整体来完成。如果在执行过程中发生错误,比如系统崩溃或者数据库出现故障,那么已经执行的部分必须全部回滚,就好像整个转账操作从未发生过一样。 一致性(Consistency):事务必须

大模型大数据攻城狮的专栏 1089

【Qt应用】Qt部件icon图标:悬停放大,离开复原

Qt默认的鼠标悬停效果比较简单且不易看出,本文通过事件过滤器对鼠标悬停与离开的效果进行了重写。

qq_52924376的博客 1781

SAP ABAP CO核心扩展-ZCKMLQS 多物料工厂的评估数量结构报表(CKMLQS)

CKMLQS 只能查看单一物料工厂的评估数量结构,SAP 没有提供多物料工厂的评估数量结构报表。这篇文章将实现 CO核心扩展-ZCKMLQS 多物料工厂的评估数量结构报表。

SAP李斌,本人承诺所有原创文章均不使用任何AI生成技术,请大家放心阅读。 1091

Flet Icon 控件完全指南:Material 与 Cupertino 图标的使用、样式与原理

`ft.Icon` 是 Flet 中用于在界面上显示图标的显示型控件,支持从内置的 Material(`ft.Icons`)与 Cupertino(`ft.CupertinoIcons`)两套图标集中选取图标,并可对颜色、尺寸、描边粗细、填充度、阴影与混合模式等视觉属性进行精细定制。本文将围绕 [Icon 官方文档](https://link.gitcode.com/i/518444fc06875

gitblog_01034的博客 277

【异常】OpenClaw 飞书端 OpenClaw: access not configured. Pairing code: [] Ask the bot owner to approve with

摘要: OpenClaw飞书机器人交互中出现的access not configured报错,是因用户或组织未配置访问权限触发的拦截提示。报错包含组织单元ID和配对校验码,需管理员审批开通权限。普通用户需提交完整报错信息给管理员处理;管理员可通过执行标准化命令单次审批,或批量配置组织白名单优化权限管理。建议提前梳理权限范围、及时同步组织架构变更,并定期审计权限列表以确保安全合规。

奶爸的编程之路,也就一周冷个三天 372

CloudCompare源码分析之CCCoreLib模块:ICP算法(阅读经典)

CloudCompare源码分析之CCCoreLib模块:ICP算法(阅读经典)

dayuhaitang1的博客 2551

微信小程序icon控件

我们的微信小程序icon控件的使用: 在我们的这个位置的话就是我们的详细的代码等。 <!-- 在我们的这个位置的话就是设置我们的相关的图标文件,然后的话我们的图标名为icon --> <view class="container"> <view class="icon-box"> <!-- 现在的话就是我们的这个icon的图标, 成功的图标的话就是一个绿色的构 --> <icon class="icon-box

qq_45973003的博客 831

【BIM入门实战】Revit创建地形的几种方法及优缺点

Revit在体量和场地选项卡的【地形表面】工具可以创建三维地形,有三种方法:放置点、指定点文件和导入实例文件、倾斜摄影点云技术和InfraWorks地形生成。 文章目录1. 放置点2. 指定点文件3. 导入实例文件4. 倾斜摄影点云技术5. InfraWorks地形生成 1. 放置点 放置点功能位于体量和场地选项卡下地形表面,点开找到放置点,并通过自定义设置点的高程值来创建地形的高程数据。 优点:通过用户自定义高程点来绘制模型,使地形更为精确。 缺点:只适用于面积小的项目,面积太大,人工效率低下。 .

智慧空间实验室 4762

Ikonli完全指南:一款让Java应用免费用遍50+图标库的一站式图标字体方案

Ikonli 是一款面向 Java 应用的**开源图标字体库**,它把 50 多套流行的免费图标库(FontAwesome、Material Design、Bootstrap Icons、Ionicons 等)封装成可直接用于 **JavaFX** 和 **Swing** 的依赖包。只需添加一行 Maven 依赖,你的桌面应用就能用上和 Web 一样精美的图标,且完全免费、无商业限制。 ## 为

gitblog_00588的博客 665

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Ornith-1.0-35B-OptiQ-4bit-REAP-19B实战:optiq serve一键部署本地大模型API服务

Ornith-1.0-35B-OptiQ-4bit-REAP-19B 是基于 mlx-optiq 构建的 MLX 本地大模型:它把 35B 参数剪枝到 18.8B、量化到 4-bit,磁盘占用仅 12.3 GB,只需约 14.5 GB 内存即可在 Apple Silicon 上运行,一条 `optiq serve` 命令就能部署成本地大模型 API 服务,全程无需 GPU 云。 ## 🎯 模型

gitblog_00061的博客 681

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Figma Plugin DS图标系统全解析:50+图标 modifier 类灵活应用技巧

Figma Plugin DS是一个轻量级的UI库,专门为创建Figma插件而设计。这个设计系统提供了完整的图标系统,包含50多个精心设计的图标和丰富的modifier类,让开发者能够快速构建与Figma原生界面风格一致的插件界面。🎯 ## 为什么需要专业的图标系统? 在Figma插件开发中,保持与主程序界面的一致性至关重要。Figma Plugin DS的图标系统提供了与Figma原生图标

gitblog_00116的博客 982

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

leaflet添加自定义控件(二)

注意:项目需求需要放在下方中间,所以自定义了位置,并添加相关样式。2. 把文件放到assets文件夹内。4. 创建自定义控件类。

weixin_54685571的博客 492

WinForm和WPF中使用字体图标ICON

Winform中使用桌面图标: 1.从https://www.iconfont.cn/ 网址下载对应的图标 2.新建一个Winform项目,创建字体类 (1)图中1是在突变网站下载的字体,放到根路径下 (2)引用对应的字体 3.Winform使用范例 注意使用格式如框中所标, 4.Wpf使用范例,与winform的Text使用格式不一致,引用路径方式也不一样 5. ...

cdc8596的博客 2541

android 使用字体图标(Icon Font)

android 使用字体图标(Icon Font) 转载请注明出处: 介绍字体图标是指将图标做成字体文件(.ttf),从而代替传统的png等图标资源。使用字体图标的优点和缺点分别为: 优点: 1. 可以高度自定义图标的样式(包括大小和颜色),对于个人开发者尤其适用 2. 可以减少项目和安装包的大小(特别你的项目中有很多图片icon时,效果将是M级) 3. 几乎可以忽略屏幕大小和分

Jimi_Wu的专栏 9933

MFC控件(四)(图像列表控件CImageList)

<br />CImageList图像列表控件:<br />用于为其他控件添加图标<br />以CImageList的形式存在,使用前先创建。<br />1、在全局区域或对话框类中定义一CImageList对象(常作为对话框成员变量)<br />CImageList  m_ImageList;<br />2、调用CImageList的Create方法创建图像列表控件。<br />3。Add方法添加内容(先向工程中导入一些图标)<br />示例:<br />1、<br />CImageList m_ImageL

4590
上一篇: Java 帝国之Java bean(下)
下一篇: iOS为什么选择了Object-C?
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值