您的位置:首页 > 编程语言 > Java开发

Java中有关构造器初始化调用的问题

2017-03-20 18:54 253 查看
我们先来看这样一段代码:

public class MyClass {
MyClass(double i){
System.out.println("Double_constructor is called.");
}

MyClass(float i){
System.out.println("Float_constructor is called.");
}

public static void main(String[] args){
MyClass mc=new MyClass(3.5);
}
}
你知道运行结果是什么吗?

相信很多初学者都是不能够第一时间回答出来,但是如果对于JVM熟悉的人,可能一下子就能看出。

浮点型的字面量会被JVM默认为double型数据。

所以运行结果是:Double_constructor is called.

类似的,再看这样一段代码:

public class MyClass2 {
MyClass2(byte i){
System.out.println("Byte_constructor is called.");
}

MyClass2(int i){
System.out.println("Int_constructor is called.");
}

MyClass2(short i){
System.out.println("Short_constructor is called.");
}

MyClass2(long i){
System.out.println("Long_constructor is called.");
}

public static void main(String[] args){
MyClass2 mc2=new MyClass2(3);
}
}
整数型的字面量会被JVM默认为int型数据。
所以运行结果是:Int_constructor is called.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐