一、标识符
给类、接口、方法、变量等取名时用的字符序列
如:
public class 类名-标识符{
public static void 方法名-标识符(String[] args){
int 变量或标识符 = 1000;
}
}
二、标识符的命名规范
组成部分
英文大小写字母、数字字符、美元($)符号、下划线(_)、中文
注意事项
- 不能数字开头
- 不能包含除$和_以外的特殊字符
- 不能使用Java关键字
- 标识符区分大小写
- 不要使用中文,防止因为编码格式不统一的时候出现乱码
三、Java关键字
Java提供的具有特殊意义的单词
四、变量
程序执行过程中,它的值会发生变化,用来存储可变数据的一个元素
语法
数据类型 变量名 [=值];
局部变量
方法中的变量,该变量属于该方法的,就是该变量的作用域只在该方法中
注意事项
- 变量 需要初始化,才能使用
- 相同的作用域中不能出现两个变量名相同的变量
五、数据类型的划分
Java是强类型语言,数据类型都定义了明确的数据类型,在内存中为每种数据类型分配了不同的内存空间
类型图
数据类型的范围
注意
- byte类型的范围是-128到127
- char类型的范围是0到65535
- int类型的范围是-2147483648~2147483647
- 1字节=8比特(位)
六、基本数据类型的转换
范围大小:byte<short<int<long<float<double
自动转换:范围小的向范围大的转换,默认转换
如:
byte b=100;
short s=b;
int i=b;
long l=b;
float f=b;
double d=b;
强制类型转换:取值范围大的像取值范围小的转换
语法:目标类型 变量名 = (目标类型)(被转换的数据)
如:
int i=b;
long l=b;
i=(int)l;
相关示例:
byte b2=1;//1为int类型的数字字面量,但是1在byte类型的取值范围内,就直接赋值
byte b3=(byte)128;//128为int类型的数字字面量,但是128不在byte类型的取值范围内,就会报错
//底层逻辑:
//128 --int:0000,0000,0000,0000,0000,0000,1000,0000
//(byte)128:1000,0000
System.out.println(b2);
System.out.println(b3);
个人理解:如果整数超过127,超过多少,他就会从-128倒着回来找,超出多少他就会找多少。
int i=12345678901;//字面量默认int,12345678901超出了int范围,会报错
//12345678901为int类型的数字字面量,但是该数字超过了int类型的取值范围,所以报错
long l1 = 12345678901;
//12345678901L为long类型的数字字面量,该数字没有超过long类型的取值范围,所以不会报错
long l2 = 12345678901L;
float f1 = 1;//int -> float 自动转型
//float f2 = 1.0;//double -> float 注意:应该强制转型
//解决方案1:double强转为float,在内存中先开辟64位长度的空间,再强转成32位的空间,效率更低
float f2 = (float)1.0;
//解决方案2:JVM直接将1.0识别为float类型的数据,效率更高
float f2 = 1.0f;
需要注意的是:Boolean类型与其他类型是不兼容的。