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.
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.
相关文章推荐
- 关于Java调用批处理命令向mysql导入数据的中文乱码有关问题
- 从父类构造器调用子类覆盖方法看Java初始化过程
- 有关java的函数调用返回值的问题和参数传递问题
- Java____赋值顺序,调用顺序,内部类衍生问题:赋值和构造器、代码块谁先执行?+4种代码块
- java面向对象-使用this语句解决构造器重载相互调用问题
- 有关java中的参数调用的问题
- 有关JAVA数组初始化的问题和加入JAR包的问题
- java之子类继承抽象类,子类构造器调用抽象类构造器问题
- 子类调用父类构造器时的Java类成员初始化顺序
- 基于java.util.logging实现轻量级日志记录库(增加根据当前类class初始化,修复线程池模型(javaEE)下的堆栈轨迹顺序与当前调用方法不一致问题)
- 基于java.util.logging实现轻量级日志记录库(增加根据当前类class初始化,修复线程池模型(javaEE)下的堆栈轨迹顺序与当前调用方法不一致问题)
- 有关非Java代码(即Java调用C++中自然方法)的问题
- java初始化构造器中调用其它方法
- c#调用java写的webservice数据丢失有关问题
- 有关java通过反射机制调用类中自有方法的问题
- java中paint()的具体用法(说具体点 一起重写之后的问题 还有有关调用问题)
- Java-初始化问题
- Java 中调用birt 的开发中遇到的问题和解决
- Java中的构造器(构造方法)的调用
- Java对象数组初始化与NullPointerException问题