优先级
byte,short , char–>int–>long–>float–>double(优先级从低到高)
类型转换
-
不能对布尔值进行转换
-
不能把对象类型转换成不相干的类型
-
在把高质量转换到低容量的时候,强制转换
-
转换的时候可能会出现内存溢出,或者是精度问题
public class Demo05 { public static void main(String[] args) { int i=128; byte b = (byte)i; //内存溢出 //强制转换 (类型)变量名 高到低需要强制转换 //自动转是低到高 System.out.println(i); System.out.println(b); int j=120; double c= 30.00; System.out.println(j); System.out.println(c); System.out.println("============"); System.out.println((int)24.4);//24 System.out.println((int)-45.23f);//-45 System.out.println("==========="); char c1 ='a'; int d = c1+1; System.out.println(d); System.out.println((char)d); } }
public class Demo06 {
public static void main(String[] args) {
int money = 10_0000_0000;
//数字之间可以用下划线来分割
// System.out.println(money);
int years =30;
int total=money*years;
long total2 = money*years;//默认是int类型的
long total3=money*((long)years);//先把一个数转换成long
System.out.println(total3);
}
}
当有很多种类型进行运行的时候,都会变成int类型的
输出的时候要变成长整型long,先转换,在运算
变量
-
每个变量都有类型,类型可以是基本类型,也可以是引用类型、
-
变量名必须是合法的标识符
-
变量声明是一条完整的语句
//数据类型 变量名 = 值;
- 类变量
- 实例变量(实例变量:从属对象,如果不自行初始化,就等于这个类型的默认值,null / 0 ,布尔类型为默认是false,除了基本类型,其他都是null)
- 局部变量(不可以在其他地方用,只能在被定义的那个类里面使用,而且在使用之前必须被定义和声明,否则会出错)
public class Variable{
static int allClicks=0; //类变量
String str="hello"; //实例变量
public void method(){
int i=10; //局部变量
}
}
常量
const 常量被设置之后就不会允许被改变
final 常量名 =值;
final double PI=3.14;
常量名一般要使用大写
public class Demo09 {
static final double PI =3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}