1、如下代码的输出是
package test; import java.util.Date; public class SuperTest extends Date{ private static final long serialVersionUID = 1L; private void test(){ System.out.println(super.getClass().getName()); } public static void main(String[]args){ new SuperTest().test(); } }
答:test.SuperTest
Object里的getClass(),它是final修饰的,不可被重写。所以调用的是Object中的方法。返回此 Object
的运行时类。返回的 Class
对象是由所表示类的 static synchronized
方法锁定的对象。 也就是当前类。Class.getName() 以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。
如果要得到父类的name,则super.getClass().getSuperclass().getName()
2、ArrayList list = new ArrayList(20);中的list扩充几次
答:0次 初始化时就指定了空间大小,会直接创建。如果没有指定,ArrayList list = new ArrayList();每次扩容会增加1.5倍加1
3、有如下一段代码,其运行结果是
public class StringDemo{ private static final String MESSAGE="taobao"; public static void main(String [] args) { String a ="tao"+"bao"; String b="tao"; String c="bao"; System.out.println(a==MESSAGE); System.out.println((b+c)==MESSAGE); } }
答: true false
4、以下代码将打印出
public static void main (String[] args) { String classFile = "com. jd. ". replaceA11(".", "/") + "MyClass.class"; System.out.println(classFile); }
答:正则表达式中.代表任意字符
5、观察以下代码输出是:
class Car extends Vehicle { public static void main (String[] args) { new Car(). run(); } private final void run() { System. out. println ("Car"); } } class Vehicle { private final void run() { System. out. println("Vehicle"); } }
答:car 父类方法有private修饰,对于子类不可见。所以和子类中的方法是两个方法