眼看着微软日落西山,PC机逐渐衰微,死守着win32平台等于等死,不得不说世界变化真是快,五年时间安卓份额从1.6%涨到现在81.5%,真是令人感叹移动终端的强大力量。
所以从前天起我开始折腾安卓开发,虽说现在有点晚,不过根据我上手的感觉来看,安卓开发目前还是毕竟容易,今天开始我会把每天学到的东西贴一份到这里,与大家共勉。(希望能坚持下来,嘿嘿)
本文由Lance.Moe原创,多数内容属于主观见解,难免有错漏之处,欢迎跟帖回复指出我的错误,大家共同学习~
1.Java
说到安卓开发,不得不提到就是Java,安卓编程基础就是Java,所以先要能够掌握简单的Java语法。
习惯了C++和win32那种API调用,上手Java可能会感觉很不适应,比如我。原来做一件事,总是想着new或者malloc一片内存,保存到一块指针,API有可能是用返回值返回数据,也有可能从参数把数据传回,参数调用分传值和传址,用完后如果用new创建用delete删除,用malloc创建就用free删除,一切皆内存,没了内存C++和win32开发寸步难行……
现在就要改变这种习惯了,根据我几天使用来看,首先Java不允许自己创建一片内存指针,类似操作只可以用new方式创建一片byte数组,而且用完后不需要也不可以手动释放,所有的内存释放操作由系统进行。并且Java内除了几种基本类型(long,int,byte,float,double,char,boolean)外全部都是对象类型(如Long,Integer,Byte,Float,Double,Char,String等等),基本用不到内存操作,Java基本类型由下表所示。
数据类型 | 描述 | 数据范围 | 备注 |
---|---|---|---|
boolean | 1位整数 | 0和1 | 用作开关状态 |
byte | 8位整数 | -128~127 | 可用来节省内存的使用 |
short | 16位整数 | -32768~32,767 | 也比较省内存 |
int | 32位整数 | -2,147,483,648~2,147,483,647 | 多数时候够用 |
long | 64位整数 | -9,223,372,036,854,775,808~9,223,372,036,854,775,807 | 32位不够用才会选这个 |
float | 32位浮点 | 可节省内存 | |
double | 64位浮点 | 非整数浮点可用 |
由上表可知Java的基本类型和C++基本一致,但是也有不同的:
第一,Java中不存在unsigned,这点我认为是Java的先天残疾,这点要先接受;
第二,C++的long与int在32位以上系统等价,两者都是32位整型占4字节,而Java的long则是64位整形占8字节,与C++的int64等价;
第三,Java的布尔型写作boolean而不是C系所熟悉的bool。
另外还有一点要强调,浮点类型不能直接进行比较,要进行范围比较,这个和C系语言基本一致。
其他在语法的差别很小,要改掉的“坏习惯”比如这个:
在WIN32开发中,我们使用的命名方法是微软推荐的“匈牙利命名法”,其规则是类型小写+名称,类中名称要加g_前缀等等,如:
|
|
而Java开发中,使用的是驼峰命名法,不需要写出数据的类型,变量首字母小写,类名、函数名、属性、命名空间首字母大写,其后每个单词首字母大写,如:
|
|
从C++转型,刚开始几分钟还是很不习惯的,但一旦习惯了这种设定,还是很带感的,嘿嘿。
另外有一个个人习惯,在写C++代码的时候我使用强制转换喜欢这样写:int(bType),这样的话可以看起来更美观,但是很遗憾,Java只可以这样写:(int)bType,以后果然自成一派的东西还是少用呀~
个人认为要注意的就是这些,其他的问题大家应该都非常熟悉啦。下面就开始分条讲述安卓的学习过程。
备份自:https://bbs.ntrqq.net/thread-12439-1-1.html