java面试基础题(二)

11、switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?

 * switch可作用于char byte short int
 * switch可作用于char byte short int对应的包装类
 * switch不可作用于long double float boolean,包括他们的包装类
 * switch中可以是字符串类型,String(jdk1.7之后才可以作用在string上)

 * switch中可以是枚举类型

12、用最有效率的方法计算2乘以8?

   2 << 3,

  //计算2*8=2*2System.out.println(2<<3);//8=2的3次方为8

  //计算2*16=2*2System.out.println(2<<4);//16=2的4次方为16

13、数组有没有length()方法?String有没有length()方法?

   数组没有length()方法,有length的属性。String有length()方法。集合求长度用size()方法

14、在Java中,如何跳出当前的多重嵌套循环?

在 Java 中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中

使用带有标号的 break 语句,即可跳出外层循环


15、构造器(constructor)是否可被重写(override)?

构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload。

Constructor不能被继承,所以Constructor也就不能被override。每一个类必须有自己的构造函数,负责构造自己这部分的构造。子类不会覆盖父类的构造函数,相反必须负责在一开始调用父类的构造函数。

16、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?

  也对,也不对。得看你的hash算法依赖哪些,如果不仅仅依赖于值,那肯定就不同

17、是否可以继承String类?

 不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,public final class String

18、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

是值传递。Java编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。

19、String和StringBuilder、StringBuffer的区别?

String的长度是不可变的;StringBuffer 的长度是可变的,如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer 的toString()方法;线程安全;StringBuilder 是从JDK 5 开始,为StringBuffer 该类补充了一个单个线程使用的等价类;通常应该优先使用StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快

20、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?

方法的重写Overriding 和重载Overloading 是Java 多态性的不同表现。重写Overriding 是父类与子类之间多态性的一种表现,重载Overloading 是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded 的方法是可以改变返回值的类型。







猜你喜欢

转载自blog.csdn.net/lihua5419/article/details/80345669