一、关键字
1.概述:被java语言赋予特定含义的单词
2.特点:组成关键字的字母全部为小写
二、标识符
1.概述:给类、接口、方法、变量起名字时使用的字符序列
2.规则:只能使用英文大小写字母、数字、下划线和美元符号;不能是以数字开头;不能使用关键字;区分大小写
三、常量
1.概述:在程序执行过程中其值不可改变的数据
2.正数的原码、反码、补码都相同;
负数的原码最高位是符号位,为1;反码的符号位不变,数值位取反;补码是在反码的基础上加1
计算机中数据的运算都是补码进行的。
四、变量
1.概述:其实就是内存中的一个存储空间,用于存储常量数据。
2.作用:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间。
3.特点:变量空间可以重复使用。
五、数据类型
1.基本数据类型:byte、short、int、long、float、double、char、boolean
A:整数 占用字节数
byte 1
short 2
int 4
long 8
B:浮点数
float 4
double 8
C:字符
char 2
D:布尔
boolean 1
注意:
整数默认是int类型,浮点数默认是double。
长整数要加L或者l。
单精度的浮点数要加F或者f。
2.引用数据类型: 数组、类、接口。
3.数据类型转换
(1)boolean类型不参与转换
(2)自动转换
A:等级从小到大
B:byte,short,char -- int -- long -- float -- double
C:byte,short,char之间不相互转换,直接转成int类型参与运算。
(3)强制转换
A:等级从大到小
B:可能会有精度的损失,一般不建议这样使用。
C:格式:
目标数据类型 变量名 = (目标数据类型) (被转换的数据);
(4)关于强制转换的思考:
题目1:
byte b1 = 3, byte b2 = 4, b3,b4;
b3 = b1 + b2;//注意byte类型变量参与运算时,转成int类型,所以需要强制转换
b4 = 3 + 4;//常量,先把结果计算出来,然后看是否在byte的范围内,如果在就不报错,所以正确
结论:因为变量相加,会首先看类型问题,最终把结果赋值的也会考虑类型问题。
常量相加,首先做加法,然后看结果是否在赋值的数据类型范围内,如果不是,才报错。
题目2:
下面的操作结果是什么呢?
byte b = (byte)130;//byte的范围是-127到128,所以需要强制转换。
System.out.println(b);
A:获取130这个数据的二进制。
00000000 00000000 00000000 10000010
这是130的原码,也是反码,还是补码。
B:做截取操作,截成byte类型的了。
10000010
这个结果是补码。
C:1*21-1*28 = -126
题目三:
下面输出什么结果?
//直接输出一个字符
System.out.println('a'); //a
//输出一个字符和一个整数做加法
System.out.println('a'+1); //98
字符参与运算是查找ASCII里面的值
'a' 97
'A' 65
'0' 48
题目四:
下面输出什么结果?
System.out.println("hello"+'a'+1); //helloa1,这里的'+'不是加法运算,而是字符串连接符
System.out.println('a'+1+"hello"); //98hello
System.out.println("5+5="+5+5); //5+5=55,这里的'+'不是加法运算,而是字符串连接符
System.out.println(5+5+"=5+5"); //10=5+5