1、字面常量
常量:程序运行期间,固定不变的量。
上图中"hello world", 666,3.14,'A',true,false都是常量,将其称为字面常量。
字面常量的分类:
(1)字符串常量:用" "括起来的常量,比如"abcde","你好"。
(2)整型常量:程序中直接写的数字(注意没有小数点),比如100,520。
(3)浮点数常量:程序中直接写的小数,比如3.14,9.98。
(4)字符常量:用' '括起来的单个字符,比如'A',' 1 ','张'。
(5)布尔常量:只有true和false两种。
(6)空常量:null。
2、数据类型
在Java中,数据类型主要分为基本数据类型和引用数据类型。
基本数据类型又分为四类八种:
四类:整型、浮点型、字符型、布尔型
八种:
注意:
(1)不论是在32位系统还是64位系统,int都占用4个字节,long都占用8个字节。
(2)整型和浮点型都是有符号的。
(3)整型默认为int,浮点型默认为double。
(4)字符串属于引用数据类型,该种类型后续介绍。
(5)计算机中表示空间大小的单位有:bit(比特位),byte(字节),kb,mb,gb......
其中,1byte=8bit,1kb=1024byte,1mb=1024kb,1gb=1024mb......
3、变量
变量:顾名思义就是经常改变的量,数据类型就是用来定义不同种类的变量。
定义变量的语法格式:数据类型 变量名 = 初始值;
注意:
(1)在给变量赋初始值时,值不能超过该变量类型的取值范围,否则会导致溢出。
(2)变量在使用之前必须要赋初始值(如果没有合适的初始值,可以先赋0),否则编译会报错。
(3)布尔类型的变量只有两种取值:true表示真,false表示假。布尔类型和int不能相互转换,不存在0表示false,非0表示true的用法。
4、类型转换
在Java中,当参与运算的数据类型不一致时,就会进行类型转换。Java中类型转换主要分为两类:自动类型转换(隐式)和强制类型转换(显式)。
自动类型转换(隐式):即代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。
特点:数据范围小的转为数据范围大的时会自动进行。
强制类型转换(显式):当进行操作时,代码需要经过一定的格式处理,不能自动完成。
特点:数据范围大的到数据范围小的。
注意:
(1)不同数据类型的变量之间赋值,表示范围更小的类型能隐式转换成范围较大的类型。
(2)如果需要把范围较大的类型赋值给范围小的,需要强制类型转换,但可能导致精度丢失。
(3)将一个字面值常量进行赋值的时候,Java会自动针对数字范围进行检查。
(4)强制类型转换不一定能成功,不相干的类型不能互相转换。
5、类型提升
不同类型的数据之间相互运算时,数据类型小的会被提升为数据类型大的。
int与long之间,int会被提升为long
byte与byte之间
byte和byte都是相同类型,报错的原因是,虽然a和b都是byte类型,但在计算a+b时会先将a和b都提升成int,再进行计算,而计算的结果也是int,这时把int赋给byte,就会报错。
由于计算机的CPU通常是按照4个字节为单位从内存中读写数据,为了硬件上实现方便,诸如byte、short这种低于4个字节的类型,会先提升为int,再进行计算。
正确的写法:
6、字符串类型
在Java中使用String定义字符串类型,比如:
字符串和整型数字之间的相互转换:
int转换成String:
String转换成int:
(本篇只是简单认识字符串)