JAVA中关于变量的几个注意点
整形变量
整数写在源代码中系统会默认为int型
故有:
long l1=5544444444444L;//(l)
byte | 8 | -127—128(一百) |
---|---|---|
short | 16 | -32 767—32 768(三万) |
int | 32 | -2 147 483 647—2 147 483 648(二十亿) |
long | 64 | -9 223 372 036 854 775 999—9 223 372 036 854 776 000(9后18个0 约九百京) |
浮点型变量
1小数在源码中默认为double
float f1=12.5874F;//(f)
float | 32 | 范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38; 精度6~7位 |
---|---|---|
double | 64 | 范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。 精度15~16位 |
2 支持指数表示法
1.078e+23f (1.078*10^23)
字符型变量
可以将字符直接赋值给整数
char c1='C';
int ic1=c1;//67
但是不能将整数直接赋值给字符(精度问题以下有讲解)
int i1=65;
char ci1=(char) i1;//A
布尔型变量
不能用0和1表示false和ture(与C不同)
二. 类型转换
精度 byte<short<char<int<long<float<double
note:
1、可将低精度的值直接赋值给高精度,变成高精度
2、高精度值复制给低精度需要强制类型转换,失精度。
特殊情况:系统隐含了一个从int转向byte(等低精度)的,并且不失精度的操作
byte b1=10;// √
byte b2=1000;// × 因为失去了精度
char a=65;// √
此情况只局限于将常量赋值给变量的情况
如
byte b1;
b1=3+3;// √
但是
byte b1;
byte b2=3;
b1=b2+3; ×
这是因为,在变量求值时(b2变为3时)byte,short,char类型变量又自动提升为int 型。以下俩种该法都对。
one:
byte b1;
byte b2=3;
b1=byte(b2+3);
two:
int b1;
byte b2=3;
b1=b2+3;
3、不同类型变量混合运算之后得到的结果是精度最高的类型
(注意浮点数在源代码中默认为double型,容易错)
4、基本数据类型和字符串之间的转换
*基本数据类型(转换)—>字符串
String.valueOf(各种基本类型)
int age=22;
String strAge=String.valueOf(age);
*字符串(转换)—>基本数据类型
(1)字符串—>int类型
Integer.parseInt(字符串)
(2)字符串—>float
Float.parseFloat(字符串)
(3)字符串—>double
Double.parseDouble(字符串)
String strMoney=“45.88”;
Float money=Float.parseFloat(strMoney);