自动类型转换与强制转换

本文介绍了Java中不同类型数据之间的自动及强制转换过程,并通过实例演示了从低类型到高类型的自动转换,以及高类型向低类型转换时需要进行的强制转换。
package 基本语法;
public class TypeConversion {
public static void main(String[] args) {
byte b=127;
char c='w';
short s=23561;
int i=33333;
long l=400000l;
float f=34.354f;
double d=34578.753;
//低类型自动向高类型转换
System.out.println("累加byte等于"+b);
System.out.println("累加cahr等于"+(b+c));
System.out.println("累加shot等于"+(b+c+s));
System.out.println("累加int等于"+(b+c+s+i));
System.out.println("累加long等于"+(b+c+s+i+l));
System.out.println("累加float等于"+(b+c+s+i+l+f));
System.out.println("累加double等于"+(b+c+s+i+l+f+d));
//高类型向低类型需要强制转换
System.out.println("把long强制转换为int类型"+(int)l);
System.out.println("把int强制转换为shot类型"+(short)i);
System.out.println("把short强制转换为byte类型"+(byte)s);
System.out.println("把double强制转换为float类型"+(float)d);
System.out.println("把short强制转换为float类型"+(float)s);
System.out.println("把double强制转换为int类型"+(int)d);
}
}
自动类型转换是编译器默默地、隐式地进行的一种类型转换,不需要在代码中体现出来,是编译器根据代码的上下文环境自行判断的结果,不需要程序员干预。不过有时候它并不是那么“智能”,不能满足所有的需求。无论是自动类型转换还是强制类型转换,都只是为了本次运算而进行的临时性转换转换的结果会保存到临时的内存空间,不会改变数据本来的类型或者值 [^1][^2]。 强制类型转换是程序员明确提出的、需要通过特定格式的代码来指明的一种类型转换,必须有程序员干预。其格式为:(type_name) expression [^1]。 以下是 C 语言和 Java类型转换的示例: #### C 语言示例 ```c #include <stdio.h> int main(){ double sum = 400.8; //总价 int count = 5; //数目 double price; //单价 int sumint = (int)sum; //强制转换,但是只在此刻有效 price = sum / count; printf("sum=%lf, sumint=%d, price=%lf\n", sum, sumint, price); return 0; } ``` 此代码运行结果为:`sum=400.800000, sumint=400, price=80.160000`,体现了强制类型转换的临时性 [^2]。 #### Java 示例 ```java public class TypeConversionExample { public static void main(String[] args) { double avg1 = 78.5; int rise = 5; double avg2 = avg1 + rise; System.out.println("考试平均分:" + avg1); System.out.println("调整后的平均分:" + avg2); } } ``` 这里 `avg1` 是 `double` 类型,`rise` 是 `int` 类型,在进行 `avg1 + rise` 运算时会发生自动类型转换 [^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值