- 类型转换分两种
第一种:自动转换(隐式转换)
当小范围变量赋值给大范围变量时,自动转换
如:
byte a = 1; long c = 1;
short b = a; double d = c;
第二种:强制转换(显式转换)
当大范围变量赋值给小范围变量时,需要强制转换
格式:
小范围类型名 变量名 = (小范围类型名)大范围变量
例如:
Double a = 1;
Float b = (float)a;
Long c = 1000;
Byte d = (byte)c;
- 运算符的学习(6种)
坚持两个原则和封闭式运算(简称两原一封原则)
原则1:参与运算的变量的类型都小于int类型,会先转换为int类型的变量,在运算,运算结果为int类型数值。
原则2:参与运算的变量类型不一致,会自动转换成较大的数值,在运算,运算结果为较大数值类型。
封闭式运算:int,long
例如:
Int max = 2147483647
Int min = max+1//-2147483648
- 算数运算符:+,-,*,/,%,++,--
- 关系运算符:>,>=,<,<=,==,!=
- 逻辑运算符:&&,||,!
- 赋值运算符:=,+=,-=,%=,*=,/=
- 字符串运算符:+
- 三目运算符:格式:boolean表达式?值1:值2;
/*
+,-,*,/比较简单略过
1)%取余运算符也叫取模运算,符号%,相当于除法当中的余数
例如:10%3,相当于10除以3,商3余1,结果为1
用途:用来判断一个数是否能被另一个数整除
如:
Int a = 10;
Int b = 3;
Int c =a%b//余数1
A1 = 100;
B1 = 50;
Int = a1/b1;//输出结果为0,整除
2)++/--自增自减运算,+1或 -1 通常与变量一起使用
如:a++,++a,a--,--a
使用通常有两种情况:
第一种情况:单独使用时
Int a = 1;
a++
System.out.println(a);//2
++a
System.out.println(a);//3
--a
System.out.println(a);//2
--a
--a
System.out.println(a);//0
--a
System.out.println(a);//-1
第二种情况:表达式参与运算时
口诀:符号在前,先运算在赋值
符号在后,先赋值在运算
解析:符号在前,变量先自增或自减,再将新值赋给表达式
符号在后,先将变量的值赋给表达式,然后变量在自增自减
例如:
int a = 1;
int b = a++;
System.out.println(a);//2
System.out.println(b);//1
3)关系运算符:用来判断条件的成立与否
例如:
Int a = 10;
Int b = 5;
Boolean c = a>b;//true
C = a<b;//false
4)逻辑运算符:&&,||,!
一个或多个关系运算起来就是逻辑运算符
int a = 1;
int b = 2;
int c = 10;
int d = 20;
boolean f= a>b && c>d; //false
f= a>b && c<d; //false
f= a<b && c>d; //false
f= a<b && c<d; //true
f= a>b || c>d; //false
f= a>b || c<d; //true
f= a<b || c>d; //true
f= a<b || c<d; //true
!(a<b) //false;
!(a>b) //true
口诀:
&&与:全真为真,一假则假
||或:一真为真,全假则假
!非:非真即假,非假即真
也称之为短路运算符:
当使用&&或||时,如果第一个条件能确定结果,那么就不执行第二个条件。
单个的& 和 | 没有短路现象
5)赋值运算符:
= :将右边的结果赋值给左边的变量
扩展赋值运算符:
+=,-=,*=,/=,%=
如: a+=b; 相当于 a = a+b;
a-=b; 相当于 a = a-b;
a*=b; 相当于 a = a*b;
a/=b; 相当于 a = a/b;
a%=b; 相当于 a = a%b;
int x = 1;
x+=x; //x=2
int y = 10;
y+=1; //y = 11;
int z = 3;
int a = 10;
// z/=a; //z=0
a%=z; //a=1
6)字符串拼接符:+
当+前后只要有一个是字符串类型,就做拼接操作,结果为字符串类型
7)三目运算符:也叫三元运算符
变量 = boolean表达式?值1:值2
int num1 = 10;
int num2 = 20;
int result = num1>num2?num2:num1;
System.out.println("result:"+result);
String re = num1>num2?"小于":"大于";
System.out.println("re:"+re);
double r = num1<num2?5:6.5;
System.out.println(r);
*/