今日学习总结:
变量的四种表达方式!
//第一种:直接声明变量类型并赋值
int a =10; //int 是整数类型, a是变量,也就是标识符,10就是字面值
//整句理解为:讲字面值10赋值给标识符变量a,a的类型是int 整数类型。
double d = 20;//double是浮点类型,也就是小数类型,d是变量,20是字面值,=可以理解为赋值。
//第二种:先给变量声明类型,再给初始值。
int b;//先给变量声明类型
b= 11; //再给变量b赋值
//第三种:同一种类型变量,可以给多个变量声明赋值、
int x=10, y =20,z=30,n=40,m=50;(注意变量之间用逗号隔开,编辑代码时都用的是英文符号)
//第四种:同一种类型变量,先声明同类型多个变量,再赋值。
int x,y,z,m,n;(注意用逗号隔开,分号收尾)
x=10;
y=11;
z=12;
m=13;
n=14;
特别注意:变量都是在方法体中(public static void main(String[] args){},这里{}就是main方法的方法体)编辑的,声明完并且要赋值,不然是无法成功输出的。必须满足声明变量类型和赋予初始值才能成功输出。
八种基本数据类型!
基本数据类型总共有 :整数数据类型,浮点数(小数)数据类型,字节数数据类型,逻辑数据类型。
整数数据类型:byte,short,int,long.
浮点数(小数)数据类型:float(单精度),double(双精度).
字节数据类型:char
逻辑数据类型:boolean
各个基本数据类型的范围:
最小的就是byte:范围是-128到127之间。【记住】
Short: 记住±3万左右的范围。
Int :正负21亿左右的范围。
Long:很大很大。
案例:byte b = 4;
short s = 2999;
int s = 10000000;
long l =999999L
如上编译代码会正常编译成功。
byte b = 128;//编译出错,因为byte的范围是-128到127之间,超过了范围。
Short s = 39999;//编译出错,超出范围
Int i = 2222222222;//编译出错,超出范围。
Long l = 2222;//编译出错,特别注意。
Long 的范围非常大,但是要记住,系统默认的是int类型。也就是在给long赋值2222的时候,系统把2222放到int类型容量中,再生成一个变量为l的long类型容量,最后才把2222从int中转到long容量中去。由于long的范围比较大,int比long小,大转小容易造成溢出(数据损失),所以系统默认编译出错。输出失败。
特别注意:整数数据类型使用时,系统默认数据类型为int,所以再使用long数据类型时,要在后面加上L。记住用Long类型加L就好了
float和double是小数数据类型。要清楚,小数是比整数范围要大的,所以float和double的范围都比long还要大,double比float的范围还要宽广。
Float f = 3.14;//编译失败,系统无法输出,理由如上。
Double d = 3.1415926;;//编译成功,范围之中
Float f = 3.1415f;//编译成功,成功输出。
特别注意:浮点数据类型使用时,系统默认使用double类型,使用float类型时,记得加上f/F,理由和上面long的道理一样,系统默认为double,double是双精度,转到float会造成精度的损失,所以系统默认输出失败。
char的范围是0到65535.【记住】
Char 的输入要满足 :单引号,单个汉字/单个字母 。
案列:char c = ’a’;
char c1 = ‘中’;
以上为正常书写。
Char d =’hello’;//输出失败,hello不是单个字母。
Char f = ‘中国’;//输出失败,只能是单个汉字。
Char g = “a中”;//输出失败,只能是单个字母/汉字,最重要的是单引号。
范围比较:byte < short(char) < int < long < float < double
各个数据类型的单位(字节)
Byte 1字节
Short 2字节
char 2字节
Int 4字节
Long 8字节
Float 4字节
Double 8字节
Boolean 1字节(boolean只有true和false两种结果)
boolean = false;
boolean = true;
数据类型转换
数据类型转换分为自动转换和强制转换。
自动转换条件:范围小的数据类型向范围大的数据类型转换。
案例:
byte b = 12;
Short s = b;
byte b = 12;
Int i = b;//输出成功,自动转换,小范围的转大范围的。
强制转换条件:大范围转小范围:
案例:int a = 10;
Byte b = a;//输出失败,溢出现象,造成数据损失。
Short s = 12;
Byte b =s;//输出失败,溢出现象,造成数据损失。
修正:加上强制转换符。
Int a = 10;
Byte b =(byte)a;
Int a = 10;
Short b =(byte)a;//byte转short为小转大。
Short s =12;
Byte b = (byte)s;
注意:强制转换 要转换为哪个类型,强制转换符的范围最低为本类型。
千万要注意啦:如果 byte short char在运算中,那么一定要切记系统默认数据类型为int.
Byte b =12;
Short s = 13;
Short a = b+s;//注意,这种是输出失败的,切记啦,一定要记得系统默认的数据类型是int;记住byte,short,chars这三个在运算的时候,系统是默认为int。也就是在第三步short a =b+s时,此处的b和s是int类型,所以short a = b+s;会显示错误。此时就需要强制转换啦。
Short a =(short)(b+s);若为自动转换,则 不必理会,即把第三步改成int a或者long a就是自动转化啦。
更要记住:两个不同类的数据运算时,结果的类型是那个范围大的数据类型。
例:double d = 3.14159;;
Int i = 9;
Double C = d+ i;
c在不强转的情况下就是double类型。
如果输入 int c = d +i;那么一定会报错。