package com.alanliu.Java8BasicCodeStuding.Java8BasciCode.Unit3.Point3;
//Compute distance light travels using long variables.
/*
Java定义了4种整数类型: byte、short、int和 long。所有这些类型都是有符号的.
正的或负的整数。Java不支持无符号的、只是正值的整数。许多其他计算机语言同时支持有符号和无符号的。
整数类型的宽度和范围:
名称 宽度 范围
long 64 -9223372 036 854 775 808~9 223 372 036 854 775 807
int 32 -2147 483648~2147 483647
short 16 -32768~32 767
byte 8 -128~127
3.3.1byte
最小的整数类型是byte。它是有符号的8位类型,范围为-128~127。
当操作来自网络或文件的数据流时,byte类型的变量特别有用。
当操作与Java 的其他内置类型不直接兼容的原始二进制数据时,byte类型的变量也很有用。
字节变量是通过关键字byte声明的。例如,下面声明了两个byte变量b和c:
byte b, c;
3.3.2short
short是有符号的16位类型。它的范围为-32768~32767。它可能是最不常用的Java类型。
下面是声明short变量的一些例子:short s;H short t;
3.3.3 int
最常用的整数类型是int。它是有符号的32位类型,范围为-2147483648~2147 483 647。
除了其他用途外, int类型变量通常用于控制循环和索引数组。
对于那些不需要更大范围的 int类型数值的情况,您可能会认为使用范围更小的 byte和 short类型效率更高,然而事实并非如此。
原因是如果在表达式中使用byte和 short值,当对表达式求值时它们会被提升(promote)为int类型(类型提升将在本章后面描述)。
所以,当需要使用整数时,int通常是最好的选择。
3.3.4 long
long 是有符号的64位类型,对于那些int类型不足以容纳期望数值的情况,long类型是有用的。
long类型的范围相当大,这使得当需要很大的整数时它非常有用。
例如,下面的程序计算光在指定的天数中传播的距离(以英里为单位):
*/
class Light {
public static void main(String args[]) {
int lightspeed;
long days;
long seconds;
long distance;
// approximate speed of light in miles per second
lightspeed = 186000;
days = 1000; // specify number of days here
seconds = days * 24 * 60 * 60; // convert to seconds
distance = lightspeed * seconds; // compute distance
System.out.print("In " + days);
System.out.print(" days light will travel about ");
System.out.println(distance + " miles.");
}
/**
* 这个程序产生的输出如下所示:
* In 1000 days light will travel about 16070400000000 miles.
* 显然,int 变量无法保存这么大的结果
*
*
*/
}