一、字面常量
比如1,2,3,'A',这些
1.字符串常量,比如"abd"
2.整形常量,比如1,2,3
3.浮点型常量
4.字符常量
5.布尔常量:true false
6.空常量:NULL
二、数据类型(基本数据类型、引用数据类型)
1.基本数据类型:字节型(byte)、短整形(short)、整形(int)、长整形(long)、浮点型(float)、双精度(double)、布尔类型(boolean)
2.引用数据类型:数组、类、接口、枚举
三、变量
1.整形变量(4字节)
int 变量名=数值
public static void main(String[] args) {
int i=9;
System.out.println(i);
System.out.println("最大值:"+Integer.MAX_VALUE);//输出int类型数据的最大值
System.out.println("最小值:"+Integer.MIN_VALUE);//输出int类型数据的最小值
}
int类型数据的取值范围是 2^31-1到-2^31
2.长整形变量(8字节)
long 变量名=数值L
public static void main(String[] args) {
long i=10L;
System.out.println(i);
System.out.println("最大值:"+Long.MAX_VALUE);//Long类型数据的最大值
System.out.println("最小值:"+Long.MIN_VALUE);//Long类型数据的最小值
}
long类型数据的取值范围是 2^63-1到-2^63
3.字节型变量 (1字节)
byte 变量名=数值
public static void main(String[] args) {
byte c=1;
System.out.println(ch);
}
byte类型数据的取值范围是127到-128
4.浮点型变量(4字节)
float 变量名=数值f
public static void main(String[] args) {
float f=1.11f;//如果数值后不加f默认为double类型的数据
System.out.println(f);
}
5.双精度浮点型变量(8字节)
double 变量名=数值
public static void main(String[] args) {
double i=9.08;
System.out.println(i);
}
6.字符型变量(2字节)
char 变量名=值
public static void main(String[] args) {
char ch='周';
char sh='荣';
System.out.println(ch);
System.out.println(sh);
}
7.布尔型变量
boolean 变量名=true
boolean 变量名=false
public static void main(String[] args) {
boolean flag=true;
boolean flag1=false;
System.out.println(flag);
System.out.println(flag1);
}
三、类型转换
1.自动类型转换(隐式转换)
小字节类型数据给大字节类型的变量
public static void main(String[] args) {
byte i=10;//一个字节
int a=0;//4个字节
a=i;
System.out.println(a);
}
2.强制类型转换(显示转换)
大字节类型数据给小字节类型的变量时需要手动进行转换
public static void main(String[] args) {
byte i=10;
int a=0;
//i=a;会报错,错误写法
i=(byte)a;
System.out.println(a);
}
3.不管哪种类型的转换都会有数据精度的丢失
四、类型提升
1.定义:由于CPU通常都是按照4字节为单位读取数据的,为了方便硬件,byte、short这些低于4字节的类型在计算时会先提升为4字节再进行计算
2.类型提升几种情况
1.小于4字节的数据进行计算
public static void main(String[] args) {
byte a=1;
byte b=2;
//错误写法: byte c=a+b;小于四个字节的变量在进行运算的时候要先进行提升,提升为4字节再计算后结果是4字节需要根据情况强制转换
//正确:
byte c=(byte)(a+b);
}
2.两种不一样的数据类型进行运算时字节较小的数据类型会提升为类型较大的那种类型
ublic static void main(String[] args) {
int a=10;
long b=10L;
int c=(int)(a+b);//此时a+b中a被提升为long类型进行计算
}



