类型转换
byte,short,char —>int —>long—>float—>double
由低到高
1.强制类型转换
//强制类型转换 高的强制转换成低的
int a = 128;
byte b = (byte)a;//内存溢出,结果异常
System.out.println(b);
2.自动类型转换(由低自动向高转换)
//自动类型转换 低的自动与高的对齐
char c = 12;
float d = c;
System.out.println(d);
/*
注意:
1.不能对布尔类型进行转换(布尔类型)——>不能把对象类型转换为不想干的类型
2.不能把对象类型转换为不想干的类型
3.强制类型转换 是把高容量强制转换成低容量
4.转换时可能会出现内存溢出,或者精度问题。
*/
3.剩余问题
//精度问题
System.out.println((int)23.7);// 23
System.out.println((int)-45.89f);// -45
System.out.println("——————————————————————————————————————");
//有关char类型
char f ='a'; //97
int g = f + 1;
System.out.println(g);// 98
System.out.println("——————————————————————————————————————");
//操作比较大的数字 注意溢出问题
//jdk7的新特性 数字之间可用下划线分割
int money = 10_0000_0000;
System.out.println(money);
int year = 20;
int total = money*year;//计算的时候溢出了,先int类型计算后给予total。
long total2 = (long)money*year;
System.out.println(total);// 得到负数——>计算溢出
System.out.println(total2);//结果正常
变量、常量、作用域
1.变量
public class Demo06 {
//放属性(放变量)
/*实例变量 :从属于对象。
1.若不自行初始化,则为这个类型的默认值。
2.布尔类型的默认值为false。
3.除了基本类型(八个),其余默认值都是null。
*/
String name;
int age;
//类变量
static double salary = 2500;//(去掉static则为实例变量)
//main方法
public static void main(String[] args) {
//局部变量,必须声明和初始化。
int i = 10;
System.out.println(i);
//实例变量使用
//变量类型 变量名 = 值
Demo06 demo06 = new Demo06();
System.out.println(demo06.name);
System.out.println(demo06.age);
System.out.println(salary);
}
//其他方法
public void add(){
}
}
变量命名规范
-
见名知意
-
常量名:纯大写字母和下划线 。MAX_VALUE
-
类名:首字母大写和驼峰。GoodMan{}
-
其余变量和方法:首字母小写和驼峰。runRun()
2.常量(final)
public class Demo07 {
static final double pi = 3.14; //static final等修饰符不区分先后顺序
public static void main(String[] args) {
System.out.println(pi);
}
}