package com.kevin.basic;
/*
* java类型自动转换方面的知识点
* int类型 double类型 默认类型
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
/* int类型是整数的默认类型。
* (1)第一种:正确运行,结果为10.
* 3是int类型,7是int类型,3+7=10也是int类型,当把常量10赋值给byte类型b时,java编译器
* 会进行范围检查,发现10没有超越byte类型的取值范围-128~127,所以可以正常将int类型转换为byte类型
byte b = 4;
b = 3+7;
System.out.println(b);
*/
/*(2)第二种:出现错误,提示可能会损失精度。
* 因为b1,b2都是变量,java编译器在进行判断时无法判断b1+b2的取值范围,是否会超过-128~127这个范围
* 所以会给出可能损失精度的错误提示。
byte b1 = 3;
byte b2 = 7;
b = b1+b2;
System.out.println(b);
*/
/*2147483647 整型最大值
-2147483648 整型最小值
-2147483647
*
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
int x = max + 2;
System.out.println(max);
System.out.println(min);
System.out.println(x);
*/
/*
* 正常运行:+=是赋值运算符,java在进行运算时会进行自动类型转换。
* += 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。
short x = 2;
x += 3;
System.out.println(x);// x = 5;
*/
/* x+3运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型x时,编译器将报告需要强制转换类型的错误。
* :因为 x+3 的取值范围不确定,有可能会超过短整型所能表示的数值。
short x = 2;
x = x+3;
System.out.println(x);
*/
}
}
分享到:
2012-07-29 21:30
浏览 336
评论