类型转换
进行类型操作之前,需将类型转换为相同类型再进行操作
注意事项
- 不能对布尔值进行转换
- 不能将对象类型转换为不相干的类型
- 高转低需强制转换,低转高自动转换
- 转换时注意内存溢出以及精度问题
强类型转换
高转低需要用到强类型转换。
低到高排序为
//由高转低强制转换
int i=128;
short i2 =(short)i; //输出128
byte i3 =(byte)i; //输出-128 !存在溢出问题
自动类型转换
低转高类型将自动转换
//例如
int j1 =128;
double j2 = j1;
System.out.println(j1); //输出128
System.out.println(j2); //输出128.0
//精度问题
System.out.println((int)27.58); //输出了27。
System.out.println((int)45.595F); //输出了45
溢出例子
int money=10_0000_0000; //JDK新特性数字之间可以用下划线分割,不影响输出结果。
int year=20;
long total = money*year;
System.out.println(total); //虽然将类型转换为long,但是输出结果为-1474836480乱码。
//原因,在money*year中,默认就为int,在转换之前已经存在溢出问题。需在操作之前将类型转换。
long total = money*(long)year; //输出为20000000000 正确
变量
java变量是程序中最基本的存储单元,其要素包含有,变量类型、变量名和作用域。
注意事项
- 每个变量都有类型,可以是基本类型,可以是引用类型。
- 变量名名必须是合法的标识符。
- 声明变量后需要以分号结束。
//变量类型 变量名 值
char i ='哈';
int j = 12;
变量作用域
作用域分三种
-
类变量
public class demo07 { //类变量 static static double salary =2500; public static void main(String[] args) { System.out.println(salary);//输出2500.0 } }
-
实例变量
public class demo06 {
//实例变量:从属于对象; 如果不设置变量初始化,会自动设置这个类型默认值。
//布尔值:默认为false
//除了基本类型,其余的都时null
String name;
int age;
public static void main(String[] args) {
//变量类型 变量名字 =new demo06;
demo06 demo06 = new demo06();
//快捷方式new demo06().var
System.out.println(demo06.age);
//没设置初始值age,默认输出 0
System.out.println(demo06.name)
//没设置初始值name,默认输出 null
}
}
- 局部变量
public class demo05 {
public static void main(String[] args) {
int i =0; //局部变量,必须设置初始值
}
}
常量(Constant)
常量名一般使用大写字符
常量值被设定以后,程序运行过程中不允许被改变。
final 类型 常量名=值;
final double PI=3.14;
//示例
public class demo08 {
static final double PI =3.14;
//final static double PI =3.14; 修饰符不存在先后顺序。
public static void main(String[] args) {
System.out.println(PI);
}
}
变量命名规范
- 所有变量、方法 、类名:见名知意
- 类成员变量—首字母小写和驼峰原则:monthSalary, 除了第一个单词外,后面的单词首字母大写 lastName
- 局部变量—首字母小写和驼峰原则
- 常量—大写字母和下划线:MAX_VALUE
- 类名—首字母大写和驼峰原则 Man, GopdMan
- 方法名—首字母小写和驼峰原则 run( ), runRun()