我的Android学习笔记(1)

眼看着微软日落西山,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基本类型由下表所示。

数据类型描述数据范围备注
boolean1位整数0和1用作开关状态
byte8位整数-128~127可用来节省内存的使用
short16位整数-32768~32,767也比较省内存
int32位整数-2,147,483,648~2,147,483,647多数时候够用
long64位整数-9,223,372,036,854,775,808~9,223,372,036,854,775,80732位不够用才会选这个
float32位浮点可节省内存
double64位浮点非整数浮点可用

由上表可知Java的基本类型和C++基本一致,但是也有不同的:

第一,Java中不存在unsigned,这点我认为是Java的先天残疾,这点要先接受;

第二,C++的long与int在32位以上系统等价,两者都是32位整型占4字节,而Java的long则是64位整形占8字节,与C++的int64等价;

第三,Java的布尔型写作boolean而不是C系所熟悉的bool。

另外还有一点要强调,浮点类型不能直接进行比较,要进行范围比较,这个和C系语言基本一致。

其他在语法的差别很小,要改掉的“坏习惯”比如这个:

在WIN32开发中,我们使用的命名方法是微软推荐的“匈牙利命名法”,其规则是类型小写+名称,类中名称要加g_前缀等等,如:

1
2
3
char [] szName;
int nAge;
private int g_nID;

而Java开发中,使用的是驼峰命名法,不需要写出数据的类型,变量首字母小写,类名、函数名、属性、命名空间首字母大写,其后每个单词首字母大写,如:

1
2
int studentCount;
public class DataBaseService;

从C++转型,刚开始几分钟还是很不习惯的,但一旦习惯了这种设定,还是很带感的,嘿嘿。

另外有一个个人习惯,在写C++代码的时候我使用强制转换喜欢这样写:int(bType),这样的话可以看起来更美观,但是很遗憾,Java只可以这样写:(int)bType,以后果然自成一派的东西还是少用呀~

个人认为要注意的就是这些,其他的问题大家应该都非常熟悉啦。下面就开始分条讲述安卓的学习过程。

备份自:https://bbs.ntrqq.net/thread-12439-1-1.html