文章目录
基本数据类型之间的运算规则
1.自动类型提升
- 当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
byte 、short、char --> int --> long --> float -->double
注:
byte、short、char三种类型的变量做运算(byte、short、char任意两者之间或shor与short,byte与byte,char与char)时,结果为int
2.强制类型转换
1.使用强制转换符()。
2.强制类型转换,可能导致精度损失。
经典编码情况
整型常量,默认类型为int,浮点型常量,默认类型为double
//编码情况01
long l =123213;//不加L,123123属于常量,默认为int类。用long来存储,小转大。编译通过
float f1 = 12.3;//不加f,12.3属于常量,默认为double类型,用float来存储,编译不通过。
//编码情况02
byte b =12;
byte b1 = b+1;//应改为--int b1 = b+1;
byte b2 = b+12.3;//应改为--double b2 = b +12.3;
练习题
判断下列代码编译是否通过
//1.
short s = 5;
s = s-2;
//2.
byte b = 3;
b = b+4;
b = (byte)(b+4);
//3.
char c = 'a';
int i = 5;
float d = .314F;
double result = c+i+d; //注意结果 c在运算时以97参与运算。
//4.
short s1 = 5;
byte b1 = 3;
short t = s1+b1; //编译不通过,short与byte运算得到的为int类型数据
String
- String属于引用数据类型
- string可以和8种数据类型做运算,且只能是连接运算,结果仍为string
注意点
//1.
String str1 = 4; //此方式声明String变量编译不通过
String str1 = 4+"";
System.out.println(str1);
//2.将String类型转为int类型
//错误方式
// int num1 =str1;
// int num1 = (int)str1;
int num1 = Integer.parseInt(str1);
System.out.println(num1);
//3.不会打印出f
String str2 =3.5f+"";
System.out.println(str2);
练习题
//练习1
char c = 'a';
int num = 10;
String str ="hello";
System.out.println(c+num+str);
System.out.println(c+(num+str));
System.out.println(c+str+num);
System.out.println(str+c+num);
//练习2 打印 * *
System.out.println("* *");
System.out.println('*'+'\t'+'*'); //数字
System.out.println('*'+"\t"+'*'); //duigou
System.out.println('*'+'\t'+"*"); //数字*
System.out.println("*"+"\t"+"*");//duigou