类型转换
自动类型转换
什么是自动类型转换:数据范围小的数值转换为数据范围大的数值
不需要特殊操作,自动转换
//示例一:
int num1 = 10;
long num2 = num1;
//示例二:
float f = 123.4F;
double d = f;
强制类型转换
什么是强制类型转换:数据范围大的数值转换为数据范围小的数值
强制类型转换的格式:小范围数据类型 变量名 = (小范围数据类型)大范围数据类型;
//示例一:
long num1 = 123L;
int num2 = (int)num1;
//示例二:
float f = 123.4F;
long number = (long)f;
注意事项
强制类型转换的时候可能会出现精度损失、数据溢出
//示例一:精度损失
float f = 123.4F;
long number = (long)f;
//示例二:数据溢出
byte num = (byte)307;
System.out.println(num); //51
char类型的值能不能做运算?
//示例:
char c = ‘a’;
int num = c+0;
System.out.println(num); //97 可以做运算
byte、short、char类型在做运算的时候,首先会被提升为int类型
//示例:
byte b1 = 10;
byte b2 = 20;
//byte b3 = b1+b2; //不兼容的类型: 从int转换到byte可能会有损失
int b3 = b1+b2;
System.out.println(b3);
boolean类型的值不能参与运算
boolean b = true;
int num = b+1; //二元运算符 '+' 的操作数类型错误
System.out.println(num); //boolean类型不能参与运算.
运算符
ASCII码表
常见的两种码表:
ASCII码表(小)
Unicode码表(大)
四则运算与取模(算数运算)
- 对于整数来说,除得到的结果是什么
int num = 10/3;
System.out.println(num); //3 除得到的结果是商
2.在运算符中%代表什么意思
int num = 10%3;
System.out.println(num); //1 %代表的意思是取余数
加号的多种用法(算数运算)
+号的常见用法:
1.如果两边是数值型,加号就是加法运算。
//示例一:
System.out.println(10+20); //30 如果两边是数值型,加号就是加法运算
2.如果有一边是字符串类型,一边是数值型,做拼接操作
//示例二
System.out.println(“我”+10); //我10
//示例三
System.out.println(“我”+10+20); //我1020
//示例四
System.out.println(10+20+”我”);//30我
自增自减运算(算数运算)
++:在自身基础上加一
--:在自身基础上减一
两种使用方法:
单独使用:符号在前后在后一样
//示例一
int num = 10;
num++;
System.out.println(num); //11
//示例二
int number =10;
++number;
System.out.println(number); //11
混合使用:
符号在前:先加后用
//示例一:
int number1 = 10;
int number2 = ++number1;
System.out.println(number1); //11
System.out.println(number2); //11
符号在后:先用后加
//示例二:
int num1 = 10;
int num2 = num1++;
System.out.println(num1); //11
System.out.println(num2); //10
赋值运算
- ‘=’符号的含义:右侧的值赋给左侧
- +=、-=、*=、/=、%=
//示例
int num = 10;
num+=20; //等价于 num1=num1+num2;
System.out.println(num); //30
比较运算
比较运算符:> < >= <= == !=
比较运算得到的结果是布尔值
//示例
int num1 = 10;
int num2 = 20;
boolean compare = (num1>num2);
逻辑运算
a.逻辑运算得到的结果是布尔值
b. && || ! 各自在什么情况下等于true或者false
true:
&&:全部为true
||:有一个为true
!:值是false
//示例一:
System.out.println((2>1)&&(3>4)); //true
//示例二
System.out.println((1>2)||(3>4)); //true
//示例三
System.out.println(!(1>2));//true
false:
&&:有一个为false
||:全部为false
!:值是true
//示例一:
System.out.println((2<1)&&(3>4)); //fals
//示例二
System.out.println((1<2)||(3<4)); //false
//示例三
System.out.println(!(1<2));//false
&&和||的短路功能
&&:如果前面的结果是false,则不继续进行后续的判断
||:如果前面的结果是true,则不继续进行后续的判断
//示例一:
int num1 = 10;
System.out.println((1>2)&&(++num1>10)); //false
System.out.println(num1); //10
//示例二
int num2 = 10;
System.out.println((1<2)||(++num2>10));//true
System.out.println(num2);//10
&:不具备短路功能的并且
|:不具备短路功能的或者
//示例一:
int num1 = 10;
System.out.println((1>2)&(++num1>10)); //false
System.out.println(num1); //11
//示例二
int num2 = 10;
System.out.println((1<2) | (++num2>10));//true
System.out.println(num2);//11
三元运算
- 三元运算符格式:
数据类型 变量名 = 条件判断?表达式1:表达式2;
//示例
double weight = 99;
String info = weight>100?”减肥”:”继续吃”;
System.out.println(info);
注意事项:
必须同时保证表达式1和表达式2都符合左侧数据类型
//示例
int score =90;
double sumScore = score>80?10:5.5;
System.out.println(sumScore); //10.0
三元运算符不能直接写:条件判断?表达式1:表达式2;