首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Java中的数目字学习

2012-10-30 
Java中的数字学习Java中的数字有 double、float、long、int、byte等,甚至char都可以转化成数字?学习良葛格老是

Java中的数字学习

Java中的数字有 double、float、long、int、byte等,甚至char都可以转化成数字

?

学习良葛格老是的笔记,又有些领悟,真是书读百遍每回都不一样!

?

1. 默认类型

Java中写下的数字,默认会有一个类型,整数默认为int型,浮点数默认为double型。这一点非常容易犯错,理想中认为后面的数字应该服从我定义的类型

? 例如:

??? short a = 5;//编译报错

?

2. 大小限制

不要超过本身的最大最小值

? 例如:

??? int类型4B,最大2^31 - 1? 最小-2^31

??? 如果超出限制值,在直接赋值的时候会编译报错,但是在运算中不会报错,

? 例如:

??? int ageInt = 365 * 24 * 60 * 60 * 1000;//编译不会报错

?

3. 自动类型转化保护

在运算中,如果有更高的类型参与,那么运算中默认使用最高类型来保存运算。

但是运算是按照运算需要来转化的,而不是一次到位。在运算顺序还没有到达更高类型的时候,依然不会自动转型到最高类型。

? 例如:

??????? short shortN = 2;
??????? int intN = 2147483647;
??????? long longN = 3;
??????? long rs = longN * (shortN * intN);//here!!!
??????? System.out.println("rs:" + rs);

??? 在运算中先运算(shortN * intN),此时最高类型为int型,因此()运算结果保存为int型,而并没有一步到位为long型

?

? 再例如:

??????? long c = (long)1073741824 * 2;//先转型后运算
??????? long d = (long)(1073741824 * 2);//先运算后转型,此处没有(long)来转型也不会编译错误

?

?

热点排行