1.自动类型转换:小范围的数据存储到大范围的变量中
2.强制类型转换:强制类型转换:大范围的数据存储到小范围的变量中。
注意:有可能存储的了。也有可能大范围的数据超过了小范围数据的范围,这个时候数据就会出现精度丢失
ublic static void main(String[] args) {
//自动类型转换:小范围的数据存储到大范围的变量中
byte num1 = 100;
int num2 =num1;
System.out.println(num2);//100
//强制类型转换:大范围的数据存储到小范围的变量中。注意:有可能存储的了。也有可能大范围的数据超过了小范围数据的范围,这个时候数据就会出现精度丢失
int num3 =129;
byte num4 =(byte)num3;
System.out.println(num4);//120
}
如果小数和整数之间强转可能会损失精度
package cn.bdqn.Teacherdemo1;
public class Demo3 {
public static void main(String[] args) {
int before = 20; // apple笔记本市场份额
double rise = 9.8; // 增长的份额
int now = (int)(before + rise); // 现在的份额
System.out.println("现在的份额:"+now);//29 会丢失数据精度
}
}
3. 根据运算符的功能,我们把运算符分为一下几类
算术运算符 、 赋值运算符 、 关系运算符 、逻辑运算符、 位运算符 和其他运算符
1.算术运算符
用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。复合算术运算符:+= -= *= /= %=
2.关系运算符
用于比较运算。包括大于(>)、小于(=)、小于等于(<=)和不等于(!=)六种。
关系运算符的运算结果为布尔值。要么为true,要么为false。
=为赋值运算符,==为等于运算符
>、<、>=、<= 运算符的优先级别高于==、!=
>、<、>=、<=运算符只支持数值类型的数据比较
3.逻辑运算符
用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
4.位操作运算符
参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<>)六种。
5.赋值运算符
用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值
(&=,|=,^=,>>=,<<=)三类共十一种。
4.这里给大家区分下++ 自增 -- 自减的用法
++或--在变量前和变量后的区别
对于单个变量来说,++或者--不管在变量前还是变量后,变量都会自增1或者自减1
对于参与运算的变量来说,++或--在变量后,变量是先去参与运算,参与运算完毕之后,再进行自增或者自减
对于参与运算的变量来说,++或--在变量前,变量先自增或者自减,自增或者自减完毕之后,再参与运算
public class Demo7 {
public static void main(String[] args) {
int num1 = 10;
int num2 = num1++;
System.out.println("num1=" + num1);// num1=11
System.out.println("num2=" + num2);// num2 = 10
int num3 = 10;
int num4 = ++num3;
System.out.println("num3="+num3);//num3 = 11
System.out.println("num4="+num4);//num4 = 11
}
}
5.用赋值运算符可以实现数据的交换
需要个条件:第三方暂时储存
=
//运算符operator
public class Operator {
public static void main(String[] args) {
/*
* 借助赋值运算符实现数据交换
* 需要带三者暂时存储
*/
int n=5;
int t =6;
int in;
in = n;
n =t;
t = in;
System.out.println(n+" "+t);//n=6,t=5
}
}