android学习札记第1章之基本数据类型
1、整型:
(1)byte
byte是用8个0和1组成的1字节数据大小的单位,占用内存大小为1字节,注并不是占用硬盘大小1字节,取值范围是10000000~01111111(-128~127)。如00000000=0,11111111=-1。
换算:
1byte=8bit,1Kbyte=1024byte,1Mbyte=1024Kbyte,1Gbyte=1024Mbyte,1Tbyte=1024Gbyte,1Gbyte=1024Tbyte,
1Gbyte=1024Tbyte
(2)short
short表示短整型数字,占用内存大小是2字节,取值范围是-2^15~2^15-1。
(3)int
int表示整型数字,占用内存大小是4字节,取值范围是-2^31~2^31-1,int型的数字比byte、short、char的范围都大。
(4)long
long表示长整型数字,占用内存大小是8字节,取值范围是-2^63~2^63-1。

2、浮点型
(1)float
float表示单精度浮点型小数,占用内存大小是4字节,取值范围比int大的多。
(2)double
double符合美国工业电器协会浮点数表示规范,表示双精度浮点型小数,占用内存大小是8字节,取值范围比float更大。

3、字符型和布尔型:
(1)char
char表示字符或字符型数字编码,可以进行数字运算,占用内存大小是2字节,取值范围是[00000000 00000000,11111111 11111111]([0,65535],[0,2^16-1])
(2)boolean
boolean是通过true和false表示真假用在判断语句中的数据类型,占用内存大小是1字节。

1、整数的字面值是int类型:
若数字在相应整型允许的范围之内,则直接赋值;反之超过范围,则不能赋值。

2、浮点数的字面值是double类型

3、字面值后缀:L->long、F->float、D->Double。

4、字面值前缀:0x->16进制、0->8进制、\u->char类型16进制。

1、运算结果的数据类型与运算项中范围最大的类型一致。
如:3/2==1,3D/2==1.5(因double比int范围大所以结果是double 的)

2、byte、short、char三种范围比int小的整数会先自动转换成int整数。
如:byte a=2;byte b=3;int c=a+b;

3、整数运算溢出,
如:int a=Integer.MAX_VALUE;a=a+1;//超出int最大值,得到a为最小值,不报错但运算错误。

4、浮点数运算不精确
如:2-1.9==0.10000000000000009。所以浮点数运算并不精确,但有其他办法获得精确的结果。

5、浮点数的特殊值
Infinity无穷大:通过3.14/0或Double.MAX_VALUE*2得到;
NaN非数字:通过负数开平方得到。

1、自动转换
范围小的类型转换成范围大的类型。
byte a=127;
int b=a;
原理:在内存中01111111在前边加3字节的0或1就可转换完毕

2、强制转换
范围大的类型转换成范围小的类型。
int a=255;
byte b=(byte)a;
原理:把前边3字节都强制去掉,最后结果是-1,转换完毕。

1、算数运算符
+ - * / %

2、比较运算符
> >= < <= == !=

1、变量交换:
将用户输入的2个数字交换。

2、求自由落体距离:
已知自由落体的时间,求距离。

3、牛郎织女相会,需要多少只喜鹊。
(牛郎织女星相距16.4光年,光速299792458米/秒,喜鹊0.46米)

4、计算贷款月还款额。
用户输入:p(万)、r(年利率)、m(年)
公式:(p*r*(1+r)^m)/((1+r)^m-1)。
p - 本金(元)
r - 月利率
m - 贷款月数

5、用户输入的年,是否是闰年。
(能被4整除并且不能被100整除,能被400整除)
例子:输入年号:2001,输出:2001年不是闰年。


6、作业:
用户输入半径,求圆的周长和面积。(周长=2πr,面积=πr^2)
