数据类型之间是可以相互运算的,但在运算前要进行类型转换
int i =128
byte b = (byte)i;
system.out.println(i)
system.out.println(b);
/i输出为128,b输出为-128 128是超过了byte的范围的,但在int范围内,所以输出时要在i前面加byte,强制转换导致byte内存溢出,所以变成了-128,而自动转换时,由低转换到高不用加任何/
由低到高的排列顺序为
byte,short,char-->int-->long-->float-->double
注意点
-
不能对布尔值进行转换
-
不能把对象类型转换为不相干的类型
-
在把高容量转换为低容量的时候,强制转换
-
转换的时候可能存在内存溢出,或者精度问题!
int money = 10_0000_0000; /JDK7新特性,数字间可以用下划线分割/
int years = 20;
int total = money*years;//-1474836480,计算溢出了
long total2 = money*years;/默认是int计算,再转换成long类型,转换前已经存在问题/
long total3 = money*((long)years);/把一个数转换为long提升了整个表达式,最后就能正确输出为20000000000/
变量
定义
-
Java是一种强类型语言,每个变量都必须声明其类型,类型可以是基本类型,也可以是引用类型。
-
每一个变量声明都必须以分号结束
-
Java变量是程序中最基本的存储单元,其要素包括变量名、变量类型、作用域。
-
不建议一行里定义多个值 //数据类型 变量名 = 值;多个变量名用逗号隔开 int a = 1,b = 2,c = 3;
作用域
类变量:static(基本的) int //类变量加static修饰
实例变量没有关键词,从属于对象,写在方法外,如果不自行初始化,就会输出这个类型的默认值 0 0.0 ,布尔值的默认值是false,除了基本类型,其余的都是null
局部变量写在方法里 public void method(){int i = 0;}
常量(constant)
-
初始化后不能再改变的值,比如写游戏时规定长宽高
-
final 常量名 = 值;
-
常量名一般用大写
-
常量是特殊的变量
-
修饰词不分先后,static final 和final static一样
变量书写规范
-
所有变量名、方法、类名:见名知意
-
类成员变量:首字母小写和驼峰原则
-
局部变量:首字母小写和驼峰原则
-
常量:大写和下划线
-
类名:首字母大写和驼峰原则
-