JavaSE Base2
运算中,不同类型的数据转换为同一类型再运算
-
强制转换:从高类型到低类型;低到高顺序 ,(byte,short,char)---int---long---float---double
-
package base;
public class TypeCast {
public static String getType(Object o){
return o.getClass().toString();
}
public static void main(String[] args) {
int i =128;
byte b = (byte)i;//memory overflow 内存溢出
//force typecast (type)blm 高到低
//auto typecast 低到高
System.out.println(i);//128
System.out.println(b);//-128
/*
1. 不能转换布尔值
2. 不能将对象类型转换为不相干的类型
3. 转换时可能存在内存溢出或精度问题
*/
//对于非常大的数
//定义long类型时,数字如果超过int类型的限制,应在后面加上L
//JDK7新特性
int money = 10_0000_0000;
int year = 20;
int total = money*year;//-1474836480
System.out.println(total);
long total1 = money*year;
System.out.println(total1);//-1474836480
long total2 = money*((long)year);
System.out.println(total2);//20000000000
byte by = 1;
byte by1 = 2;
short sh = 1;
short sh1 = 2;
System.out.println(getType(by+by1));//class java.lang.Integer
}
}
变量
-
常量:即不变化的量。
package base;
public class constant {
//修饰符 不区分先后
static final double PI = 3.14;
//常量 大写字母 下划线
//类名:大驼峰
//方法名,变量:小驼峰
public static void main(String[] args) {
System.out.println(PI);
}
} -
变量:有名字,类型,作用域。
-
类变量:在类中直接定义,有static修饰的变量
-
实例变量:在类中直接定义,从属于对象
初始值:整型 0;浮点型 0.0;布尔型 false;引用类型 null
-
局部变量:函数中的变量
package base;
public class Var {
//类变量
static double f = 6000;
//实例变量:从属于对象;基本类型初始值 0 0.0
//布尔值 :false
//引用类型:null
String name;
int age;
public static void main(String[] args) {
//名字 类型 作用域
int a,b,c;//可读性差
char d = 'd';//局部变量
//类变量 实例变量 局部变量
Var var1 = new Var();
System.out.println(var1.name);//null
System.out.println(var1.age);//0
System.out.println(f);
}
} -
-
浙公网安备 33010602011771号