关于对象的初始化过程,以下顺序正确的是( )?
A. ①将成员变量赋为定义类时设置的初值。 ②实例化对象时,成员变量初始化为默认值。 ③通过初始化块给成员变量赋值 ④调用构造方法时,使用构造方法所带的参数初始化成员变量
B. ①实例化对象时,成员变量初始化为默认值。 ②将成员变量赋为定义类时设置的初值。 ③通过初始化块给成员变量赋值 ④调用构造方法时,使用构造方法所带的参数初始化成员变量
C. ①通过初始化块给成员变量赋值 ②将成员变量赋为定义类时设置的初值。 ③实例化对象时,成员变量初始化为默认值。 ④调用构造方法时,使用构造方法所带的参数初始化成员变量
D. ①调用构造方法时,使用构造方法所带的参数初始化成员变量 ②将成员变量赋为定义类时设置的初值。 ③通过初始化块给成员变量赋值 ④实例化对象时,成员变量初始化为默认值。
关于 this 的描述,哪一个是错误的( )?
A. this 可以用于区分成员变量和局部变量。
B. this 可以用于调用其他构造方法。
C. 在同一个构造方法中,可以使用两次 this() 调用其他两个构造方法。
D. 在使用 this 调用其他构造方法时,要避免多个构造方法之间的无限循环现象。
关于构造方法的描述,哪一个是正确的( )?
A. 如果程序中没有任何构造方法,则会默认增加一个无参的构造方法。
B. 如果程序中没有任何构造方法,则会默认增加一个有参的构造方法。
C. 如果程序中存在构造方法,则会默认增加一个无参的构造方法。
D. 如果程序中存在构造方法,则会默认增加一个有参的构造方法。
执行以下程序,运行结果是( )。String str1 = "abc";String str2 = new String("abc");System.out.println(str1 == str2);System.out.println(str1.equals(str2));System.out.println(str1 == new StringBuffer(str1));System.out.println(str1.equals((new StringBuffer(str1))));
A. true false false true
B. false true false true
C. true true false true
D. 编译出错