文章目录
- 一、标识符
- 二、Java关键字
- 三、变量
- 四、数据类型
- 基本数据类型
- 引用数据类型
- 五、基本数据类型的转换
一、标识符
1.含义:给类、接口、方法、变量等取名字时使用的字符序列。
2.命名规范:
(1)组成部分:英文大小写字母、数字字符、 $、_ (字下美人数骆驼)-> 驼峰命名法
(2)注意事项:
a.不能以数字开头;
b.不能包含除了$和_以外的特殊符号;
c.不能使用Java中的关键字;
d.区分大小写;
e.不要使用中文(编码格式不统一时出现乱码)
二、Java关键字
含义:Java提供的具有特殊意义的单词(练习、理解、切记死记硬背)
三、变量
1.含义:在程序执行的过程中,其值会发生变化,就是用来存储可变化的数据的一个元素
变量就是存储单个数据的容器,是内存。
2.语法规则:数据类型 变量名 [= 初始值]; ( [= 初始值] 可写可不写,不影响语法规则)
=:赋值号,将赋值号右边的值赋值给左边的变量。
3.使用的注意事项:
a.变量要先初始化,才能使用;
b.变量定义的作用域问题,同一个作用域变量名不能重名。
四、数据类型
1.含义:Java语言是强类型语言,对于每一种数据都定义了明确的数据类型,在内存中为每种数据类型分配了不同的内存空间。
2.Java数据类型图:
(1)float后的值一定要加上f;
(2)char的值只能是一个字符;
(3)boolean的值只有true和false。
(4)boolean使用4字节表示:因为计算机底层没有boolean类型机器指令,boolean底层使用int来表示。boolean类型的数组中元素用1个字节表示。
3. Java数据类型取值范围表:
注意:byte、char、int类型的取值范围
1字节(计算机存储的最小单位)=8个比特(位)(计算机以二进制来存储数据)
五、基本数据类型的转换
1.数值型的取值范围:byte < short < int < long < float < double
2.自动转换:取值范围从小往大的转,会默认转换(底层使用最高位(符号位)补位)
byte b = 10; //0000,1010
short s = b; //0000,0000,0000,1010
int i = s; //0000,0000,0000,0000,0000,0000,0000,1010
long l = i;
float f = l;
double d = f;
System.out.println(d);
直接将byte转成double:
byte b1 = 123;
double d1 = b1;
System.out.println(d1);
3.强制转换:取值范围从大往小的转,会强制转换
语法结构:目标类型 变量名 = (目标类型)(被转换的数据);
double d = 123.123;
float f = (float)d; //1.将double类型的变量d强转为float类型 2.再将强转后的数据赋值给float类 型的变量f
long l = (long)f;
int i = (int)l;
short s = (short)i;
byte b = (byte)s;
System.out.println(b);
直接将double转成byte:
double d2 = 123.123;
byte b2 = (byte)d2;
System.out.println(b2);
4.特殊点:
a.案例一
byte b1 = 1; //1为int类型的数字字面量,但是1在byte类型的取值范围内,就直接赋值
byte b2 = 128; //报错:128为int类型的数字字面量,但是128不在byte类型的取值范围内,所 以报错
解决方案:byte b2 = (byte)128;
b.案例二
int i = 12345678901; //12345678901为int类型的数字字面量,但是该数字已经超过了int类型的 取值范围,所以会报错
c.案例三
long l1 = 12345678901; //12345678901为int类型的数字字面量,但是该数字已经超过了int类型 的取值范围,所以会报错
long l2 = 12345678901L; //12345678901L为long类型的数字字面量,该数字没有超过了long类 型的取值范围,所以不会报错
d.案例四
float f1 = 1; //int转float:自动转型
float f2 = 1.0; //double转float:强制转型
解决方案1:float f2 = (float)1.0; //将double(64位)转float(32位),浪费空间
解决方案2:float f2 = 1.0f; //直接认为1.0为float(32位),效率更高
e.案例五
char c = 'a'; //ASCII - 97
int i = c;
System.out.println(i); //97
5.数字字面量:代码中的数字 (数字为整数默认类型为int,数字为小数默认类型为double)