java中的数值类型与转换
java中有八种基础数值类型,五种引用数值类型
基础数值类型
//1个字节,8个二进制数
byte num1;
//2个字节
short num2;
//4个字节
int num4;
//4个字节
long num3;
//4个字节
float num5;
//8个字节
double num6;
//依据字符码表变化
char ch1;
//1个二进制数
boolean num7;
其中byte,short,int,long为整型数据类型,
float,double为浮点型数据类型,
char为字符型数据类型,
boolean为布尔型数据类型
数据类型的转换
自动类型转换
低精度数值类型赋值给高精度类型时,数值类型自动转换为高精度数值类型
byte a=1;
int b=a;
发生运算时数值类型转换为参与运算的最高数值类型
byte a=1;
int b=1;
int c=a+b;
值得注意的是当byte,short,char之间发生运算时,数值类型自动转换为int
byte a=1;
byte b=1;
int c=a+b;
强制类型转换
除了自动类型转换,java还提供了强制类型转换方法,可以将高精度数值类型转换为低精度数值类型
long a=1;
int b=(int)a;
在使用强制类型转换时需要注意,如果数值过大或者数值精度过高会导致数据精度丢失
字符串运算中的特殊转换
当字符串与其他基础数据类型发生加法运算时会自动拼接字符串,使最后的运算结果为字符串引用类型
System.out.println("12"+1);
//结果为121
System.out.println(1+"12"+1);
//结果为1121
System.out.println(1+1+"12"+1);
//结果为2121
若想让字符串转换为数值类型需要使用
int num=Integer.parseInt(str);
//该方法要求字符串全为数字