java如何铸型
Java 中的类型转换
Java 中的类型转换(Type Casting)分为两种:自动类型转换(隐式转换)和强制类型转换(显式转换)。
自动类型转换(隐式转换)
当满足以下条件时,Java 会自动进行类型转换:
- 目标类型比源类型范围更大(如
int转long)。 - 不会造成数据丢失。
int numInt = 100;
long numLong = numInt; // 自动转换为 long 类型
强制类型转换(显式转换)
当需要将较大范围的类型转换为较小范围的类型时,必须使用强制类型转换。这可能导致数据丢失或精度降低。
double numDouble = 100.04;
int numInt = (int) numDouble; // 强制转换为 int,结果为 100(丢失小数部分)
对象类型转换
对象类型转换分为向上转型(Upcasting)和向下转型(Downcasting):

- 向上转型:子类对象转换为父类引用(自动完成)。
- 向下转型:父类引用转换为子类对象(需显式转换,且运行时可能抛出
ClassCastException)。
class Animal {}
class Dog extends Animal {}
// 向上转型
Animal animal = new Dog();
// 向下转型
if (animal instanceof Dog) {
Dog dog = (Dog) animal;
}
注意事项
- 基本类型的强制转换可能导致数据丢失(如
double转int)。 - 对象类型的向下转型需先使用
instanceof检查,避免运行时异常。 - 不支持不相关的类型转换(如
String转int需通过Integer.parseInt())。






