高转低:强制转换 低转高:自动转换
byte<short<char<in<long<flaot<double
像int、byte等它们都有固定的取值范围,所以要防止内存溢出,不然值会
char c ='a';
int d=c+1;
int money=10_0000_0000;
System.out.println(d);
System.out.println((char)d);
System.out.println(money);
输出:
98
b
1000000000
发生改变
System.out.println((int)23.7); //23
System.out.println((int)-45.89f); //-45
JDK7新特性数字之间可以用_分隔,数字大小不变
int money=10_0000_0000;
System.out.println(money); //1000000000
int years=20;
int total =money*years; //-1474736480 ,计算的时候溢出了
long total2 =money*years; //-1474736480 默认是int,转换之前已经有问题
long total3 =money*(long)years; //这个对20000000000
System.out.println(total);
System.out.println(total2);
System.out.println(total3);
类型转换时,=号后面使用范围大的类型,来实现结果的输出,记住这种方法。
变量
局部变量,必须声明和初始化值(在psvm的main中)
public static void main(String[] args) {
// int a,b,c;
//int a=1,b=2,c=3;这样可读性差
String name = "liuyang";
char x = 'x';
double pi = 3.14;
//局部变量,必须声明和初始化值(在main中)
int i = 10;
System.out.println(i);
System.out.println(x);
System.out.println(pi);
System.out.println(name);
}
}
输出:
10
x
3.14
liuyang
变量的属性
实例变量:从属于对象,如果不自行初始化,这个类型的默认值0 0,0 .所以下面一个是0一个是null 布尔值:默认是false 除了基本类型,其余默认值都是null;
类变量static
类成员变量,局部变量:第一个单词小后面单词大写:monthSalary()驼峰原则 常量名大写字符和下划线 类名:首字母大写和驼峰原则 :GoodMan 方法名:首字母小写和驼
常量: final 常量名=值; final double PI=3.14 常量名一般使用大写字符 前面两个修饰符位置变化不影响,static不能少 static final double PI=3.14;
//main 方法 类变量 多一个static 变量类型 变量名字=new demo8();