类型转换
一、自动类型转换
1、为什么要进行类型转换
存在不同类型的变量赋值给其他变量
2、自动类型转换是什么样的
类型范围小的变量可以直接赋值给类型范围大的变量
二、表达式的自动类型转换
1、概念
小范围的类型会自动转换成大范围的类型运算
2、表达式的最终结果类型是由谁决定的
最终类型由表达式中的最高类型决定
3、注意事项
byte、short、char是直接转换成int类型参与运算的
三、强制类型转换
1、什么是强制类型转换
可以强行将类型范围大的变量、数据赋值给类型范围小的变量
表示为:
数据类型 变量 = (数据类型)变量、数据
快捷键为:
Alt+Enter键
2、强制类型转换注意事项
可能出现数据丢失(溢出)
小数强制转换成整数是直接放弃小数保留整数
运算符
一、实例:一个三位数,将其拆分为个位、十位、百位后,打印在控制台
public class chaifen {
public static void main(String[] args) {
int number = 985;//输入数值
//个位
int ge = number % 10;
System.out.println(ge);
//十位
int shi = number / 10 % 10;
System.out.println(shi);
//百位
int bai = number / 100;
System.out.println(bai);
}
}
二、+符号作为连接符
public class lianjiefu {
public static void main(String[] args) {
//+符号作为连接符的识别
int a = 5;
System.out.println("abc" + 'a');//abca
System.out.println("abc" + a);//abc5
System.out.println(5 + a);//10
System.out.println("abc" + 5 + 'a');//abc5a
System.out.println(15 + "abc" + 15);//15abc15
System.out.println(a + 'a');//102
System.out.println(a + "" + 'a');//5a
System.out.println(a + 'a' + " itheima ");//102 itheima
System.out.println("itheima" + a + 'a');//itheima5a
System.out.println("itheima" + (a + 'a'));//itheima102
}
}
三、自增、自减运算符在变量前后有区别吗?
如果单独使用放前后是没有区别的
非单独使用:在变量前,先进行变量自增/自减,再使用变量
非单独使用:在变量后,先使用变量,再进行变量自增/自减
实例:
public class anli {
public static void main(String[] args) {
int a = 10;
int b = 5;
int c = a++ + ++a - --b + 1 + a--;
//a 10 11 12 11
//b 5 4
//c = 10 + 12 - 4 + 1 + 12 = 31
System.out.println(a);//11
System.out.println(b);//4
System.out.println(c);//31
}
}
四、逻辑运算符
逻辑与"&":有一个为false则结果是false
短路与"&&":有一个为false则结果是false。当前一个为false,后一个就不会执行了。
逻辑或"|":有一个为ture则结果为ture
短路或" || ":有一个为ture则结果为ture,前一个为ture时,后一个就不会执行了
逻辑非"!":!ture=false,!false=ture
逻辑异或"^":相同是false,不同是ture