标识符
类名、变量名、方法名都被称为标识符。
数据类型
- 位(bit):是计算机内部数据存储的最小单位,如11001100是一个八位二进制数(一个字节)。
- 字节(Byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。
- 1B(Byte,字节) = 8bit(位)。
- 字符:指计算机中使用的字母、数字、字和符号。
long与float会在数字后面加上字母来表示,如long a = 30L; float b = 2.1F;
float:有限、离散、舍入误差、大约数、接近但不等于。
最好完全避免使用浮点数进行比较。
金融行业银行一般用BigDecimal。
类型转换与运算符
- 不能对布尔值进行转换。
- 不能将对象类型转换为不相干的类型。
- 在把高容量转为低容量的时候要进行强制转换。
//容量从低到高
低---------------------------------------------->高
byte , short , char--->int--->long--->float--->double
int a= 128;
//强制转换(高转低)
byte b = (byte)a; =====>得到b等于-128,内存溢出
//自动转换(低转高)
double c = i; =====>128.0
(int)13.75; =====>得到13
(int)-22.85F; =====>得到-22
char d ='a';
int e = d+1; =====>得到98
//操作比较大的数的时候,要注意溢出
//JDK7新特性,数字之间可以用下划线来分割
int money = 10_0000_0000;
int years = 20;
int total = years*money; //得到-1474836480,计算的时候溢出了
long total1 = years*money; //还是得到-1474836480,因为在转换之前已经出问题了
long total2 = money*((long)years); //在计算前转换好
//自增运算符(一元运算符)
int a = 3 ;
int b = a++; =====>得到b=3,因为执行完这行代码后,会先给b赋值,再进行a的自增操作a=a+1=4
int c = ++a; =====>得到c=5,因为执行完这行代码后,会先自增,再给b赋值
//位运算(效率极高)
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100 (两数都为1时才为1)
A|B = 0011 1101 (有1即为1)
A^B = 0011 0001 (异或:相同为0,相异为1)
~B = 1111 0010 (取反)
<< 左移
>> 右移
如 System.out.println(2<<3) 得到 16
0000 0010 左移三位得到==> 0001 0000
所以: 每左移一位*2 每右移一位/2
2*2*2*2
- 转换的时候可能会内存溢出,或者精度问题。
变量
变量就是可以变化的量。
java变量是程序中最基本的存储单元,其要素包括变量名、变量类型、作用域。