【例3.1】验证如果数据过长则可能出现的问题
1 class DataDemo01{ 2 public static void main(string[] args){ 3 int nun=99999999999999999999999;//定义整型变量,超出长度范围,错误 4 } 5 }
程序运行结果(报错)
【例3.2】将整型的最大值加1和加2
1 class DataDemo02{ 2 public static void main(String[] args){ 3 int max = Integer.MAX_VALUE; 4 System.out.println("整型的最大值:"+max); 5 System.out.println("整型最大值 + 1:"+(max+1)); 6 System.out.println("整型最大值 + 2:"+(max+2)); 7 } 8 }
程序运行结果
✎ 当最大值加上1时,结果变成表示范围中最小的值;当最大值加上2时,结果变成表示范围中次小的值。(数据类型的溢出现象)
✎ 程序中要做数值范围的检查,防止数据溢出
【例3.3】使用强制类型转换,防止数据溢出
1 class DataDemo03{ 2 public static void main(String[] args){ 3 int max = Integer.MAX_VALUE; 4 System.out.println("整型的最大值:"+max); 5 System.out.println("整型最大值 + 1:"+(max+1)); 6 System.out.println("整型最大值 + 2:"+(max+2L)); 7 System.out.println("整型最大值 + 2:"+((long)max+2)); 8 } 9 }
程序运行结果
✎ 为避免int类型的溢出,可在表达式中任一常量后加上大写的L,或在变量前加上long,做强制类型的转换。
而对于long类型的溢出,就没有处理办法了,需要在程序中加上变量值的界限检查。
【例3.4】测试字符和整型之间的相互转换
1 public class DataDemo04{ 2 public static void main(String[] args){ 3 char ch1 = 'a'; 4 char ch2 = 97; 5 System.out.println("ch1 = "+ch1); 6 System.out.println("ch1 = "+ch2); 7 } 8 }
程序运行结果
✎ 和C语言中的字符型变量类似,在Java中给字符变量赋值可以使用数值和字符。注意,字符要用一对单引号(' ')括起来。
【例3.5】转义字符的使用
1 public class DataDemo05{ 2 public static void main(String[] args){ 3 char ch1 = '\"'; 4 char ch2 = '\\'; 5 System.out.println("ch1 = "+ch1); 6 System.out.println("ch1 = "+ch2); 7 System.out.println("\"Hello World\""); 8 } 9 }
程序运行结果
✎ 常用转义字符的打印。如"、\的打印。
【例3.6】浮点型数据计算
1 public class DataDemo06{ 2 public static void main(String[] args){ 3 float num = 3.0f; 4 System.out.println("两个小数相乘:"+num*num); 5 } 6 }
程序运行结果
✎ 使用浮点型数值时,默认的类型是double。
在数据后面加上F或f,则可作为float类型的识别。
double num;
double num1 = -6.3e64; //声明num1为double,其值为-6.3*1064
double num2 = -5.34E16; //e也可以用大写的E来取代
float num3 = 3.0f; //声明num3为float,并设初值为3.0
float num4 = 2.456e67; //错误,因为2.456*1067已超出float可表示的范围
【例3.7】布尔类型的使用
1 public class DataDemo07{ 2 public static void main(String[] args){ 3 boolean flag = true; 4 System.out.println("flag = "+flag); 5 } 6 }
程序运行结果
✎ boolean flag = true; //声明布尔变量flag,并赋值true